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 4f8f53275b1 Update AUDIT_STRATEGY syntax document (#22645) 4f8f53275b1 is described below commit 4f8f53275b13c0f851b905c29d8c358efd3fe279 Author: yx9o <yangx_s...@163.com> AuthorDate: Mon Dec 5 00:20:04 2022 +0800 Update AUDIT_STRATEGY syntax document (#22645) --- .../sharding/alter-sharding-table-rule.cn.md | 4 +- .../sharding/alter-sharding-table-rule.en.md | 4 +- .../syntax/rdl/rule-definition/sharding.cn.md | 44 ++++++---------------- .../syntax/rdl/rule-definition/sharding.en.md | 43 +++++---------------- ...lShardingAutoTableRuleConfigurationSwapper.java | 6 +++ .../main/antlr4/imports/sharding/RDLStatement.g4 | 2 +- .../src/main/resources/sql/supported/rdl/alter.xml | 4 +- .../main/resources/sql/supported/rdl/create.xml | 4 +- 8 files changed, 36 insertions(+), 75 deletions(-) diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.cn.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.cn.md index a3c1efcb3b4..7e84468d3c8 100644 --- a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.cn.md +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.cn.md @@ -85,7 +85,7 @@ DATANODES("ds_${0..3}.t_order_item${0..3}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 4}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 4}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2],ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ``` @@ -96,7 +96,7 @@ ALTER SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1,ds_2,ds_3), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="16")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2],ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ``` diff --git a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.en.md b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.en.md index afed65a9186..915842c39e4 100644 --- a/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.en.md +++ b/docs/document/content/reference/distsql/syntax/rdl/rule-definition/sharding/alter-sharding-table-rule.en.md @@ -95,7 +95,7 @@ DATANODES("ds_${0..3}.t_order_item${0..3}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 4}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 4}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2],ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ``` @@ -106,7 +106,7 @@ ALTER SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1,ds_2,ds_3), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="16")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2],ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ``` diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md index 7eff0f2109b..1803f0635c2 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.cn.md @@ -24,20 +24,16 @@ DROP SHARDING ALGORITHM algorithmName [, algorithmName] ... DROP SHARDING KEY GENERATOR [IF EXISTS] keyGeneratorName [, keyGeneratorName] ... -CREATE SHARDING AUDITOR auditorDefinition [, auditorDefinition] ... - -ALTER SHARDING AUDITOR auditorDefinition [, auditorDefinition] ... - DROP SHARDING AUDITOR [IF EXISTS] auditorName [, auditorName] ... shardingTableRuleDefinition: shardingAutoTableRule | shardingTableRule shardingAutoTableRule: - tableName(storageUnits, shardingColumn, algorithmDefinition [, keyGenerateDefinition] [, auditDeclaration]) + tableName(storageUnits, shardingColumn, algorithmDefinition [, keyGenerateDefinition] [, auditDefinition]) shardingTableRule: - tableName(dataNodes [, databaseStrategy] [, tableStrategy] [, keyGenerateDefinition] [, auditDeclaration]) + tableName(dataNodes [, databaseStrategy] [, tableStrategy] [, keyGenerateDefinition] [, auditDefinition]) storageUnits: STORAGE_UNITS(storageUnit [, storageUnit] ...) @@ -59,18 +55,12 @@ algorithmDefinition: keyGenerateDefinition: KEY_GENERATE_STRATEGY(COLUMN=columnName, strategyDefinition) - -auditDeclaration: - auditDefinition | auditStrategy auditDefinition: - AUDIT_STRATEGY([(singleAuditDefinition),(singleAuditDefinition)], ALLOW_HINT_DISABLE=true) - + AUDIT_STRATEGY([singleAuditDefinition, singleAuditDefinition], ALLOW_HINT_DISABLE=true) + singleAuditDefinition: - NAME=auditor1, algorithmDefinition - -auditStrategy: - AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2], ALLOW_HINT_DISABLE=true) + algorithmDefinition shardingScope: DATABASE | TABLE @@ -90,23 +80,11 @@ shardingAlgorithm: strategyDefinition: TYPE(NAME=keyGenerateStrategyType [, PROPERTIES([algorithmProperties])]) -shardingAlgorithmDefinition: - shardingAlgorithmName(algorithmDefinition) - algorithmProperties: algorithmProperty [, algorithmProperty] ... algorithmProperty: - key=value - -keyGeneratorDefinition: - keyGeneratorName (algorithmDefinition) - -auditorDefinition: - auditorName (auditorAlgorithmDefinition) - -auditorAlgorithmDefinition: - TYPE(NAME=auditorAlgorithmType [, PROPERTIES([algorithmProperties])]) + key=value ``` - `STORAGE_UNITS` 需使用 RDL 管理的数据源资源; - `shardingAlgorithmType` 指定自动分片算法类型,请参考 [自动分片算法](/cn/user-manual/common-config/builtin-algorithm/sharding/); @@ -138,7 +116,7 @@ tableReferenceRuleDefinition: ```sql CREATE BROADCAST TABLE RULE tableName [, tableName] ... -DROP BROADCAST TABLE RULES tableName [, tableName] ... +DROP BROADCAST TABLE RULE tableName [, tableName] ... ``` ## 示例 @@ -163,14 +141,14 @@ CREATE SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="4")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ALTER SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1,ds_2,ds_3), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="16")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); DROP SHARDING TABLE RULE t_order; @@ -186,7 +164,7 @@ DATANODES("ds_${0..1}.t_order_item_${0..1}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 2}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 2}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ALTER SHARDING TABLE RULE t_order_item ( @@ -194,7 +172,7 @@ DATANODES("ds_${0..3}.t_order_item${0..3}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 4}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 4}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); DROP SHARDING TABLE RULE t_order_item; diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md index 0c23e8dfad2..efe2245e342 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/sharding.en.md @@ -24,20 +24,16 @@ DROP SHARDING ALGORITHM algorithmName [, algorithmName] ... DROP SHARDING KEY GENERATOR [IF EXISTS] keyGeneratorName [, keyGeneratorName] ... -CREATE SHARDING AUDITOR auditorDefinition [, auditorDefinition] ... - -ALTER SHARDING AUDITOR auditorDefinition [, auditorDefinition] ... - DROP SHARDING AUDITOR [IF EXISTS] auditorName [, auditorName] ... shardingTableRuleDefinition: shardingAutoTableRule | shardingTableRule shardingAutoTableRule: - tableName(storageUnits, shardingColumn, algorithmDefinition [, keyGenerateDefinition] [, auditDeclaration]) + tableName(storageUnits, shardingColumn, algorithmDefinition [, keyGenerateDefinition] [, auditDefinition]) shardingTableRule: - tableName(dataNodes [, databaseStrategy] [, tableStrategy] [, keyGenerateDefinition] [, auditDeclaration]) + tableName(dataNodes [, databaseStrategy] [, tableStrategy] [, keyGenerateDefinition] [, auditDefinition]) storageUnits: STORAGE_UNITS(storageUnit [, storageUnit] ...) @@ -59,18 +55,12 @@ algorithmDefinition: keyGenerateDefinition: KEY_GENERATE_STRATEGY(COLUMN=columnName, strategyDefinition) - -auditDeclaration: - auditDefinition | auditStrategy auditDefinition: - AUDIT_STRATEGY([(singleAuditDefinition),(singleAuditDefinition)], ALLOW_HINT_DISABLE=true) - + AUDIT_STRATEGY([singleAuditDefinition, singleAuditDefinition], ALLOW_HINT_DISABLE=true) + singleAuditDefinition: - NAME=auditor1, algorithmDefinition - -auditStrategy: - AUDIT_STRATEGY(AUDITORS=[auditor1,auditor2], ALLOW_HINT_DISABLE=true) + algorithmDefinition shardingScope: DATABASE | TABLE @@ -90,23 +80,11 @@ shardingAlgorithm: strategyDefinition: TYPE(NAME=keyGenerateStrategyType [, PROPERTIES([algorithmProperties])]) -shardingAlgorithmDefinition: - shardingAlgorithmName(algorithmDefinition) - algorithmProperties: algorithmProperty [, algorithmProperty] ... algorithmProperty: - key=value - -keyGeneratorDefinition: - keyGeneratorName (algorithmDefinition) - -auditorDefinition: - auditorName (auditorAlgorithmDefinition) - -auditorAlgorithmDefinition: - TYPE(NAME=auditorAlgorithmType [, PROPERTIES([algorithmProperties])]) + key=value ``` - `STORAGE_UNITS` needs to use storage units managed by RDL - `shardingAlgorithmType` specifies the type of automatic sharding algorithm, please refer to [Auto Sharding Algorithm](/en/user-manual/common-config/builtin-algorithm/sharding/) @@ -116,7 +94,6 @@ auditorAlgorithmDefinition: - To remove `shardingAlgorithm`, please execute `DROP SHARDING ALGORITHM` - `strategyType` specifies the sharding strategy, please refer to[Sharding Strategy](/en/features/sharding/concept/sharding/#sharding-strategy) - `Sharding Table Rule` supports both `Auto Table` and `Table` at the same time. The two types are different in syntax. For the corresponding configuration file, please refer to [Sharding](/en/user-manual/shardingsphere-jdbc/yaml-config/rules/sharding/) -- When using the `autoCreativeAlgorithm` way to specify `shardingStrategy`, a new sharding algorithm will be created automatically. The algorithm naming rule is `tableName_strategyType_shardingAlgorithmType`, such as `t_order_database_inline` - executing `CREATE SHARDING TABLE RULE`,a new sharding algorithm will be created automatically. The algorithm naming rule is `tableName_scope_shardingAlgorithmType`,such as `t_order_database_inline` - executing `CREATE DEFAULT SHARDING STRATEGY`,a new sharding algorithm is also created automatically,The algorithm naming rule is `default_scope_shardingAlgorithmType`,such as `default_database_inline` @@ -164,14 +141,14 @@ CREATE SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="4")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ALTER SHARDING TABLE RULE t_order ( STORAGE_UNITS(ds_0,ds_1,ds_2,ds_3), SHARDING_COLUMN=order_id,TYPE(NAME="hash_mod",PROPERTIES("sharding-count"="16")), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); DROP SHARDING TABLE RULE t_order; @@ -187,7 +164,7 @@ DATANODES("ds_${0..1}.t_order_item_${0..1}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 2}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 2}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); ALTER SHARDING TABLE RULE t_order_item ( @@ -195,7 +172,7 @@ DATANODES("ds_${0..3}.t_order_item${0..3}"), DATABASE_STRATEGY(TYPE="standard",SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="ds_${user_id % 4}")))), TABLE_STRATEGY(TYPE="standard",SHARDING_COLUMN=order_id,SHARDING_ALGORITHM(TYPE(NAME="inline",PROPERTIES("algorithm-expression"="t_order_item_${order_id % 4}")))), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME="snowflake")), -AUDIT_STRATEGY (TYPE(NAME="DML_SHARDING_CONDITIONS"),ALLOW_HINT_DISABLE=true) +AUDIT_STRATEGY(TYPE(NAME="dml_sharding_conditions"),ALLOW_HINT_DISABLE=true) ); DROP SHARDING TABLE RULE t_order_item; diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingAutoTableRuleConfigurationSwapper.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingAutoTableRuleConfigurationSwapper.java index bb290941b7d..6c087a3851f 100644 --- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingAutoTableRuleConfigurationSwapper.java +++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingAutoTableRuleConfigurationSwapper.java @@ -23,6 +23,7 @@ import org.apache.shardingsphere.infra.util.yaml.swapper.YamlConfigurationSwappe import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration; import org.apache.shardingsphere.sharding.yaml.config.rule.YamlShardingAutoTableRuleConfiguration; import org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateStrategyConfigurationSwapper; +import org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAuditStrategyConfigurationSwapper; import org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper; /** @@ -35,6 +36,8 @@ public final class YamlShardingAutoTableRuleConfigurationSwapper implements Yaml private final YamlKeyGenerateStrategyConfigurationSwapper keyGenerateStrategySwapper = new YamlKeyGenerateStrategyConfigurationSwapper(); + private final YamlShardingAuditStrategyConfigurationSwapper auditStrategySwapper = new YamlShardingAuditStrategyConfigurationSwapper(); + @Override public YamlShardingAutoTableRuleConfiguration swapToYamlConfiguration(final ShardingAutoTableRuleConfiguration data) { YamlShardingAutoTableRuleConfiguration result = new YamlShardingAutoTableRuleConfiguration(); @@ -59,6 +62,9 @@ public final class YamlShardingAutoTableRuleConfigurationSwapper implements Yaml if (null != yamlConfig.getKeyGenerateStrategy()) { result.setKeyGenerateStrategy(keyGenerateStrategySwapper.swapToObject(yamlConfig.getKeyGenerateStrategy())); } + if (null != yamlConfig.getAuditStrategy()) { + result.setAuditStrategy(auditStrategySwapper.swapToObject(yamlConfig.getAuditStrategy())); + } return result; } } diff --git a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4 b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4 index cb6c4bead3e..83524de9301 100644 --- a/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4 +++ b/features/sharding/distsql/parser/src/main/antlr4/imports/sharding/RDLStatement.g4 @@ -160,7 +160,7 @@ multiAuditDefinition ; singleAuditDefinition - : LP_ algorithmDefinition RP_ + : algorithmDefinition ; auditAllowHintDisable diff --git a/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml b/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml index 8cf45eabd94..bb52180d510 100644 --- a/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml +++ b/test/it/parser/src/main/resources/sql/supported/rdl/alter.xml @@ -36,11 +36,11 @@ <sql-case id="alter-shadow-rule" value="ALTER SHADOW RULE shadow_rule(SOURCE=demo_ds,SHADOW=demo_ds_shadow,t_order(TYPE(NAME='REGEX_MATCH',PROPERTIES('operation'='insert','column'='user_id','regex'='[1]')),TYPE(NAME='SIMPLE_HINT',PROPERTIES('shadow'='true','foo'='bar'))))" db-types="ShardingSphere" /> <sql-case id="alter-sharding-auto-table-rule" value="ALTER SHARDING TABLE RULE t_order (STORAGE_UNITS(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" db-types="ShardingSphere" /> <sql-case id="alter-sharding-auto-table-rule-with-inline-expression" value="ALTER SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" db-types="ShardingSphere" /> - <sql-case id="alter-sharding-auto-table-rule-with-auditor" value="ALTER SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')),AUDIT_STRATEGY((TYPE(NAME='DML_SHARDING_CONDITIONS')),ALLOW_HINT_DISABLE=true))" db-types="ShardingSphere" /> + <sql-case id="alter-sharding-auto-table-rule-with-auditor" value="ALTER SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id, TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')),KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')),AUDIT_STRATEGY(TYPE(NAME='DML_SHARDING_CONDITIONS'),ALLOW_HINT_DISABLE=true))" db-types="ShardingSphere" /> <sql-case id="alter-sharding-table-reference-rule" value="ALTER SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item), reference_1 (t_1,t_2)" db-types="ShardingSphere" /> <sql-case id="alter-sharding-table-rule" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENERATE_STRATEGY(COLUMN=another_ [...] <sql-case id="alter-sharding-table-rule-complex" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns = order_id,user_id, sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}_${user_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')) [...] - <sql-case id="alter-sharding-table-rule-with-auditor" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENERATE_STRATEGY(CO [...] + <sql-case id="alter-sharding-table-rule-with-auditor" value="ALTER SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENERATE_STRATEGY(CO [...] <sql-case id="alter-default-sharding-strategy" value="ALTER DEFAULT SHARDING TABLE STRATEGY(TYPE='standard', SHARDING_COLUMN=order_id, SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}'))))" db-types="ShardingSphere" /> <sql-case id="alter-default-sharding-strategy-complex" value="ALTER DEFAULT SHARDING TABLE STRATEGY(TYPE='complex', SHARDING_COLUMNS=order_id,user_id, SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${order_id % 2}_${user_id % 2}'))))" db-types="ShardingSphere" /> </sql-cases> diff --git a/test/it/parser/src/main/resources/sql/supported/rdl/create.xml b/test/it/parser/src/main/resources/sql/supported/rdl/create.xml index e306333f9c3..9d35d46b21c 100644 --- a/test/it/parser/src/main/resources/sql/supported/rdl/create.xml +++ b/test/it/parser/src/main/resources/sql/supported/rdl/create.xml @@ -28,7 +28,7 @@ <sql-case id="register-storage-unit-url-single-with-properties" value="REGISTER STORAGE UNIT ds_0(URL='jdbc:mysql://127.0.0.1:3306/test0',USER='ROOT',PASSWORD='123456',PROPERTIES('maxPoolSize'='30'))" db-types="ShardingSphere" /> <sql-case id="create-sharding-auto-table-rule" value="CREATE SHARDING TABLE RULE t_order (STORAGE_UNITS(ms_group_0,ms_group_1), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'='4')), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" db-types="ShardingSphere" /> <sql-case id="create-sharding-auto-table-rule-with-inline-expression" value="CREATE SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'=4)), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')))" db-types="ShardingSphere" /> - <sql-case id="create-sharding-auto-table-rule-with-auditor" value="CREATE SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'=4)), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')), AUDIT_STRATEGY((TYPE(NAME='DML_SHARDING_CONDITIONS')),(TYPE(NAME='DML_SHARDING_CONDITIONS')),ALLOW_HINT_DISABLE=true))" db-types="ShardingSphere" /> + <sql-case id="create-sharding-auto-table-rule-with-auditor" value="CREATE SHARDING TABLE RULE t_order (STORAGE_UNITS('ms_group_${0..1}'), SHARDING_COLUMN=order_id,TYPE(NAME='hash_mod',PROPERTIES('sharding-count'=4)), KEY_GENERATE_STRATEGY(COLUMN=another_id,TYPE(NAME='snowflake')), AUDIT_STRATEGY(TYPE(NAME='DML_SHARDING_CONDITIONS'),TYPE(NAME='DML_SHARDING_CONDITIONS'),ALLOW_HINT_DISABLE=true))" db-types="ShardingSphere" /> <sql-case id="create-sharding-table-reference-rule" value="CREATE SHARDING TABLE REFERENCE RULE reference_0 (t_order,t_order_item), reference_1 (t_1,t_2)" db-types="ShardingSphere" /> <sql-case id="create-sharding-table-reference-rule-with-quota" value="CREATE SHARDING TABLE REFERENCE RULE reference_0 (`t_order`,`t_order_item`), reference_1 (t_1,t_2)" db-types="ShardingSphere" /> <sql-case id="create-broadcast-table-rule" value="CREATE BROADCAST TABLE RULE t_1,t_2" db-types="ShardingSphere" /> @@ -46,7 +46,7 @@ <sql-case id="create-sharding-table-rule-with-enum-inline-expression" value="CREATE SHARDING TABLE RULE t_order (DATANODES("ms_group_${['abc','ac']}.t_order_${0..1}"),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_name,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_{order_name}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id [...] <sql-case id="create-sharding-table-rule-complex" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='complex',sharding_columns = order_id,user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}_${user_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}') [...] <sql-case id="create-sharding-table-rule-with-auto-create-algorithm" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENE [...] - <sql-case id="create-sharding-table-rule-with-auditor" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENERATE_STRATEGY( [...] + <sql-case id="create-sharding-table-rule-with-auditor" value="CREATE SHARDING TABLE RULE t_order (DATANODES('ms_group_${0..1}.t_order_${0..1}'),DATABASE_STRATEGY(TYPE='standard',sharding_column = order_id,sharding_algorithm(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id % 2}')))),TABLE_STRATEGY(TYPE='standard',sharding_column = user_id,sharding_algorithm(type(name='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id % 2}')))),KEY_GENERATE_STRATEGY( [...] <sql-case id="create-default-shadow-algorithm" value="CREATE DEFAULT SHADOW ALGORITHM TYPE(NAME='HINT', PROPERTIES('shadow'='true', 'foo'='bar'))" db-types="ShardingSphere" /> <sql-case id="set-default-single-table-storage-unit" value="SET DEFAULT SINGLE TABLE STORAGE UNIT = ds_0" db-types="ShardingSphere" /> <sql-case id="set-default-single-table-storage-unit-random" value="SET DEFAULT SINGLE TABLE STORAGE UNIT = RANDOM" db-types="ShardingSphere" />