You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by yx...@apache.org on 2024/05/16 23:59:22 UTC

(shardingsphere) branch master updated: Revise code style for clickhouse parse in pr#31226 (#31250)

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

yx9o 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 aea534861db Revise code style for clickhouse parse in pr#31226 (#31250)
aea534861db is described below

commit aea534861db3fb3790fe4fd1a344075314c6628f
Author: Zhengqiang Duan <du...@apache.org>
AuthorDate: Fri May 17 07:59:16 2024 +0800

    Revise code style for clickhouse parse in pr#31226 (#31250)
---
 .../clickhouse/{LexerAlphabet.g4 => Alphabet.g4}   |   5 +-
 .../src/main/antlr4/imports/clickhouse/BaseRule.g4 |  86 +-
 .../antlr4/imports/clickhouse/ClickHouseKeyword.g4 | 878 +++++++++++++++++++++
 .../clickhouse/{LexerComments.g4 => Comments.g4}   |   5 +-
 .../main/antlr4/imports/clickhouse/DMLStatement.g4 |   5 +-
 .../clickhouse/{LexerKeyword.g4 => Keyword.g4}     |   6 +-
 .../imports/clickhouse/LexerClickHouseKeyword.g4   | 243 ------
 .../clickhouse/{LexerLiterals.g4 => Literals.g4}   |   4 +-
 .../clickhouse/{LexerNumber.g4 => Number.g4}       |   2 +-
 .../clickhouse/{LexerSymbol.g4 => Symbol.g4}       |   3 +-
 .../sql/parser/autogen/ClickHouseStatement.g4      |  13 -
 .../parser/clickhouse/parser/ClickHouseLexer.java  |   1 -
 .../visitor/format/ClickHouseFormatVisitor.java    |  33 -
 ....sql.parser.api.visitor.format.SQLFormatVisitor |  18 -
 .../ddl/ClickHouseAlterTableStatement.java         |   2 +-
 .../ddl/ClickHouseCreateTableStatement.java        |   3 +-
 .../ddl/ClickHouseDropTableStatement.java          |   2 +-
 .../clickhouse/dml/ClickHouseDeleteStatement.java  |   3 +-
 .../clickhouse/dml/ClickHouseInsertStatement.java  |   2 +-
 .../clickhouse/dml/ClickHouseSelectStatement.java  |   2 +-
 .../clickhouse/dml/ClickHouseUpdateStatement.java  |   2 +-
 21 files changed, 954 insertions(+), 364 deletions(-)

diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerAlphabet.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Alphabet.g4
similarity index 97%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerAlphabet.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Alphabet.g4
index 87096bcc58a..f7603cc7e63 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerAlphabet.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Alphabet.g4
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-lexer grammar LexerAlphabet;
+lexer grammar Alphabet;
 
 FOR_GENERATOR: 'DO NOT MATCH ANY THING, JUST FOR GENERATOR';
 
@@ -46,6 +46,3 @@ fragment X:   [Xx];
 fragment Y:   [Yy];
 fragment Z:   [Zz];
 fragment UL_: '_';
-
-
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/BaseRule.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/BaseRule.g4
index 2438a896e44..cde75abda18 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/BaseRule.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/BaseRule.g4
@@ -17,9 +17,7 @@
 
 grammar BaseRule;
 
-import LexerSymbol, LexerKeyword, LexerClickHouseKeyword, LexerLiterals;
-
-cluster: ON CLUSTER identifier;
+import Symbol, Keyword, ClickHouseKeyword, Literals;
 
 parameterMarker
     : QUESTION_
@@ -71,21 +69,29 @@ identifier
     ;
 
 unreservedWord
