You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/08/11 06:04:41 UTC

[shardingsphere] branch master updated: fix sql parser test case (#6761)

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

panjuan 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 cfbf6f4  fix sql parser test case (#6761)
cfbf6f4 is described below

commit cfbf6f443e18de8a9eb5cdf068b4430ba4c36550
Author: JingShang Lu <ji...@gmail.com>
AuthorDate: Tue Aug 11 14:04:27 2020 +0800

    fix sql parser test case (#6761)
    
    * fix sql parser test case
    
    * fix TODO
---
 .../src/main/antlr4/imports/mysql/DDLStatement.g4  | 37 +++++++++---
 .../src/test/resources/case/dcl/set-role.xml       |  1 +
 .../src/test/resources/case/dml/insert.xml         | 40 ++++++++++++-
 .../test/resources/case/dml/select-order-by.xml    |  5 --
 .../src/test/resources/case/dml/select.xml         | 69 ++++++++++++++++++++++
 .../resources/sql/supported/dcl/create-login.xml   |  1 +
 .../resources/sql/supported/dcl/create-user.xml    |  1 -
 .../sql/supported/dcl/set-default-role.xml         |  1 -
 .../test/resources/sql/supported/dcl/set-role.xml  |  1 +
 .../test/resources/sql/supported/ddl/create.xml    | 14 ++---
 .../test/resources/sql/supported/dml/insert.xml    |  2 +-
 .../sql/supported/dml/select-distinct.xml          |  6 +-
 .../sql/supported/dml/select-order-by.xml          |  6 +-
 13 files changed, 150 insertions(+), 34 deletions(-)

diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
index 288dd47..9c9baf4 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
@@ -20,7 +20,29 @@ grammar DDLStatement;
 import Symbol, Keyword, MySQLKeyword, Literals, BaseRule, DMLStatement;
 
 createTable
-    : CREATE createTableSpecification_? TABLE notExistClause_ tableName (createDefinitionClause tableOptions_? partitionOptions? (AS? select)? | createLikeClause)
+    : CREATE TEMPORARY? TABLE notExistClause_ tableName (createDefinitionClause? tableOptions_? partitionClause? duplicateAsQueryExpression? | createLikeClause)
+    ;
+
+partitionClause
+    : PARTITION BY partitionTypeDef (PARTITIONS NUMBER_)? subPartitions? partitionDefinitions_?
+    ;
+
+partitionTypeDef
+    : LINEAR KEY partitionKeyAlgorithm? columnNames
+    | LINEAR HASH LP_ bitExpr RP_
+    | (RANGE | LIST) (LP_ bitExpr RP_ | COLUMNS columnNames )
+    ;
+
+subPartitions
+    : SUBPARTITION BY LINEAR? ( HASH LP_ bitExpr RP_ | KEY partitionKeyAlgorithm? columnNames ) (SUBPARTITIONS NUMBER_)?
+    ;
+
+partitionKeyAlgorithm
+    : ALGORITHM EQ_ NUMBER_
+    ;
+
+duplicateAsQueryExpression
+    : (REPLACE | IGNORE)? AS? LP_? select RP_?
     ;
 
 alterTable
@@ -46,9 +68,7 @@ partitionOption
     | REBUILD PARTITION (partitionNames | ALL)
     | REPAIR PARTITION (partitionNames | ALL)
     | REMOVE PARTITIONING
-    | PARTITION BY (LINEAR? HASH LP_ expr RP_ | LINEAR? KEY (ALGORITHM EQ_ NUMBER_)? LP_ columnNames RP_ | RANGE (LP_ expr RP_ | COLUMNS LP_ columnNames RP_) |
-     LIST (LP_ expr RP_ | COLUMNS LP_ columnNames RP_)) (PARTITIONS NUMBER_)?
-     (SUBPARTITION BY (LINEAR? HASH LP_ expr RP_ | LINEAR? KEY (ALGORITHM EQ_ NUMBER_ LP_ columnNames RP_)) (SUBPARTITIONS NUMBER_)?)?  partitionDefinitions_?
+    | partitionClause
     ;
 
 partitionNames
@@ -279,10 +299,6 @@ renameTable
     : RENAME TABLE tableName TO tableName (tableName TO tableName)*
     ;
 
-createTableSpecification_
-    : TEMPORARY
-    ;
-
 createDefinitionClause
     : LP_ createDefinition (COMMA_ createDefinition)* RP_
     ;
@@ -450,9 +466,12 @@ tableOption_
     | PACK_KEYS EQ_? (NUMBER_ | DEFAULT)
     | PASSWORD EQ_? STRING_
     | ROW_FORMAT EQ_? (DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT)
+    | SECONDARY_ENGINE EQ_? (NULL | STRING_)
+    | STORAGE (DISK | MEMORY)
     | STATS_AUTO_RECALC EQ_? (DEFAULT | NUMBER_)
     | STATS_PERSISTENT EQ_? (DEFAULT | NUMBER_)
-    | STATS_SAMPLE_PAGES EQ_? NUMBER_
+    | STATS_SAMPLE_PAGES EQ_? (NUMBER_ | DEFAULT)
+    | TABLE_CHECKSUM EQ_ NUMBER_
     | TABLESPACE ignoredIdentifier_ (STORAGE (DISK | MEMORY | DEFAULT))?
     | UNION EQ_? LP_ tableName (COMMA_ tableName)* RP_
     ;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dcl/set-role.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dcl/set-role.xml
index ae539d1..7078f1e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dcl/set-role.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dcl/set-role.xml
@@ -17,6 +17,7 @@
   -->
 
 <sql-parser-test-cases>
+    <set-role sql-case-id="set_role_default" />
     <set-role sql-case-id="set_role" />
     <set-role sql-case-id="set_roles" />
     <set-role sql-case-id="set_none_role" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
index 57ecbb7..d4562d2 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/insert.xml
@@ -624,9 +624,43 @@
         </values>
     </insert>
 
-    <!--<insert sql-case-id="insert_with_batch_and_composite_expression" parameters="1, 1, 'init', 2, 2, 'init'">-->
-            <!--<table name="t_order" start-index="12" stop-index="18" />-->
-    <!--</insert>-->
+    <insert sql-case-id="insert_with_batch_and_composite_expression" parameters="1, 1, 'init', 2, 2, 'init'">
+            <table name="t_order" start-index="12" stop-index="18" />
+        <columns start-index="20" stop-index="46">
+            <column name="order_id" start-index="21" stop-index="28" />
+            <column name="user_id" start-index="31" stop-index="37" />
+            <column name="status" start-index="40" stop-index="45" />
+        </columns>
+        <values>
+            <value>
+                <assignment-value>
+                    <parameter-marker-expression value="0" start-index="56" stop-index="56" />
+                    <literal-expression value="1" start-index="56" stop-index="56" />
+                </assignment-value>
+                <assignment-value>
+                    <parameter-marker-expression value="1" start-index="59" stop-index="59" />
+                    <literal-expression value="1" start-index="59" stop-index="59" />
+                </assignment-value>
+                <assignment-value>
+                    <common-expression text="SUBSTR(?, 1)" literal-text="SUBSTR('init', 1)" literal-start-index="62" literal-stop-index="78" start-index="62" stop-index="73" />
+
+                </assignment-value>
+            </value>
+            <value>
+                <assignment-value>
+                    <parameter-marker-expression value="3" start-index="78" stop-index="78" />
+                    <literal-expression value="2" literal-start-index="83" literal-stop-index="83" />
+                </assignment-value>
+                <assignment-value>
+                    <parameter-marker-expression value="4" start-index="81" stop-index="81" />
+                    <literal-expression value="2" literal-start-index="86" literal-stop-index="86" />
+                </assignment-value>
+                <assignment-value>
+                    <common-expression text="SUBSTR(?, 1)" literal-text="SUBSTR('init', 1)" start-index="84" stop-index="95" literal-start-index="89" literal-stop-index="105" />
+                </assignment-value>
+            </value>
+        </values>
+    </insert>
 
     <insert sql-case-id="insert_with_batch_and_with_generate_key_column" parameters="10000, 1000, 10, 10010, 1001, 10">
         <table name="t_order_item" start-index="12" stop-index="23" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-order-by.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-order-by.xml
index 5b3eb98..25e6994 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-order-by.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select-order-by.xml
@@ -240,11 +240,6 @@
         </order-by>
     </select>
 
-    <!--TODO need to add later-->
-    <!--<select sql-case-id="select_order_by_with_parameter" parameters="order_id">-->
-            <!--<simple-table name="t_order" alias="o" start-index="14" stop-index="20" />-->
-    <!--</select>-->
-
     <select sql-case-id="select_order_by_with_table_star_table_name">
         <table-reference>
             <table-factor>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select.xml
index a96e394..9c61196 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/case/dml/select.xml
@@ -1270,6 +1270,75 @@
         </projections>
     </select>
 
+    <select sql-case-id="select_distinct_with_owner_column_without_order_by" >
+        <table-reference>
+            <table-factor>
+                <table name="t_order" start-index="38" stop-index="44" />
+            </table-factor>
+        </table-reference>
+        <projections start-index="16" stop-index="31" distinct-row="true">
+            <column-projection name="order_id" start-index="16" stop-index="31" >
+                <owner name="t_order" start-index="16" stop-index="22" />
+            </column-projection>
+        </projections>
+        <order-by>
+            <column-item name="order_id" start-index="55" stop-index="70">
+                <owner name="t_order" start-index="55" stop-index="61"/>
+            </column-item>
+        </order-by>
+    </select>
+
+    <select sql-case-id="select_distinct_with_owner_star_without_order_by" >
+        <table-reference>
+            <table-factor>
+                <table name="t_order" start-index="54" stop-index="60" />
+            </table-factor>
+        </table-reference>
+        <table-reference>
+            <table-factor>
+                <table name="t_order_item" start-index="63" stop-index="74" />
+            </table-factor>
+        </table-reference>
+        <projections start-index="16" stop-index="47" distinct-row="true">
+            <shorthand-projection start-index="16" stop-index="24">
+                <owner name="t_order" start-index="16" stop-index="22"/>
+            </shorthand-projection>
+            <column-projection name="order_id" start-index="27" stop-index="47" >
+                <owner name="t_order_item" start-index="27" stop-index="38" />
+            </column-projection>
+        </projections>
+        <where>
+            <and-predicate>
+                <predicate start-index="82" stop-index="121">
+                    <column-left-value name="order_id" start-index="82" stop-index="97">
+                        <owner name="t_order" start-index="82" stop-index="88"/>
+                    </column-left-value>
+                    <column-right-value name="order_id" start-index="101" stop-index="121">
+                        <owner name="t_order_item" start-index="101" stop-index="112"/>
+                    </column-right-value>
+                </predicate>
+            </and-predicate>
+        </where>
+    </select>
+
+    <select sql-case-id="select_distinct_with_owner_column_with_group_by" >
+        <table-reference>
+            <table-factor>
+                <table name="t_order" start-index="38" stop-index="44" />
+            </table-factor>
+        </table-reference>
+        <projections start-index="16" stop-index="31" distinct-row="true">
+            <column-projection name="order_id" start-index="16" stop-index="31" >
+                <owner name="t_order" start-index="16" stop-index="22" />
+            </column-projection>
+        </projections>
+        <group-by>
+            <column-item name="order_id" start-index="55" stop-index="70">
+                <owner name="t_order" start-index="55" stop-index="61"/>
+            </column-item>
+        </group-by>
+    </select>
+
     <select sql-case-id="select_distinct_with_single_column" >
         <table-reference>
             <table-factor>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-login.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-login.xml
index 518be1e..0a89979 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-login.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-login.xml
@@ -23,6 +23,7 @@
     <sql-case id="create_login_with_default_database" value="CREATE LOGIN login1 WITH PASSWORD = 'password', DEFAULT_DATABASE = database" db-types="SQLServer" />
     <sql-case id="create_login_with_expired_password" value="CREATE LOGIN login1 WITH PASSWORD = 'password' MUST_CHANGE, CHECK_EXPIRATION = ON" db-types="SQLServer" />
     <sql-case id="create_login_to_credential" value="CREATE LOGIN login1 WITH PASSWORD = 'password', CREDENTIAL = credential" db-types="SQLServer" />
+<!--    TODO suport create_login_with_windows on SQLServer-->
     <!--<sql-case id="create_login_with_windows" value="CREATE LOGIN [domain\login1] FROM WINDOWS" db-types="SQLServer" />-->
     <sql-case id="create_login_with_certificate" value="CREATE LOGIN login1 FROM CERTIFICATE certificate" db-types="SQLServer" />
     <sql-case id="create_login_with_asym_key" value="CREATE LOGIN login1 FROM ASYMMETRIC KEY asym_key" db-types="SQLServer" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-user.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-user.xml
index d3bb4ca..f19f084 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-user.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/create-user.xml
@@ -48,7 +48,6 @@
     <sql-case id="create_user_with_login" value="CREATE USER user1 FROM LOGIN login1" db-types="SQLServer" />
     <sql-case id="create_user_with_schema" value="CREATE USER user1 WITH DEFAULT_SCHEMA = schema" db-types="SQLServer" />
     <sql-case id="create_user_with_no_login" value="CREATE USER user1 WITHOUT LOGIN" db-types="SQLServer" />
-    <!--<sql-case id="create_login_with_windows" value="CREATE LOGIN [domain\login1]" db-types="SQLServer" />-->
     <sql-case id="create_user_with_certificate" value="CREATE USER user1 FROM CERTIFICATE certificate" db-types="SQLServer" />
     <sql-case id="create_user_with_asym_key" value="CREATE USER user1 FROM ASYMMETRIC KEY asym_key" db-types="SQLServer" />
 </sql-cases>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-default-role.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-default-role.xml
index 2cd0590..79c4d8f 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-default-role.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-default-role.xml
@@ -19,7 +19,6 @@
 <sql-cases>
     <sql-case id="set_default_none_role" value="SET DEFAULT ROLE NONE TO user1" db-types="MySQL" />
     <sql-case id="set_default_all_role" value="SET DEFAULT ROLE ALL TO user1" db-types="MySQL" />
-    <!-- <sql-case id="set_default_role" value="SET DEFAULT ROLE" db-types="MySQL" /> -->
     <sql-case id="set_default_role_to_user" value="SET DEFAULT ROLE role1 TO user1" db-types="MySQL" />
     <sql-case id="set_default_roles_to_users" value="SET DEFAULT ROLE role1, role2 TO user1, user2" db-types="MySQL" />
 </sql-cases>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-role.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-role.xml
index 2eba117..5539dc5 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-role.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dcl/set-role.xml
@@ -17,6 +17,7 @@
   -->
 
 <sql-cases>
+    <sql-case id="set_role_default" value="SET ROLE DEFAULT" db-types="MySQL" />
     <sql-case id="set_role" value="SET ROLE role1" db-types="MySQL" />
     <sql-case id="set_roles" value="SET ROLE role1, role2" db-types="MySQL" />
     <sql-case id="set_none_role" value="SET ROLE NONE" db-types="MySQL" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/ddl/create.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/ddl/create.xml
index 300fcaa..03a429d 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/ddl/create.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/ddl/create.xml
@@ -63,10 +63,9 @@
     <sql-case id="create_table_with_out_of_line_btree_index" value="CREATE TABLE t_order (order_id INT, user_id INT, status VARCHAR(10), column1 VARCHAR(10), column2 VARCHAR(10), column3 VARCHAR(10), INDEX order_index (order_id) USING BTREE)" db-types="MySQL" />
     <sql-case id="create_table_with_comment" value="CREATE TABLE t_order (order_id INT, user_id INT, status VARCHAR(10), column1 VARCHAR(10), column2 VARCHAR(10), column3 VARCHAR(10)) COMMENT 't_order'" db-types="MySQL" />
     <sql-case id="create_table_with_partition" value="CREATE TABLE t_order (order_id INT, user_id INT, status VARCHAR(10), column1 VARCHAR(10), column2 VARCHAR(10), column3 VARCHAR(10)) PARTITION BY HASH (order_id) PARTITIONS 2" db-types="MySQL" />
-    <!--
-    <sql-case id="create_table_select" value="CREATE TABLE t_order_bak AS SELECT * FROM t_order" db-types="MySQL" />
-    <sql-case id="create_table_like" value="CREATE TABLE t_order_bak (LIKE t_order)" db-types="MySQL" />
-    -->
+<!--    TODO support createTable with select and like on MySQL-->
+<!--    <sql-case id="create_table_select" value="CREATE TABLE t_order_bak AS SELECT * FROM t_order" db-types="MySQL" />-->
+<!--    <sql-case id="create_table_like" value="CREATE TABLE t_order_bak (LIKE t_order)" db-types="MySQL" />-->
     <sql-case id="create_index_with_space" value="    CREATE INDEX
         order_index
     ON
@@ -92,10 +91,9 @@
     <sql-case id="create_table_with_double_quota" value="CREATE TABLE &quot;t_order&quot; (&quot;order_id&quot; INTEGER, &quot;user_id&quot; INTEGER, &quot;status&quot; VARCHAR(10), &quot;column1&quot; VARCHAR(10), &quot;column2&quot; VARCHAR(10), &quot;column3&quot; VARCHAR(10))" db-types="PostgreSQL" />
     <sql-case id="create_local_temporary_table" value="CREATE LOCAL TEMPORARY TABLE t_order (order_id INTEGER, user_id INTEGER, status VARCHAR(10), column1 VARCHAR(10), column2 VARCHAR(10), column3 VARCHAR(10))" db-types="PostgreSQL" />
     <sql-case id="create_table_with_range_partition" value="CREATE TABLE t_order (order_id INTEGER, user_id INTEGER, status VARCHAR(10), column1 VARCHAR(10), column2 VARCHAR(10), column3 VARCHAR(10)) PARTITION BY RANGE (order_id)" db-types="PostgreSQL" />
-    <!--  
-    <sql-case id="create_table_like" value="CREATE TABLE t_order_bak (LIKE t_order)" db-types="PostgreSQL" />
-    <sql-case id="create_table_inherits" value="CREATE TABLE t_order_bak() inherits (t_order)" db-types="PostgreSQL" />
-    -->
+<!--    TODO support create table with like and inherits on PostgreSQL-->
+<!--    <sql-case id="create_table_like" value="CREATE TABLE t_order_bak (LIKE t_order)" db-types="PostgreSQL" />-->
+<!--    <sql-case id="create_table_inherits" value="CREATE TABLE t_order_bak() inherits (t_order)" db-types="PostgreSQL" />-->
     <sql-case id="create_index_with_double_quota" value="CREATE INDEX &quot;order_index&quot; ON &quot;t_order&quot; (&quot;order_id&quot;)" db-types="PostgreSQL" />
     <sql-case id="create_index_with_double_quota_and_uescape" value="CREATE INDEX U&amp;&quot;order_index!0061t!+000061&quot; UESCAPE '!' ON u&amp;&quot;t_order&quot; (u&amp;&quot;order_id&quot;)" db-types="PostgreSQL" />
     <sql-case id="create_index_concurrently" value="CREATE INDEX CONCURRENTLY order_index ON t_order (order_id)" db-types="PostgreSQL" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
index 424be81..747e379 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/insert.xml
@@ -36,7 +36,7 @@
     <sql-case id="insert_set_without_generate_key_column" value="INSERT INTO t_order_item SET order_id = ?, user_id = ?, status = 'insert', creation_date='2017-08-08'" db-types="MySQL" />
     <sql-case id="insert_with_batch" value="INSERT INTO t_order (order_id, user_id, status) VALUES (?, ?, ?), (?, ?, ?)" />
     <sql-case id="insert_with_batch_and_irregular_parameters" value="INSERT INTO t_order (order_id, user_id, status) VALUES (?, 1, 'insert'), (?, ?, ?)" />
-<!--    <sql-case id="insert_with_batch_and_composite_expression" value="INSERT INTO t_order (order_id, user_id, status) VALUES (?, ?, SUBSTR(?, 1)), (?, ?, SUBSTR(?, 1))" db-types="H2,MySQL" />-->
+    <sql-case id="insert_with_batch_and_composite_expression" value="INSERT INTO t_order (order_id, user_id, status) VALUES (?, ?, SUBSTR(?, 1)), (?, ?, SUBSTR(?, 1))" db-types="H2,MySQL" />
     <sql-case id="insert_with_batch_and_with_generate_key_column" value="INSERT INTO t_order_item(item_id, order_id, user_id, status, creation_date) values (?, ?, ?, 'insert', '2017-08-08'), (?, ?, ?, 'insert', '2017-08-08')" />
     <sql-case id="insert_with_batch_and_without_generate_key_column" value="INSERT INTO t_order_item(order_id, user_id, status, creation_date) values (?, ?, 'insert', '2017-08-08'), (?, ?, 'insert', '2017-08-08')" />
     <sql-case id="insert_on_duplicate_key_update" value="INSERT INTO t_order (order_id, user_id, status) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE status = VALUES(status)" db-types="MySQL" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-distinct.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-distinct.xml
index 4682812..4f419fa 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-distinct.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-distinct.xml
@@ -21,10 +21,10 @@
     <sql-case id="select_distinct_with_single_column_without_order_by" value="SELECT DISTINCT item_id FROM t_order_item" />
     <sql-case id="select_distinct_with_multi_column_without_order_by" value="SELECT DISTINCT order_id, user_id, status FROM t_order" />
 
-    <!-- sql-case id="select_distinct_with_owner_column_without_order_by" value="SELECT DISTINCT t_order.order_id FROM t_order order by t_order.order_id" />
-    <sql-case id="select_distinct_with_owner_star_without_order_by" value="SELECT DISTINCT t_order.*, t_order_item.order_id FROM t_order, t_order_item WHERE t_order.order_id = t_order_item.order_id" / -->
+    <sql-case id="select_distinct_with_owner_column_without_order_by" value="SELECT DISTINCT t_order.order_id FROM t_order order by t_order.order_id" db-types="MySQL" />
+    <sql-case id="select_distinct_with_owner_star_without_order_by" value="SELECT DISTINCT t_order.*, t_order_item.order_id FROM t_order, t_order_item WHERE t_order.order_id = t_order_item.order_id" db-types="MySQL" />
     <!-- for with owner column with group by without order by  -->
-    <!-- sql-case id="select_distinct_with_owner_column" value="SELECT DISTINCT t_order.order_id FROM t_order GROUP BY t_order.order_id" / -->
+    <sql-case id="select_distinct_with_owner_column_with_group_by" value="SELECT DISTINCT t_order.order_id FROM t_order GROUP BY t_order.order_id" db-types="MySQL" />
 
     <sql-case id="select_distinct_with_single_column" value="SELECT DISTINCT item_id FROM t_order_item ORDER BY item_id" />
     <sql-case id="select_distinct_with_multi_column" value="SELECT DISTINCT order_id, user_id, status FROM t_order ORDER BY order_id" />
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-order-by.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-order-by.xml
index 069b058..a006e9e 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-order-by.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/supported/dml/select-order-by.xml
@@ -26,9 +26,9 @@
     <sql-case id="select_order_by_with_multiple_stars" value="SELECT *, order_id, o.* FROM t_order o ORDER BY o.order_id" />
     <sql-case id="select_order_by_with_alias_star_alias_name" value="SELECT o.* FROM t_order o ORDER BY o.order_id" db-types="H2,MySQL" />
     <sql-case id="select_order_by_with_star_table_alias" value="SELECT * FROM t_order o ORDER BY order_id" db-types="H2,MySQL" />
-    <!--TODO need to add later-->
-    <!--<sql-case id="select_order_by_with_parameter" value="SELECT * FROM t_order o ORDER BY ?" db-types="H2,MySQL" />-->
-    <!--<sql-case id="select_order_by_with_parameter_desc" value="SELECT * FROM t_order o ORDER BY ? DESC" db-types="H2,MySQL" />-->
+    <!--TODO need to fix on visitor-->
+<!--    <sql-case id="select_order_by_with_parameter" value="SELECT * FROM t_order o ORDER BY ?" db-types="MySQL" />-->
+<!--    <sql-case id="select_order_by_with_parameter_desc" value="SELECT * FROM t_order o ORDER BY ? DESC" db-types="MySQL" />-->
     <sql-case id="select_order_by_with_table_star_table_name" value="SELECT t_order.* FROM t_order ORDER BY t_order.order_id" db-types="H2,MySQL" />
     <sql-case id="select_order_by_with_star_no_table_alias" value="SELECT * FROM t_order ORDER BY order_id" db-types="H2,MySQL" />
     <sql-case id="select_order_by_with_table_star_without_table_name" value="SELECT i.*, o.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id ORDER BY item_id" db-types="H2,MySQL" />