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>