-        : AFTER | ALIAS | ALL | ALTER | AND | ANTI | ANY | ARRAY | AS | ASCENDING | ASOF | AST | ASYNC | ATTACH | BETWEEN | BOTH | BY | CASE
-        | CAST | CHECK | CLEAR | CLUSTER | CODEC | COLLATE | COLUMN | COMMENT | CONSTRAINT | CREATE | CROSS | CUBE | CURRENT | DATABASE
-        | DATABASES | DATE | DEDUPLICATE | DEFAULT | DELAY | DELETE | DESCRIBE | DESC | DESCENDING | DETACH | DICTIONARIES | DICTIONARY | DISK
-        | DISTINCT | DISTRIBUTED | DROP | ELSE | END | ENGINE | EVENTS | EXISTS | EXPLAIN | EXPRESSION | EXTRACT | FETCHES | FINAL | FIRST
-        | FLUSH | FOR | FOLLOWING | FOR | FORMAT | FREEZE | FROM | FULL | FUNCTION | GLOBAL | GRANULARITY | GROUP | HAVING | HIERARCHICAL | ID
-        | IF | ILIKE | IN | INDEX | INJECTIVE | INNER | INSERT | INTERVAL | INTO | IS | IS_OBJECT_ID | JOIN | JSON_FALSE | JSON_TRUE | KEY
-        | KILL | LAST | LAYOUT | LEADING | LEFT | LIFETIME | LIKE | LIMIT | LIVE | LOCAL | LOGS | MATERIALIZE | MATERIALIZED | MAX | MERGES
-        | MIN | MODIFY | MOVE | MUTATION | NO | NOT | NULLS | OFFSET | ON | OPTIMIZE | OR | ORDER | OUTER | OUTFILE | OVER | PARTITION
-        | POPULATE | PRECEDING | PREWHERE | PRIMARY | RANGE | RELOAD | REMOVE | RENAME | REPLACE | REPLICA | REPLICATED | RIGHT | ROLLUP | ROW
-        | ROWS | SAMPLE | SELECT | SEMI | SENDS | SET | SETTINGS | SHOW | SOURCE | START | STOP | SUBSTRING | SYNC | SYNTAX | SYSTEM | TABLE
-        | TABLES | TEMPORARY | TEST | THEN | TIES | TIMEOUT | TIMESTAMP | TOTALS | TRAILING | TRIM | TRUNCATE | TO | TOP | TTL | TYPE
-        | UNBOUNDED | UNION | UPDATE | USE | USING | UUID | VALUES | VIEW | VOLUME | WATCH | WHEN | WHERE | WINDOW | WITH
-        ;
-
-interval: SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR;
+    : AFTER | ALIAS | ALL | ALTER | AND | ANTI | ANY | ARRAY | AS | ASCENDING | ASOF | AST | ASYNC | ATTACH | BETWEEN | BOTH | BY | CASE
+    | CAST | CHECK | CLEAR | CLUSTER | CODEC | COLLATE | COLUMN | COMMENT | CONSTRAINT | CREATE | CROSS | CUBE | CURRENT | DATABASE
+    | DATABASES | DATE | DEDUPLICATE | DEFAULT | DELAY | DELETE | DESCRIBE | DESC | DESCENDING | DETACH | DICTIONARIES | DICTIONARY | DISK
+    | DISTINCT | DISTRIBUTED | DROP | ELSE | END | ENGINE | EVENTS | EXISTS | EXPLAIN | EXPRESSION | EXTRACT | FETCHES | FINAL | FIRST
+    | FLUSH | FOR | FOLLOWING | FOR | FORMAT | FREEZE | FROM | FULL | FUNCTION | GLOBAL | GRANULARITY | GROUP | HAVING | HIERARCHICAL | ID
+    | IF | ILIKE | IN | INDEX | INJECTIVE | INNER | INSERT | INTERVAL | INTO | IS | IS_OBJECT_ID | JOIN | JSON_FALSE | JSON_TRUE | KEY
+    | KILL | LAST | LAYOUT | LEADING | LEFT | LIFETIME | LIKE | LIMIT | LIVE | LOCAL | LOGS | MATERIALIZE | MATERIALIZED | MAX | MERGES
+    | MIN | MODIFY | MOVE | MUTATION | NO | NOT | NULLS | OFFSET | ON | OPTIMIZE | OR | ORDER | OUTER | OUTFILE | OVER | PARTITION
+    | POPULATE | PRECEDING | PREWHERE | PRIMARY | RANGE | RELOAD | REMOVE | RENAME | REPLACE | REPLICA | REPLICATED | RIGHT | ROLLUP | ROW
+    | ROWS | SAMPLE | SELECT | SEMI | SENDS | SET | SETTINGS | SHOW | SOURCE | START | STOP | SUBSTRING | SYNC | SYNTAX | SYSTEM | TABLE
+    | TABLES | TEMPORARY | TEST | THEN | TIES | TIMEOUT | TIMESTAMP | TOTALS | TRAILING | TRIM | TRUNCATE | TO | TOP | TTL | TYPE
+    | UNBOUNDED | UNION | UPDATE | USE | USING | UUID | VALUES | VIEW | VOLUME | WATCH | WHEN | WHERE | WINDOW | WITH
+    ;
+
+interval
+    : SECOND 
+    | MINUTE 
+    | HOUR 
+    | DAY 
+    | WEEK 
+    | MONTH 
+    | QUARTER 
+    | YEAR;
 
 variable
     : (AT_? AT_)? (GLOBAL | LOCAL)? DOT_? identifier
@@ -132,6 +138,10 @@ characterSetName
     : IDENTIFIER_
     ;
 
+cluster
+    : ON CLUSTER identifier
+    ;
+
 expr
     : expr andOperator expr
     | expr orOperator expr
@@ -269,7 +279,15 @@ intervalExpression
     ;
 
 intervalUnit
-    : MICROSECOND | SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR
+    : MICROSECOND 
+    | SECOND 
+    | MINUTE 
+    | HOUR 
+    | DAY 
+    | WEEK 
+    | MONTH 
+    | QUARTER 
+    | YEAR
     ;
 
 subquery
@@ -290,13 +308,29 @@ dataType
     ;
 
 dataTypeName
-    :UINT8 | UINT16 | UINT32 | UINT64 | INT8 | INT16 | INT32 | INT64 | FLOAT32 | FLOAT64
-    |STRING | FIXED_STRING
-    | DATE | DATETIME | DATETIME64
-    | ENUM8 | ENUM16
+    : UINT8 
+    | UINT16 
+    | UINT32 
+    | UINT64 
+    | INT8 
+    | INT16 
+    | INT32 
+    | INT64 
+    | FLOAT32 
+    | FLOAT64
+    | STRING 
+    | FIXED_STRING
+    | DATE 
+    | DATETIME 
+    | DATETIME64
+    | ENUM8 
+    | ENUM16
     | UUID
