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 "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_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 "order_index" ON "t_order" ("order_id")" db-types="PostgreSQL" />
<sql-case id="create_index_with_double_quota_and_uescape" value="CREATE INDEX U&"order_index!0061t!+000061" UESCAPE '!' ON u&"t_order" (u&"order_id")" 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" />