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 0ce877233c9 Add parser test for `defaultShardingStrategy` and 
`shardingRule` (#24156)
0ce877233c9 is described below

commit 0ce877233c9451a18e792e632653b1f6085749aa
Author: Zichao <[email protected]>
AuthorDate: Tue Feb 14 19:01:24 2023 +0800

    Add parser test for `defaultShardingStrategy` and `shardingRule` (#24156)
    
    * Add parser test for `defaultShardingStrategy` and `shardingRule`
    
    * Add parser test for `defaultShardingStrategy` and `shardingRule`
    
    * Add parser test for `defaultShardingStrategy` and `shardingRule`
---
 .../asserts/segment/distsql/TableRuleAssert.java   | 12 ++--
 ...lterDefaultShardingStrategyStatementAssert.java | 12 ++--
 ...eateDefaultShardingStrategyStatementAssert.java | 12 ++--
 .../parser/src/main/resources/case/rdl/alter.xml   | 68 ++++++++++++++++++++--
 .../parser/src/main/resources/case/rdl/create.xml  | 66 ++++++++++++++++++++-
 .../src/main/resources/sql/supported/rdl/alter.xml |  9 ++-
 .../main/resources/sql/supported/rdl/create.xml    |  9 ++-
 7 files changed, 165 insertions(+), 23 deletions(-)

diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
index 1e2f4f0b39e..86c881d851a 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/segment/distsql/TableRuleAssert.java
@@ -55,14 +55,18 @@ public final class TableRuleAssert {
                     actual.getTableStrategySegment().getShardingColumn(), 
is(expected.getTableStrategy().getShardingColumn()));
             assertThat(assertContext.getText(String.format("`%s`'s table rule 
segment assertion error: ", actual.getClass().getSimpleName())),
                     actual.getTableStrategySegment().getType(), 
is(expected.getTableStrategy().getType()));
-            assertThat(assertContext.getText(String.format("`%s`'s table rule 
segment assertion error: ", actual.getClass().getSimpleName())),
-                    
actual.getTableStrategySegment().getShardingAlgorithm().getName(), 
is(expected.getTableStrategy().getAlgorithmSegment().getName()));
+            if 
(!"none".equalsIgnoreCase(actual.getTableStrategySegment().getType())) {
+                assertThat(assertContext.getText(String.format("`%s`'s table 
rule segment assertion error: ", actual.getClass().getSimpleName())),
+                        
actual.getTableStrategySegment().getShardingAlgorithm().getName(), 
is(expected.getTableStrategy().getAlgorithmSegment().getName()));
+            }
             assertThat(assertContext.getText(String.format("`%s`'s table rule 
segment assertion error: ", actual.getClass().getSimpleName())),
                     actual.getDatabaseStrategySegment().getShardingColumn(), 
is(expected.getDataStrategy().getShardingColumn()));
             assertThat(assertContext.getText(String.format("`%s`'s table rule 
segment assertion error: ", actual.getClass().getSimpleName())),
                     actual.getDatabaseStrategySegment().getType(), 
is(expected.getDataStrategy().getType()));
-            assertThat(assertContext.getText(String.format("`%s`'s table rule 
segment assertion error: ", actual.getClass().getSimpleName())),
-                    
actual.getDatabaseStrategySegment().getShardingAlgorithm().getName(), 
is(expected.getDataStrategy().getAlgorithmSegment().getName()));
+            if 
(!"none".equalsIgnoreCase(actual.getDatabaseStrategySegment().getType())) {
+                assertThat(assertContext.getText(String.format("`%s`'s table 
rule segment assertion error: ", actual.getClass().getSimpleName())),
+                        
actual.getDatabaseStrategySegment().getShardingAlgorithm().getName(), 
is(expected.getDataStrategy().getAlgorithmSegment().getName()));
+            }
             if (null != actual.getKeyGenerateStrategySegment()) {
                 assertThat(assertContext.getText(String.format("`%s`'s table 
rule segment assertion error: ", actual.getClass().getSimpleName())),
                         
actual.getKeyGenerateStrategySegment().getKeyGenerateColumn(), 
is(expected.getKeyGenerateStrategyColumn()));
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
index f0bdca47238..334a6e0f3d2 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/alter/impl/AlterDefaultShardingStrategyStatementAssert.java
@@ -46,14 +46,16 @@ public final class 
AlterDefaultShardingStrategyStatementAssert {
             assertNull(assertContext.getText("Actual statement should not 
exist."), actual);
         } else {
             assertNotNull(assertContext.getText("Actual statement should 
exist."), actual);
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getDefaultType(), 
is(expected.getStrategy().getDefaultType()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getShardingColumn(), 
is(expected.getStrategy().getShardingColumn()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getStrategyType(), 
is(expected.getStrategy().getStrategyType()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
-                    actual.getAlgorithmSegment().getName(), 
is(expected.getStrategy().getAlgorithmSegment().getName()));
+            if (!"none".equalsIgnoreCase(actual.getStrategyType())) {
+                assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
+                        actual.getAlgorithmSegment().getName(), 
is(expected.getStrategy().getAlgorithmSegment().getName()));
+            }
         }
     }
 }
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
index 1aee8d42714..49e39982f79 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/rdl/create/impl/CreateDefaultShardingStrategyStatementAssert.java
@@ -47,14 +47,16 @@ public final class 
CreateDefaultShardingStrategyStatementAssert {
         } else {
             assertNotNull(assertContext.getText("Actual statement should 
exist."), actual);
             assertThat(assertContext.getText("if not exists segment assertion 
error: "), actual.isIfNotExists(), is(expected.isIfNotExists()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getDefaultType(), 
is(expected.getStrategy().getDefaultType()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getShardingColumn(), 
is(expected.getStrategy().getShardingColumn()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
+            assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
                     actual.getStrategyType(), 
is(expected.getStrategy().getStrategyType()));
-            assertThat(assertContext.getText(String.format("`%s`'s datasource 
segment assertion error: ", actual.getClass().getSimpleName())),
-                    actual.getAlgorithmSegment().getName(), 
is(expected.getStrategy().getAlgorithmSegment().getName()));
+            if (!"none".equalsIgnoreCase(actual.getStrategyType())) {
+                assertThat(assertContext.getText(String.format("`%s`'s default 
sharding strategy segment assertion error: ", 
actual.getClass().getSimpleName())),
+                        actual.getAlgorithmSegment().getName(), 
is(expected.getStrategy().getAlgorithmSegment().getName()));
+            }
         }
     }
 }
diff --git a/test/it/parser/src/main/resources/case/rdl/alter.xml 
b/test/it/parser/src/main/resources/case/rdl/alter.xml
index 9ae0b842daf..b6f903f1700 100644
--- a/test/it/parser/src/main/resources/case/rdl/alter.xml
+++ b/test/it/parser/src/main/resources/case/rdl/alter.xml
@@ -151,6 +151,34 @@
         </rule>
     </alter-sharding-table-rule>
     
+    <alter-sharding-table-rule 
sql-case-id="alter-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy">
+        <rule name="t_order_item">
+            <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+            <table-strategy type="complex" sharding-column="user_id,order_id">
+                <algorithm-segment algorithm-name="complex_inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}_${order_id % 2}" />
+                </algorithm-segment>
+            </table-strategy>
+            <database-strategy type="standard" sharding-column="user_id">
+                <algorithm-segment algorithm-name="inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}" />
+                </algorithm-segment>
+            </database-strategy>
+        </rule>
+    </alter-sharding-table-rule>
+    
+    <alter-sharding-table-rule 
sql-case-id="alter-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy">
+        <rule name="t_order_item">
+            <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+            <database-strategy type="hint" sharding-column="user_id">
+                <algorithm-segment algorithm-name="hint_inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}" />
+                </algorithm-segment>
+            </database-strategy>
+            <table-strategy type="none" />
+        </rule>
+    </alter-sharding-table-rule>
+    
     <alter-sharding-table-reference-rule 
sql-case-id="alter-sharding-table-reference-rule">
         <rule name="reference_0" table-groups="t_order,t_order_item" />
         <rule name="reference_1" table-groups="t_1,t_2" />
@@ -270,14 +298,46 @@
         </strategy>
     </alter-default-sharding-strategy>
     
-    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-strategy-complex">
-        <strategy default-type="TABLE" strategy-type="complex" 
sharding-column="order_id,user_id">
-            <algorithm-segment algorithm-name="INLINE">
-                <property key="algorithm-expression" value="t_order_${order_id 
% 2}_${user_id % 2}" />
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-table-strategy-with-complex-strategy-type">
+        <strategy default-type="TABLE" strategy-type="complex" 
sharding-column="user_id,order_id">
+            <algorithm-segment algorithm-name="COMPLEX_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}_${order_id % 2}" />
             </algorithm-segment>
         </strategy>
     </alter-default-sharding-strategy>
     
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-table-strategy-with-hint-strategy-type">
+        <strategy default-type="TABLE" strategy-type="hint" 
sharding-column="user_id">
+            <algorithm-segment algorithm-name="HINT_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}" />
+            </algorithm-segment>
+        </strategy>
+    </alter-default-sharding-strategy>
+    
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-table-strategy-with-none-strategy-type">
+        <strategy default-type="TABLE" strategy-type="none" />
+    </alter-default-sharding-strategy>
+    
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-database-strategy-with-complex-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="complex" 
sharding-column="user_id,order_id">
+            <algorithm-segment algorithm-name="COMPLEX_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}_${order_id % 2}" />
+            </algorithm-segment>
+        </strategy>
+    </alter-default-sharding-strategy>
+    
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-database-strategy-with-hint-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="hint" 
sharding-column="user_id">
+            <algorithm-segment algorithm-name="HINT_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}" />
+            </algorithm-segment>
+        </strategy>
+    </alter-default-sharding-strategy>
+    
+    <alter-default-sharding-strategy 
sql-case-id="alter-default-sharding-database-strategy-with-none-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="none" />
+    </alter-default-sharding-strategy>
+    
     <alter-mask-rule sql-case-id="alter-mask-rule">
         <rule name="t_mask">
             <column name="phone_number">
diff --git a/test/it/parser/src/main/resources/case/rdl/create.xml 
b/test/it/parser/src/main/resources/case/rdl/create.xml
index d6d76603540..1d21fea0ab5 100644
--- a/test/it/parser/src/main/resources/case/rdl/create.xml
+++ b/test/it/parser/src/main/resources/case/rdl/create.xml
@@ -570,14 +570,46 @@
         </strategy>
     </create-default-sharding-strategy>
     
-    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-strategy-complex">
-        <strategy default-type="TABLE" strategy-type="complex" 
sharding-column="order_id,user_id">
-            <algorithm-segment algorithm-name="INLINE">
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-table-strategy-with-complex-strategy-type">
+        <strategy default-type="TABLE" strategy-type="complex" 
sharding-column="user_id,order_id">
+            <algorithm-segment algorithm-name="COMPLEX_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}_${order_id % 2}" />
+            </algorithm-segment>
+        </strategy>
+    </create-default-sharding-strategy>
+    
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-table-strategy-with-hint-strategy-type">
+        <strategy default-type="TABLE" strategy-type="hint" 
sharding-column="user_id">
+            <algorithm-segment algorithm-name="HINT_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}" />
+            </algorithm-segment>
+        </strategy>
+    </create-default-sharding-strategy>
+    
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-table-strategy-with-none-strategy-type">
+        <strategy default-type="TABLE" strategy-type="none" />
+    </create-default-sharding-strategy>
+    
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-database-strategy-with-complex-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="complex" 
sharding-column="user_id,order_id">
+            <algorithm-segment algorithm-name="COMPLEX_INLINE">
                 <property key="algorithm-expression" value="t_order_${user_id 
% 2}_${order_id % 2}" />
             </algorithm-segment>
         </strategy>
     </create-default-sharding-strategy>
     
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-database-strategy-with-hint-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="hint" 
sharding-column="user_id">
+            <algorithm-segment algorithm-name="HINT_INLINE">
+                <property key="algorithm-expression" value="t_order_${user_id 
% 2}" />
+            </algorithm-segment>
+        </strategy>
+    </create-default-sharding-strategy>
+    
+    <create-default-sharding-strategy 
sql-case-id="create-default-sharding-database-strategy-with-none-strategy-type">
+        <strategy default-type="DATABASE" strategy-type="none" />
+    </create-default-sharding-strategy>
+    
     <create-default-shadow-algorithm 
sql-case-id="create-default-shadow-algorithm">
         <shadow-algorithm algorithm-id="default">
             <algorithm algorithm-name="HINT">
@@ -615,6 +647,34 @@
             <key-generate-strategy algorithm-name="snowflake" />
         </rule>
     </create-sharding-table-rule>
+    
+    <create-sharding-table-rule 
sql-case-id="create-sharding-table-rule-with-complex-table-strategy-and-standard-database-strategy">
+        <rule name="t_order_item">
+            <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+            <table-strategy type="complex" sharding-column="user_id,order_id">
+                <algorithm-segment algorithm-name="complex_inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}_${order_id % 2}" />
+                </algorithm-segment>
+            </table-strategy>
+            <database-strategy type="standard" sharding-column="user_id">
+                <algorithm-segment algorithm-name="inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}" />
+                </algorithm-segment>
+            </database-strategy>
+        </rule>
+    </create-sharding-table-rule>
+    
+    <create-sharding-table-rule 
sql-case-id="create-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy">
+        <rule name="t_order_item">
+            <data-node>ds_${0..1}.t_order_item_${0..1}</data-node>
+            <database-strategy type="hint" sharding-column="user_id">
+                <algorithm-segment algorithm-name="hint_inline">
+                    <property key="algorithm-expression" 
value="t_order_${user_id % 2}" />
+                </algorithm-segment>
+            </database-strategy>
+            <table-strategy type="none" />
+        </rule>
+    </create-sharding-table-rule>
 
     <create-encrypt-rule 
sql-case-id="create-encrypt-rule-without-quote-on-build-in-algorithm-type-name">
         <rule name="t_encrypt" query-with-cipher-column="true">
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 687f48969f3..b6a8ed331f7 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
@@ -41,7 +41,14 @@
     <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-complex-table-strategy-and-standard-database-strategy"
 value="ALTER SHARDING TABLE RULE t_order_item 
(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='complex',SHARDING_COLUMNS=user_id,order_id,SHARDING_ALGORITHM(TYPE(NAME='complex_inline',PROPERTIES('algorithm-expressi
 [...]
+    <sql-case 
id="alter-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy"
 value="ALTER SHARDING TABLE RULE t_order_item 
(DATANODES('ds_${0..1}.t_order_item_${0..1}'), 
DATABASE_STRATEGY(TYPE='hint',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='hint_inline',PROPERTIES('algorithm-expression'='ds_${user_id
 % 2}')))), TABLE_STRATEGY(TYPE='none'));" db-types="ShardingSphere" />
     <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-case 
id="alter-default-sharding-table-strategy-with-complex-strategy-type" 
value="ALTER DEFAULT SHARDING TABLE STRATEGY (TYPE='complex', 
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id % 
2}'))));" db-types="ShardingSphere" />
+    <sql-case 
id="alter-default-sharding-table-strategy-with-hint-strategy-type" value="ALTER 
DEFAULT SHARDING TABLE STRATEGY (TYPE='hint', SHARDING_COLUMN=user_id, 
SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));" 
db-types="ShardingSphere" />
+    <sql-case 
id="alter-default-sharding-table-strategy-with-none-strategy-type" value="ALTER 
DEFAULT SHARDING TABLE STRATEGY (TYPE='none');" db-types="ShardingSphere" />
+    <sql-case 
id="alter-default-sharding-database-strategy-with-complex-strategy-type" 
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='complex', 
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id % 
2}'))));" db-types="ShardingSphere" />
+    <sql-case 
id="alter-default-sharding-database-strategy-with-hint-strategy-type" 
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='hint', 
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));" 
db-types="ShardingSphere" />
+    <sql-case 
id="alter-default-sharding-database-strategy-with-none-strategy-type" 
value="ALTER DEFAULT SHARDING DATABASE STRATEGY (TYPE='none');" 
db-types="ShardingSphere" />
     <sql-case id="alter-mask-rule" value="ALTER MASK RULE t_mask 
(COLUMNS((NAME=phone_number,TYPE(NAME='MASK_FROM_X_TO_Y', 
PROPERTIES('from-x'=1, 'to-y'=2, 'replace-char'='*'))), 
(NAME=address,TYPE(NAME=MD5))));" 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 3d7a3040ee3..edb3060ce0b 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
@@ -50,12 +50,19 @@
     <sql-case id="create-shadow-rule-if-not-exists" value="CREATE SHADOW RULE 
IF NOT EXISTS 
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='SQL_HINT')))"
 db-types="ShardingSphere" />
     <sql-case id="create-default-sharding-table-strategy-with-lower-case" 
value="create 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="create-default-sharding-table-strategy-if-not-exists-with-lower-case" 
value="create default sharding table strategy if not exists(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="create-default-sharding-table-strategy-with-complex-strategy-type" 
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='complex', 
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE, 
PROPERTIES('algorithm-expression'='${user_id % 2}_${order_id % 2}'))));" 
db-types="ShardingSphere" />
+    <sql-case 
id="create-default-sharding-table-strategy-with-hint-strategy-type" 
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='hint', 
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));" 
db-types="ShardingSphere" />
+    <sql-case 
id="create-default-sharding-table-strategy-with-none-strategy-type" 
value="CREATE DEFAULT SHARDING TABLE STRATEGY (TYPE='none');" 
db-types="ShardingSphere" />
+    <sql-case 
id="create-default-sharding-database-strategy-with-complex-strategy-type" 
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='complex', 
SHARDING_COLUMNS=user_id,order_id, SHARDING_ALGORITHM(TYPE(NAME=COMPLEX_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}_${order_id % 
2}'))));" db-types="ShardingSphere" />
+    <sql-case 
id="create-default-sharding-database-strategy-with-hint-strategy-type" 
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='hint', 
SHARDING_COLUMN=user_id, SHARDING_ALGORITHM(TYPE(NAME=HINT_INLINE, 
PROPERTIES('algorithm-expression'='t_order_${user_id % 2}'))));" 
db-types="ShardingSphere" />
+    <sql-case 
id="create-default-sharding-database-strategy-with-none-strategy-type" 
value="CREATE DEFAULT SHARDING DATABASE STRATEGY (TYPE='none');" 
db-types="ShardingSphere" />
     <sql-case id="create-default-sharding-database-strategy" value="CREATE 
DEFAULT SHARDING DATABASE STRATEGY(TYPE='STANDARD', SHARDING_COLUMN=ORDER_ID, 
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
 % 2}'))))" db-types="ShardingSphere" />
     <sql-case id="create-default-sharding-database-strategy-if-not-exists" 
value="CREATE DEFAULT SHARDING DATABASE STRATEGY IF NOT EXISTS 
(TYPE='STANDARD', SHARDING_COLUMN=ORDER_ID, 
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='ms_group_${order_id
 % 2}'))))" db-types="ShardingSphere" />
-    <sql-case id="create-default-sharding-strategy-complex" value="CREATE 
DEFAULT SHARDING TABLE STRATEGY(TYPE='complex', 
SHARDING_COLUMNS=order_id,user_id, 
SHARDING_ALGORITHM(TYPE(NAME='INLINE',PROPERTIES('algorithm-expression'='t_order_${user_id
 % 2}_${order_id % 2}'))))" db-types="ShardingSphere" />
     <sql-case id="create-sharding-table-rule" 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(COLUMN=anothe [...]
     <sql-case id="create-sharding-table-rule-with-enum-inline-expression" 
value="CREATE SHARDING TABLE RULE t_order 
(DATANODES(&quot;ms_group_${['abc','ac']}.t_order_${0..1}&quot;),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-complex-table-strategy-and-standard-database-strategy"
 value="CREATE SHARDING TABLE RULE t_order_item 
(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='complex',SHARDING_COLUMNS=user_id,order_id,SHARDING_ALGORITHM(TYPE(NAME='complex_inline',PROPERTIES('algorithm-expres
 [...]
+    <sql-case 
id="create-sharding-table-rule-with-none-table-strategy-and-hint-database-strategy"
 value="CREATE SHARDING TABLE RULE t_order_item 
(DATANODES('ds_${0..1}.t_order_item_${0..1}'), 
DATABASE_STRATEGY(TYPE='hint',SHARDING_COLUMN=user_id,SHARDING_ALGORITHM(TYPE(NAME='hint_inline',PROPERTIES('algorithm-expression'='ds_${user_id
 % 2}')))), TABLE_STRATEGY(TYPE='none'));" db-types="ShardingSphere" />
     <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-if-not-exists" 
value="CREATE SHARDING TABLE RULE IF NOT EXISTS 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} [...]

Reply via email to