-    | ARRAY | TUPLE
-    | IPV4 | IPV6 | NESTED
+    | ARRAY 
+    | TUPLE
+    | IPV4 
+    | IPV6 
+    | NESTED
     | NULLABLE
     | identifier
     ;
@@ -316,5 +350,3 @@ collateClause
 ignoredIdentifier
     : identifier (DOT_ identifier)?
     ;
-
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/ClickHouseKeyword.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/ClickHouseKeyword.g4
new file mode 100644
index 00000000000..ded5b339269
--- /dev/null
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/ClickHouseKeyword.g4
@@ -0,0 +1,878 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+ grammar ClickHouseKeyword;
+
+import Alphabet, Keyword, Number;
+
+ADD
+    : A D D
+    ;
+
+AFTER
+    : A F T E R
+    ;
+
+ALIAS
+    : A L I A S
+    ;
+
+ALL
+    : A L L
+    ;
+
+ALTER
+    : A L T E R
+    ;
+
+AND
+    : A N D
+    ;
+
+ANTI
+    : A N T I
+    ;
+
+ANY
+    : A N Y
+    ;
+
+ARRAY
+    : A R R A Y
+    ;
+
+AS
+    : A S
+    ;
+
+ASCENDING
+    : A S C | A S C E N D I N G
+    ;
+
+ASOF
+    : A S O F
+    ;
+
+AST
+    : A S T
+    ;
+
+ASYNC
+    : A S Y N C
+    ;
+
+ATTACH
+    : A T T A C H
+    ;
+
+BETWEEN
+    : B E T W E E N
+    ;
+
+BOTH
+    : B O T H
+    ;
+
+BY
+    : B Y
+    ;
+
+CASE
+    : C A S E
+    ;
+
+CAST
+    : C A S T
+    ;
+
+CHECK
+    : C H E C K
+    ;
+
+CLEAR
+    : C L E A R
+    ;
+
+CLUSTER
+    : C L U S T E R
+    ;
+
+CODEC
+    : C O D E C
+    ;
+
+COLLATE
+    : C O L L A T E
+    ;
+
+COLUMN
+    : C O L U M N
+    ;
+
+COMMENT
+    : C O M M E N T
+    ;
+
+CONSTRAINT
+    : C O N S T R A I N T
+    ;
+
+CREATE
+    : C R E A T E
+    ;
+
+CROSS
+    : C R O S S
+    ;
+
+CUBE
+    : C U B E
+    ;
+
+CURRENT
+    : C U R R E N T
+    ;
+
+DATABASE
+    : D A T A B A S E
+    ;
+
+DATABASES
+    : D A T A B A S E S
+    ;
+
+DATE
+    : D A T E
+    ;
+
+DAY
+    : D A Y
+    ;
+
+DEDUPLICATE
+    : D E D U P L I C A T E
+    ;
+
+DEFAULT
+    : D E F A U L T
+    ;
+
+DELAY
+    : D E L A Y
+    ;
+
+DELETE
+    : D E L E T E
+    ;
+
+DESC
+    : D E S C
+    ;
+
+DESCENDING
+    : D E S C E N D I N G
+    ;
+
+DESCRIBE
+    : D E S C R I B E
+    ;
+
+DETACH
+    : D E T A C H
+    ;
+
+DICTIONARIES
+    : D I C T I O N A R I E S
+    ;
+
+DICTIONARY
+    : D I C T I O N A R Y
+    ;
+
+DISK
+    : D I S K
+    ;
+
+DISTINCT
+    : D I S T I N C T
+    ;
+
+DISTRIBUTED
+    : D I S T R I B U T E D
+    ;
+
+DROP
+    : D R O P
+    ;
+
+ELSE
+    : E L S E
+    ;
+
+END
+    : E N D
+    ;
+    
+ENGINE
+    : E N G I N E
+    ;
+
+EVENTS
+    : E V E N T S
+    ;
+
+EXISTS
+    : E X I S T S
+    ;
+
+EXPLAIN
+    : E X P L A I N
+    ;
+
+EXPRESSION
+    : E X P R E S S I O N
+    ;
+
+EXTRACT
+    : E X T R A C T
+    ;
+
+FETCHES
+    : F E T C H E S
+    ;
+
+FINAL
+    : F I N A L
+    ;
+
+FIRST
+    : F I R S T
+    ;
+    
+FLUSH
+    : F L U S H
+    ;
+
+FOLLOWING
+    : F O L L O W I N G
+    ;
+
+FOR
+    : F O R
+    ;
+
+FORMAT
+    : F O R M A T
+    ;
+
+FREEZE
+    : F R E E Z E
+    ;
+
+FROM
+    : F R O M
+    ;
+
+FULL
+    : F U L L
+    ;
+
+FUNCTION
+    : F U N C T I O N
+    ;
+
+GLOBAL
+    : G L O B A L
+    ;
+
+GRANULARITY
+    : G R A N U L A R I T Y
+    ;
+
+GROUP
+    : G R O U P
+    ;
+
+HAVING
+    : H A V I N G
+    ;
+
+HIERARCHICAL
+    : H I E R A R C H I C A L
+    ;
+
+HOUR
+    : H O U R
+    ;
+
+ID
+    : I D
+    ;
+
+IF
+    : I F
+    ;
+
+ILIKE
+    : I L I K E
+    ;
+
+IN
+    : I N
+    ;
+
+INDEX
+    : I N D E X
+    ;
+
+INF
+    : I N F | I N F I N I T Y
+    ;
+
+INJECTIVE
+    : I N J E C T I V E
+    ;
+
+INNER
+    : I N N E R
+    ;
+
+INSERT
+    : I N S E R T
+    ;
+
+INTERVAL
+    : I N T E R V A L
+    ;
+
+INTO
+    : I N T O
+    ;
+
+IS
+    : I S
+    ;
+
+IS_OBJECT_ID
+    : I S UL_ O B J E C T UL_ I D
+    ;
+
+JOIN
+    : J O I N
+    ;
+
+KEY
+    : K E Y
+    ;
+
+KILL
+    : K I L L
+    ;
+
+LAST
+    : L A S T
+    ;
+
+LAYOUT
+    : L A Y O U T
+    ;
+
+LEADING
+    : L E A D I N G
+    ;
+
+LEFT
+    : L E F T
+    ;
+
+LIFETIME
+    : L I F E T I M E
+    ;
+
+LIKE
+    : L I K E
+    ;
+
+LIMIT
+    : L I M I T
+    ;
+
+LIVE
+    : L I V E
+    ;
+
+LOCAL
+    : L O C A L
+    ;
+
+LOGS
+    : L O G S
+    ;
+
+MATERIALIZE
+    : M A T E R I A L I Z E
+    ;
+
+MATERIALIZED
+    : M A T E R I A L I Z E D
+    ;
+
+MAX
+    : M A X
+    ;
+
+MERGES
+    : M E R G E S
+    ;
+
+MIN
+    : M I N
+    ;
+
+MINUTE
+    : M I N U T E
+    ;
+
+MODIFY
+    : M O D I F Y
+    ;
+
+MONTH
+    : M O N T H
+    ;
+
+MOVE
+    : M O V E
+    ;
+
+MUTATION
+    : M U T A T I O N
+    ;
+
+// conflicts with macro NAN
+NAN_SQL
+    : N A N
+    ;
+
+NO
+    : N O
+    ;
+
+NOT
+    : N O T
+    ;
+
+// conflicts with macro NULL
+NULL_SQL
+    : N U L L
+    ;
+    
+NULLS
+    : N U L L S
+    ;
+
+OFFSET
+    : O F F S E T
+    ;
+
+ON
+    : O N
+    ;
+
+OPTIMIZE
+    : O P T I M I Z E
+    ;
+
+OR
+    : O R
+    ;
+
+ORDER
+    : O R D E R
+    ;
+
+OUTER
+    : O U T E R
+    ;
+
+OUTFILE
+    : O U T F I L E
+    ;
+
+OVER
+    : O V E R
+    ;
+
+PARTITION
+    : P A R T I T I O N
+    ;
+
+POPULATE
+    : P O P U L A T E
+    ;
+
+PRECEDING
+    : P R E C E D I N G
+    ;
+
+PREWHERE
+    : P R E W H E R E
+    ;
+
+PRIMARY
+    : P R I M A R Y
+    ;
+
+PROJECTION
+    : P R O J E C T I O N
+    ;
+
+QUARTER
+    : Q U A R T E R
+    ;
+
+RANGE
+    : R A N G E
+    ;
+
+RELOAD
+    : R E L O A D
+    ;
+
+REMOVE
+    : R E M O V E
+    ;
+
+RENAME
+    : R E N A M E
+    ;
+
+REPLACE
+    : R E P L A C E
+    ;
+
+REPLICA
+    : R E P L I C A
+    ;
+
+REPLICATED
+    : R E P L I C A T E D
+    ;
+
+RIGHT
+    : R I G H T
+    ;
+
+ROLLUP
+    : R O L L U P
+    ;
+
+ROW
+    : R O W
+    ;
+
+ROWS
+    : R O W S
+    ;
+
+SAMPLE
+    : S A M P L E
+    ;
+
+SECOND
+    : S E C O N D
+    ;
+
+SELECT
+    : S E L E C T
+    ;
+
+SEMI
+    : S E M I
+    ;
+
+SENDS
+    : S E N D S
+    ;
+
+SET
+    : S E T
+    ;
+
+SETTINGS
+    : S E T T I N G S
+    ;
+
+SHOW
+    : S H O W
+    ;
+
+SOURCE
+    : S O U R C E
+    ;
+
+START
+    : S T A R T
+    ;
+
+STOP
+    : S T O P
+    ;
+
+SUBSTRING
+    : S U B S T R I N G
+    ;
+
+SYNC
+    : S Y N C
+    ;
+
+SYNTAX
+    : S Y N T A X
+    ;
+
+SYSTEM
+    : S Y S T E M
+    ;
+
+TABLE
+    : T A B L E
+    ;
+
+TABLES
+    : T A B L E S
+    ;
+
+TEMPORARY
+    : T E M P O R A R Y
+    ;
+
+TEST
+    : T E S T
+    ;
+
+THEN
+    : T H E N
+    ;
+
+TIES
+    : T I E S
+    ;
+
+TIMEOUT
+    : T I M E O U T
+    ;
+
+TIMESTAMP
+    : T I M E S T A M P
+    ;
+
+TO
+    : T O
+    ;
+
+TOP
+    : T O P
+    ;
+
+TOTALS
+    : T O T A L S
+    ;
+
+TRAILING
+    : T R A I L I N G
+    ;
+
+TRIM
+    : T R I M
+    ;
+
+TRUNCATE
+    : T R U N C A T E
+    ;
+
+TTL
+    : T T L
+    ;
+
+TYPE
+    : T Y P E
+    ;
+
+UNBOUNDED
+    : U N B O U N D E D
+    ;
+
+UNION
+    : U N I O N
+    ;
+
+UPDATE
+    : U P D A T E
+    ;
+
+USE
+    : U S E
+    ;
+
+USING
+    : U S I N G
+    ;
+
+UUID
+    : U U I D
+    ;
+
+VALUES
+    : V A L U E S
+    ;
+
+VIEW
+    : V I E W
+    ;
+
+VOLUME
+    : V O L U M E
+    ;
+
+WATCH
+    : W A T C H
+    ;
+
+WEEK
+    : W E E K
+    ;
+
+WHEN
+    : W H E N
+    ;
+
+WHERE
+    : W H E R E
+    ;
+
+WINDOW
+    : W I N D O W
+    ;
+
+WITH
+    : W I T H
+    ;
+
+YEAR
+    : Y E A R | Y Y Y Y
+    ;
+
+ESCAPE
+    : E S C A P E
+    ;
+
+JSON_FALSE
+    : 'false'
+    ;
+
+JSON_TRUE
+    : 'true'
+    ;
+
+UINT8
+    : U I N T EIGHT_
+    ;
+
+UINT16
+    : U I N T ONE_ SIX_
+    ;
+
+UINT32
+    : U I N T THREE_ TWO_
+    ;
+
+UINT64
+    : U I N T SIX_ FOUR_
+    ;
+
+INT8
+    : I N T EIGHT_
+    ;
+
+INT16
+    : I N T ONE_ SIX_
+    ;
+
+INT32
+    : I N T THREE_ TWO_
+    ;
+
+INT64
+    : I N T SIX_ FOUR_
+    ;
+
+FLOAT32
+    : F L O A T THREE_ TWO_
+    ;
+
+FLOAT64
+    : F L O A T SIX_ FOUR_
+    ;
+
+DECIMAL
+    : D E C I M A L
+    ;
+
+STRING
+    : S T R I N G
+    ;
+
+FIXED_STRING
+    : F I X E D S T R I N G
+    ;
+
+DATETIME
+    : D A T E T I M E
+    ;
+
+DATETIME64
+    : D A T E T I M E SIX_ FOUR_
+    ;
+
+ENUM8
+    : E N U M EIGHT_
+    ;
+
+ENUM16
+    : E N U M ONE_ SIX_
+    ;
+
+TUPLE
+    : T U P L E
+    ;
+
+IPV4
+    : I P V FOUR_
+    ;
+
+IPV6
+    : I P V SIX_
+    ;
+
+NESTED
+    : N E S T E D
+    ;
+
+NULLABLE
+    : N U L L A B L E
+    ;
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerComments.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Comments.g4
similarity index 95%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerComments.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Comments.g4
index cb3e4182fe8..87fadf83256 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerComments.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Comments.g4
@@ -15,11 +15,10 @@
  * limitations under the License.
  */
 
