You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2022/02/18 03:55:16 UTC

[shardingsphere] branch master updated: [DistSQL]show encrypt rules syntax add display of data type (#15458)

This is an automated email from the ASF dual-hosted git repository.

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b0f897  [DistSQL]show encrypt rules syntax add display of data type (#15458)
1b0f897 is described below

commit 1b0f897ebc76c2280d16111aaac7b89c47fb7e1f
Author: lanchengx <52...@users.noreply.github.com>
AuthorDate: Fri Feb 18 11:53:24 2022 +0800

    [DistSQL]show encrypt rules syntax add display of data type (#15458)
    
    * `show encrypt rules` syntax add display of data type
    
    * Update integration tests, modify format.
    
    * Update integration testst.
    
    * Update integration tests.
    
    * Revert "Update integration tests."
    
    This reverts commit 08ef8bd485002f5b86f7348796d88841f2f4bb63.
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update default value & Reformat.
    
    * Revert YamlEncryptColumnRuleConfiguration
    
    * Update integration tests.
    
    * Update integration tests.
    
    * Update integration tests.
---
 .../handler/query/EncryptRuleQueryResultSet.java   | 47 ++++++++++------------
 .../query/EncryptRuleQueryResultSetTest.java       |  9 +++--
 .../rdl/dataset/empty_rules/alter_encrypt_rule.xml |  8 +++-
 .../dataset/empty_rules/create_encrypt_rule.xml    |  8 +++-
 .../rdl/dataset/empty_rules/drop_encrypt_rule.xml  |  6 +++
 .../show_encrypt_rule.xml                          |  8 +++-
 .../show_encrypt_rules.xml                         | 16 +++++---
 .../rql/dataset/encrypt/show_encrypt_rule.xml      |  8 +++-
 .../rql/dataset/encrypt/show_encrypt_rules.xml     | 12 ++++--
 9 files changed, 81 insertions(+), 41 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSet.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSet.java
index 0381e6c..66cf693 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSet.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSet.java
@@ -18,22 +18,20 @@
 package org.apache.shardingsphere.encrypt.distsql.handler.query;
 
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
-import org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
 import org.apache.shardingsphere.encrypt.distsql.parser.statement.ShowEncryptRulesStatement;
 import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import org.apache.shardingsphere.infra.properties.PropertiesConverter;
-import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -43,36 +41,35 @@ import java.util.stream.Collectors;
  */
 public final class EncryptRuleQueryResultSet implements DistSQLResultSet {
     
-    private Iterator<Entry<String, EncryptColumnRuleConfiguration>> data;
-    
-    private Map<String, ShardingSphereAlgorithmConfiguration> encryptors;
+    private Iterator<Collection<Object>> data = Collections.emptyIterator();
     
     @Override
     public void init(final ShardingSphereMetaData metaData, final SQLStatement sqlStatement) {
-        Optional<EncryptRuleConfiguration> ruleConfig = metaData.getRuleMetaData().getConfigurations()
-                .stream().filter(each -> each instanceof EncryptRuleConfiguration).map(each -> (EncryptRuleConfiguration) each).findAny();
-        data = ruleConfig.map(optional -> getAllEncryptColumns(optional, ((ShowEncryptRulesStatement) sqlStatement).getTableName()).entrySet().iterator()).orElse(Collections.emptyIterator());
-        encryptors = ruleConfig.map(EncryptRuleConfiguration::getEncryptors).orElseGet(Collections::emptyMap);
+        Optional<EncryptRuleConfiguration> ruleConfiguration = metaData.getRuleMetaData().findRuleConfiguration(EncryptRuleConfiguration.class).stream().findAny();
+        ruleConfiguration.ifPresent(op -> data = buildData(op, (ShowEncryptRulesStatement) sqlStatement).iterator());
     }
     
-    private Map<String, EncryptColumnRuleConfiguration> getAllEncryptColumns(final EncryptRuleConfiguration encryptRuleConfig, final String tableName) {
-        Map<String, EncryptColumnRuleConfiguration> result = new HashMap<>();
-        if (Objects.nonNull(tableName)) {
-            encryptRuleConfig.getTables().stream().filter(each -> tableName.equalsIgnoreCase(each.getName()))
-                    .findAny().ifPresent(each -> result.putAll(buildEncryptColumnRuleConfigurationMap(each)));
-        } else {
-            encryptRuleConfig.getTables().forEach(each -> result.putAll(buildEncryptColumnRuleConfigurationMap(each)));
-        }
-        return result;
+    private Collection<Collection<Object>> buildData(final EncryptRuleConfiguration configuration, final ShowEncryptRulesStatement sqlStatement) {
+        return configuration.getTables().stream().filter(each -> Objects.isNull(sqlStatement.getTableName()) || each.getName().equals(sqlStatement.getTableName()))
+                .map(each -> buildColumnData(each, configuration.getEncryptors())).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedList::new));
     }
     
-    private Map<String, EncryptColumnRuleConfiguration> buildEncryptColumnRuleConfigurationMap(final EncryptTableRuleConfiguration encryptTableRuleConfig) {
-        return encryptTableRuleConfig.getColumns().stream().collect(Collectors.toMap(each -> String.join(".", encryptTableRuleConfig.getName(), each.getLogicColumn()), each -> each));
+    private Collection<Collection<Object>> buildColumnData(final EncryptTableRuleConfiguration tableRuleConfiguration, final Map<String, ShardingSphereAlgorithmConfiguration> algorithmMap) {
+        Collection<Collection<Object>> result = new LinkedList<>();
+        tableRuleConfiguration.getColumns().forEach(each -> {
+            ShardingSphereAlgorithmConfiguration algorithmConfiguration = algorithmMap.get(each.getEncryptorName());
+            result.add(Arrays.asList(tableRuleConfiguration.getName(), each.getLogicColumn(), each.getLogicDataType(), each.getCipherColumn(), each.getCipherDataType(),
+                    each.getPlainColumn(), each.getPlainDataType(), each.getAssistedQueryColumn(), each.getAssistedQueryDataType(),
+                    algorithmConfiguration.getType(), PropertiesConverter.convert(algorithmConfiguration.getProps()),
+                    Objects.isNull(tableRuleConfiguration.getQueryWithCipherColumn()) ? Boolean.TRUE.toString() : tableRuleConfiguration.getQueryWithCipherColumn().toString()));
+        });
+        return result;
     }
     
     @Override
     public Collection<String> getColumnNames() {
-        return Arrays.asList("table", "logic_column", "cipher_column", "plain_column", "encryptor_type", "encryptor_props");
+        return Arrays.asList("table", "logic_column", "logic_data_type", "cipher_column", "cipher_data_type", "plain_column", "plain_data_type",
+                "assisted_query_column", "assisted_query_data_type", "encryptor_type", "encryptor_props", "query_with_cipher_column");
     }
     
     @Override
@@ -82,9 +79,7 @@ public final class EncryptRuleQueryResultSet implements DistSQLResultSet {
     
     @Override
     public Collection<Object> getRowData() {
-        Entry<String, EncryptColumnRuleConfiguration> entry = data.next();
-        return Arrays.asList(entry.getKey().split("\\.")[0], entry.getValue().getLogicColumn(), entry.getValue().getCipherColumn(), entry.getValue().getPlainColumn(), 
-                encryptors.get(entry.getValue().getEncryptorName()).getType(), PropertiesConverter.convert(encryptors.get(entry.getValue().getEncryptorName()).getProps()));
+        return data.next();
     }
     
     @Override
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSetTest.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSetTest.java
index 3548408..3d8d86a 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSetTest.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-distsql/shardingsphere-encrypt-distsql-handler/src/test/java/org/apache/shardingsphere/encrypt/distsql/handler/query/EncryptRuleQueryResultSetTest.java
@@ -34,6 +34,7 @@ import java.util.Properties;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -43,20 +44,22 @@ public final class EncryptRuleQueryResultSetTest {
     @Test
     public void assertGetRowData() {
         ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
-        when(metaData.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(getRuleConfiguration()));
+        when(metaData.getRuleMetaData().findRuleConfiguration(any())).thenReturn(Collections.singleton(getRuleConfiguration()));
         DistSQLResultSet resultSet = new EncryptRuleQueryResultSet();
         resultSet.init(metaData, mock(ShowEncryptRulesStatement.class));
         Collection<Object> actual = resultSet.getRowData();
-        assertThat(actual.size(), is(6));
+        assertThat(actual.size(), is(12));
         assertTrue(actual.contains("t_encrypt"));
         assertTrue(actual.contains("user_id"));
         assertTrue(actual.contains("user_cipher"));
         assertTrue(actual.contains("user_plain"));
         assertTrue(actual.contains("md5"));
+        assertTrue(actual.contains("varchar(10)"));
     }
     
     private RuleConfiguration getRuleConfiguration() {
-        EncryptColumnRuleConfiguration encryptColumnRuleConfig = new EncryptColumnRuleConfiguration("user_id", "user_cipher", null, "user_plain", "test");
+        EncryptColumnRuleConfiguration encryptColumnRuleConfig = new EncryptColumnRuleConfiguration("user_id", "varchar(10)", "user_cipher", "varchar(10)", null, null,
+                "user_plain", "varchar(10)", "test");
         EncryptTableRuleConfiguration encryptTableRuleConfig = new EncryptTableRuleConfiguration("t_encrypt", Collections.singleton(encryptColumnRuleConfig), null);
         ShardingSphereAlgorithmConfiguration shardingSphereAlgorithmConfig = new ShardingSphereAlgorithmConfiguration("md5", new Properties());
         return new EncryptRuleConfiguration(Collections.singleton(encryptTableRuleConfig), Collections.singletonMap("test", shardingSphereAlgorithmConfig));
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/alter_encrypt_rule.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/alter_encrypt_rule.xml
index 5964923..a129a88 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/alter_encrypt_rule.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/alter_encrypt_rule.xml
@@ -19,10 +19,16 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123abc| true" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/create_encrypt_rule.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/create_encrypt_rule.xml
index fe97e0a..ea38960 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/create_encrypt_rule.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/create_encrypt_rule.xml
@@ -19,10 +19,16 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123456abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123456abc| true" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/drop_encrypt_rule.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/drop_encrypt_rule.xml
index d28df47..12278b7 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/drop_encrypt_rule.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rdl/dataset/empty_rules/drop_encrypt_rule.xml
@@ -19,9 +19,15 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rule.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rule.xml
index fe97e0a..ea38960 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rule.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rule.xml
@@ -19,10 +19,16 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123456abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123456abc| true" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rules.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rules.xml
index cb32ae2..7a8df25 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rules.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/dbtbl_with_readwrite_splitting_and_encrypt/show_encrypt_rules.xml
@@ -19,14 +19,20 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user_details| number_new| number_new_cipher| number_new_plain| AES| aes-key-value=123456abc" />
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123456abc" />
-    <row values="t_user_details| number| number_cipher| number_plain| AES| aes-key-value=123456abc" />
-    <row values="t_user_encrypt_federate| pwd| cipher_pwd| plain_pwd| AES| aes-key-value=123456abc" />
-    <row values="t_user_encrypt_federate_sharding| pwd| cipher_pwd| plain_pwd| AES| aes-key-value=123456abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_details| number| null| number_cipher| null| number_plain| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_details| number_new| null| number_new_cipher| null| number_new_plain| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_encrypt_federate| pwd| null| cipher_pwd| null| plain_pwd| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_encrypt_federate_sharding| pwd| null| cipher_pwd| null| plain_pwd| null| null| null| AES| aes-key-value=123456abc| true" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rule.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rule.xml
index fe97e0a..ea38960 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rule.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rule.xml
@@ -19,10 +19,16 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123456abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123456abc| true" />
 </dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rules.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rules.xml
index 0e73642..d9ac3bd 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rules.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/rql/dataset/encrypt/show_encrypt_rules.xml
@@ -19,12 +19,18 @@
     <metadata>
         <column name="table" />
         <column name="logic_column" />
+        <column name="logic_data_type" />
         <column name="cipher_column" />
+        <column name="cipher_data_type" />
         <column name="plain_column" />
+        <column name="plain_data_type" />
+        <column name="assisted_query_column" />
+        <column name="assisted_query_data_type" />
         <column name="encryptor_type" />
         <column name="encryptor_props" />
+        <column name="query_with_cipher_column" />
     </metadata>
-    <row values="t_user| pwd| pwd_cipher| pwd_plain| AES| aes-key-value=123456abc" />
-    <row values="t_user_details| number| number_cipher| number_plain| AES| aes-key-value=123456abc" />
-    <row values="t_user_details| number_new| number_new_cipher| number_new_plain| AES| aes-key-value=123456abc" />
+    <row values="t_user| pwd| null| pwd_cipher| null| pwd_plain| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_details| number| null| number_cipher| null| number_plain| null| null| null| AES| aes-key-value=123456abc| true" />
+    <row values="t_user_details| number_new| null| number_new_cipher| null| number_new_plain| null| null| null| AES| aes-key-value=123456abc| true" />
 </dataset>