-lexer grammar LexerComments;
+lexer grammar Comments;
 
-import LexerSymbol;
+import Symbol;
 
 MULTI_LINE_COMMENT: '/*' .*? '*/' -> skip;
 SINGLE_LINE_COMMENT: '--' ~('\n'|'\r')* ('\n' | '\r' | EOF) -> skip;
 WHITESPACE: [ \u000B\u000C\t\r\n] -> skip;  // '\n' can be part of multiline single query
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/DMLStatement.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/DMLStatement.g4
index 292b8cfac40..4551d6ae1c2 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/DMLStatement.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/DMLStatement.g4
@@ -57,12 +57,9 @@ blobValue
     ;
 
 delete
-    :
-    | ALTER TABLE tableName cluster? DELETE whereClause?
+    : ALTER TABLE tableName cluster? DELETE whereClause?
     ;
 
-
-
 singleTableClause
     : FROM tableName (AS? alias)?
     ;
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerKeyword.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Keyword.g4
similarity index 98%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerKeyword.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Keyword.g4
index a685c39406c..9cd7b9035cf 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerKeyword.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Keyword.g4
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-lexer grammar LexerKeyword;
+lexer grammar Keyword;
 
-import LexerAlphabet;
+import Alphabet;
 
 WS
     : [ \t\r\n] + ->skip
@@ -543,5 +543,3 @@ VARCHAR
 FLOAT
     : F L O A T
     ;
-
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerClickHouseKeyword.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerClickHouseKeyword.g4
deleted file mode 100644
index 14db53d93c6..00000000000
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerClickHouseKeyword.g4
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-lexer grammar LexerClickHouseKeyword;
-
-import LexerAlphabet, LexerKeyword,LexerNumber;
-
-
-ADD: A D D;
-AFTER: A F T E R;
-ALIAS: A L I A S;
-ALL: A L L;
-ALTER: A L T E R;
-AND: A N D;
-ANTI: A N T I;
-ANY: A N Y;
-ARRAY: A R R A Y;
-AS: A S;
-ASCENDING: A S C | A S C E N D I N G;
-ASOF: A S O F;
-AST: A S T;
-ASYNC: A S Y N C;
-ATTACH: A T T A C H;
-BETWEEN: B E T W E E N;
-BOTH: B O T H;
-BY: B Y;
-CASE: C A S E;
-CAST: C A S T;
-CHECK: C H E C K;
-CLEAR: C L E A R;
-CLUSTER: C L U S T E R;
-CODEC: C O D E C;
-COLLATE: C O L L A T E;
-COLUMN: C O L U M N;
-COMMENT: C O M M E N T;
-CONSTRAINT: C O N S T R A I N T;
-CREATE: C R E A T E;
-CROSS: C R O S S;
-CUBE: C U B E;
-CURRENT: C U R R E N T;
-DATABASE: D A T A B A S E;
-DATABASES: D A T A B A S E S;
-DATE: D A T E;
-DAY: D A Y;
-DEDUPLICATE: D E D U P L I C A T E;
-DEFAULT: D E F A U L T;
-DELAY: D E L A Y;
-DELETE: D E L E T E;
-DESC: D E S C;
-DESCENDING: D E S C E N D I N G;
-DESCRIBE: D E S C R I B E;
-DETACH: D E T A C H;
-DICTIONARIES: D I C T I O N A R I E S;
-DICTIONARY: D I C T I O N A R Y;
-DISK: D I S K;
-DISTINCT: D I S T I N C T;
-DISTRIBUTED: D I S T R I B U T E D;
-DROP: D R O P;
-ELSE: E L S E;
-END: E N D;
-ENGINE: E N G I N E;
-EVENTS: E V E N T S;
-EXISTS: E X I S T S;
-EXPLAIN: E X P L A I N;
-EXPRESSION: E X P R E S S I O N;
-EXTRACT: E X T R A C T;
-FETCHES: F E T C H E S;
-FINAL: F I N A L;
-FIRST: F I R S T;
-FLUSH: F L U S H;
-FOLLOWING: F O L L O W I N G;
-FOR: F O R;
-FORMAT: F O R M A T;
-FREEZE: F R E E Z E;
-FROM: F R O M;
-FULL: F U L L;
-FUNCTION: F U N C T I O N;
-GLOBAL: G L O B A L;
-GRANULARITY: G R A N U L A R I T Y;
-GROUP: G R O U P;
-HAVING: H A V I N G;
-HIERARCHICAL: H I E R A R C H I C A L;
-HOUR: H O U R;
-ID: I D;
-IF: I F;
-ILIKE: I L I K E;
-IN: I N;
-INDEX: I N D E X;
-INF: I N F | I N F I N I T Y;
-INJECTIVE: I N J E C T I V E;
-INNER: I N N E R;
-INSERT: I N S E R T;
-INTERVAL: I N T E R V A L;
-INTO: I N T O;
-IS: I S;
-IS_OBJECT_ID: I S UL_ O B J E C T UL_ I D;
-JOIN: J O I N;
-KEY: K E Y;
-KILL: K I L L;
-LAST: L A S T;
-LAYOUT: L A Y O U T;
-LEADING: L E A D I N G;
-LEFT: L E F T;
-LIFETIME: L I F E T I M E;
-LIKE: L I K E;
-LIMIT: L I M I T;
-LIVE: L I V E;
-LOCAL: L O C A L;
-LOGS: L O G S;
-MATERIALIZE: M A T E R I A L I Z E;
-MATERIALIZED: M A T E R I A L I Z E D;
-MAX: M A X;
-MERGES: M E R G E S;
-MIN: M I N;
-MINUTE: M I N U T E;
-MODIFY: M O D I F Y;
-MONTH: M O N T H;
-MOVE: M O V E;
-MUTATION: M U T A T I O N;
-NAN_SQL: N A N; // conflicts with macro NAN
-NO: N O;
-NOT: N O T;
-NULL_SQL: N U L L; // conflicts with macro NULL
-NULLS: N U L L S;
-OFFSET: O F F S E T;
-ON: O N;
-OPTIMIZE: O P T I M I Z E;
-OR: O R;
-ORDER: O R D E R;
-OUTER: O U T E R;
-OUTFILE: O U T F I L E;
-OVER: O V E R;
-PARTITION: P A R T I T I O N;
-POPULATE: P O P U L A T E;
-PRECEDING: P R E C E D I N G;
-PREWHERE: P R E W H E R E;
-PRIMARY: P R I M A R Y;
-PROJECTION: P R O J E C T I O N;
-QUARTER: Q U A R T E R;
-RANGE: R A N G E;
-RELOAD: R E L O A D;
-REMOVE: R E M O V E;
-RENAME: R E N A M E;
-REPLACE: R E P L A C E;
-REPLICA: R E P L I C A;
-REPLICATED: R E P L I C A T E D;
-RIGHT: R I G H T;
-ROLLUP: R O L L U P;
-ROW: R O W;
-ROWS: R O W S;
-SAMPLE: S A M P L E;
-SECOND: S E C O N D;
-SELECT: S E L E C T;
-SEMI: S E M I;
-SENDS: S E N D S;
-SET: S E T;
-SETTINGS: S E T T I N G S;
-SHOW: S H O W;
-SOURCE: S O U R C E;
-START: S T A R T;
-STOP: S T O P;
-SUBSTRING: S U B S T R I N G;
-SYNC: S Y N C;
-SYNTAX: S Y N T A X;
-SYSTEM: S Y S T E M;
-TABLE: T A B L E;
-TABLES: T A B L E S;
-TEMPORARY: T E M P O R A R Y;
-TEST: T E S T;
-THEN: T H E N;
-TIES: T I E S;
-TIMEOUT: T I M E O U T;
-TIMESTAMP: T I M E S T A M P;
-TO: T O;
-TOP: T O P;
-TOTALS: T O T A L S;
-TRAILING: T R A I L I N G;
-TRIM: T R I M;
-TRUNCATE: T R U N C A T E;
-TTL: T T L;
-TYPE: T Y P E;
-UNBOUNDED: U N B O U N D E D;
-UNION: U N I O N;
-UPDATE: U P D A T E;
-USE: U S E;
-USING: U S I N G;
-UUID: U U I D;
-VALUES: V A L U E S;
-VIEW: V I E W;
-VOLUME: V O L U M E;
-WATCH: W A T C H;
-WEEK: W E E K;
-WHEN: W H E N;
-WHERE: W H E R E;
-WINDOW: W I N D O W;
-WITH: W I T H;
-YEAR: Y E A R | Y Y Y Y;
-ESCAPE: E S C A P E;
-JSON_FALSE: 'false';
-JSON_TRUE: 'true';
-
-//dataType
-UINT8: U I N T EIGHT_;
-UINT16: U I N T ONE_ SIX_;
-UINT32: U I N T THREE_ TWO_;
-UINT64: U I N T SIX_ FOUR_;
-INT8: I N T EIGHT_;
-INT16: I N T ONE_ SIX_;
-INT32: I N T THREE_ TWO_;
-INT64: I N T SIX_ FOUR_;
-FLOAT32: F L O A T THREE_ TWO_;
-FLOAT64: F L O A T SIX_ FOUR_;
-DECIMAL: D E C I M A L;
-STRING: S T R I N G;
-FIXED_STRING: F I X E D S T R I N G;
-DATETIME: D A T E T I M E;
-DATETIME64: D A T E T I M E SIX_ FOUR_;
-ENUM8: E N U M EIGHT_;
-ENUM16: E N U M ONE_ SIX_;
-TUPLE: T U P L E;
-IPV4: I P V FOUR_;
-IPV6: I P V SIX_;
-NESTED: N E S T E D;
-NULLABLE: N U L L A B L E;
-
-
-
-
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerLiterals.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Literals.g4
similarity index 95%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerLiterals.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Literals.g4
index d3f2d5bb2db..59a4f12a32c 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerLiterals.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Literals.g4
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-lexer grammar LexerLiterals;
+lexer grammar Literals;
 
-import LexerAlphabet, LexerSymbol;
+import Alphabet, Symbol;
 
 IDENTIFIER_
     : [A-Za-z_$0-9\u0080-\uFFFF]*?[A-Za-z_$\u0080-\uFFFF]+?[A-Za-z_$0-9\u0080-\uFFFF]*
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerNumber.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Number.g4
similarity index 97%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerNumber.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Number.g4
index 90a25e259bb..5d2af80bb8d 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerNumber.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Number.g4
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-lexer grammar LexerNumber;
+lexer grammar Number;
 
 fragment ZERO_:  [0];
 fragment ONE_:   [1];
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerSymbol.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Symbol.g4
similarity index 98%
rename from parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerSymbol.g4
rename to parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Symbol.g4
index cbbc8b8f3cd..a8d1f6955e6 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/LexerSymbol.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/imports/clickhouse/Symbol.g4
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-lexer grammar LexerSymbol;
+lexer grammar Symbol;
 
 AND_:                '&&';
 CONCAT_:             '||';
@@ -56,4 +56,3 @@ SQ_ :                '\'';
 QUESTION_:           '?';
 AT_:                 '@';
 SEMI_:               ';';
-
diff --git a/parser/sql/dialect/clickhouse/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/ClickHouseStatement.g4 b/parser/sql/dialect/clickhouse/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/ClickHouseStatement.g4
index c4f298a100c..12be523f458 100644
--- a/parser/sql/dialect/clickhouse/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/ClickHouseStatement.g4
+++ b/parser/sql/dialect/clickhouse/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/ClickHouseStatement.g4
@@ -24,18 +24,5 @@ execute
     | insert
     | update
     | delete
-//    | createDatabase
-//    | dropDatabase
-//    | createTable
-//    | alterTable
-//    | dropTable
-//    | createView
-//    | dropView
-//    | setTransaction
-//    | commit
-//    | rollback
-//    | grant
-//    | revoke
     ) SEMI_? EOF
     ;
-
diff --git a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/parser/ClickHouseLexer.java b/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/parser/ClickHouseLexer.java
index 6083060ce38..870bd1dda76 100644
--- a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/parser/ClickHouseLexer.java
+++ b/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/parser/ClickHouseLexer.java
@@ -29,5 +29,4 @@ public final class ClickHouseLexer extends ClickHouseStatementLexer implements S
     public ClickHouseLexer(final CharStream input) {
         super(input);
     }
-    
 }
diff --git a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/format/ClickHouseFormatVisitor.java b/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/format/ClickHouseFormatVisitor.java
deleted file mode 100644
index 341d1022e1c..00000000000
--- a/parser/sql/dialect/clickhouse/src/main/java/org/apache/shardingsphere/sql/parser/clickhouse/visitor/format/ClickHouseFormatVisitor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sql.parser.clickhouse.visitor.format;
-
-import org.apache.shardingsphere.sql.parser.api.visitor.format.SQLFormatVisitor;
-import org.apache.shardingsphere.sql.parser.autogen.ClickHouseStatementBaseVisitor;
-
-/**
- * ClickHouse Format SQL Visitor.
- */
-public final class ClickHouseFormatVisitor extends ClickHouseStatementBaseVisitor<String> implements SQLFormatVisitor {
-    
-    @Override
-    public String getDatabaseType() {
-        return "ClickHouse";
-    }
-    
-}
diff --git a/parser/sql/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.sql.parser.api.visitor.format.SQLFormatVisitor b/parser/sql/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.sql.parser.api.visitor.format.SQLFormatVisitor
deleted file mode 100644
index 03a8ee23f9a..00000000000
--- a/parser/sql/dialect/clickhouse/src/main/resources/META-INF/services/org.apache.shardingsphere.sql.parser.api.visitor.format.SQLFormatVisitor
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseAlterTableStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseAlterTableStatement.java
index 312b85dddf3..4745c512a62 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseAlterTableStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseAlterTableStatement.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableS
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.ClickHouseStatement;
 
 /**
- * ClickHouse AlterTable Statement.
+ * ClickHouse alter table statement.
  */
 public final class ClickHouseAlterTableStatement extends AlterTableStatement implements ClickHouseStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseCreateTableStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseCreateTableStatement.java
index 04b737026f4..4d593f6680f 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseCreateTableStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseCreateTableStatement.java
@@ -25,7 +25,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTable
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.ClickHouseStatement;
 
 /**
- * ClickHouse Create Table Statement.
+ * ClickHouse create table statement.
  */
 @RequiredArgsConstructor
 @Getter
@@ -37,5 +37,4 @@ public final class ClickHouseCreateTableStatement extends CreateTableStatement i
     private SimpleTableSegment clusterClause;
     
     private SimpleTableSegment tableSchemaClause;
-    
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseDropTableStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseDropTableStatement.java
index fab789ed66c..1831a03c75d 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseDropTableStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/ddl/ClickHouseDropTableStatement.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableSt
 import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.ClickHouseStatement;
 
 /**
- * ClickHouse Drop Table Statement.
+ * ClickHouse drop table statement.
  */
 public final class ClickHouseDropTableStatement extends DropTableStatement implements ClickHouseStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseDeleteStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseDeleteStatement.java
index 8bb4e6a3408..d6b460fe7f2 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseDeleteStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseDeleteStatement.java
@@ -23,6 +23,5 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.Cli
 /**
  * ClickHouse delete statement.
  */
-public class ClickHouseDeleteStatement extends DeleteStatement implements ClickHouseStatement {
-    
+public final class ClickHouseDeleteStatement extends DeleteStatement implements ClickHouseStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseInsertStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseInsertStatement.java
index a9f62d66f1b..193c6f81eef 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseInsertStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseInsertStatement.java
@@ -23,5 +23,5 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.Cli
 /**
  * ClickHouse insert statement.
  */
-public class ClickHouseInsertStatement extends InsertStatement implements ClickHouseStatement {
+public final class ClickHouseInsertStatement extends InsertStatement implements ClickHouseStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseSelectStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseSelectStatement.java
index 924b9d7469d..a54758c5dd0 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseSelectStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseSelectStatement.java
@@ -23,5 +23,5 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.Cli
 /**
  * ClickHouse select statement.
  */
-public class ClickHouseSelectStatement extends SelectStatement implements ClickHouseStatement {
+public final class ClickHouseSelectStatement extends SelectStatement implements ClickHouseStatement {
 }
diff --git a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseUpdateStatement.java b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseUpdateStatement.java
index 5281b2b9717..87879f89f51 100644
--- a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseUpdateStatement.java
+++ b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/clickhouse/dml/ClickHouseUpdateStatement.java
@@ -23,5 +23,5 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.clickhouse.Cli
 /**
  * ClickHouse update statement.
  */
-public class ClickHouseUpdateStatement extends UpdateStatement implements ClickHouseStatement {
+public final class ClickHouseUpdateStatement extends UpdateStatement implements ClickHouseStatement {
 }