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 89fba4b add doc for sql format (#8575)
89fba4b is described below
commit 89fba4b93b6c7731f238ec331334fb156785e37e
Author: JingShang Lu <[email protected]>
AuthorDate: Tue Dec 15 11:14:48 2020 +0800
add doc for sql format (#8575)
* add doc for sql format
* fix
---
.../features/sharding/principle/parse.cn.md | 27 ++++++++++++++++++++++
.../features/sharding/principle/parse.en.md | 27 ++++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/docs/document/content/features/sharding/principle/parse.cn.md
b/docs/document/content/features/sharding/principle/parse.cn.md
index 63bd9cb..22aff31 100644
--- a/docs/document/content/features/sharding/principle/parse.cn.md
+++ b/docs/document/content/features/sharding/principle/parse.cn.md
@@ -103,3 +103,30 @@ SQLVisitorEngine sqlVisitorEngine = new
SQLVisitorEngine(databaseType, "STATEMEN
SQLStatement sqlStatement = sqlVisitorEngine.visit(tree);
```
+
+- SQL格式化
+
+```
+/**
+ * databaseType type:String 可能值 MySQL
+ * useCache type:boolean 是否使用缓存
+ * @return String
+ */
+ParseTree tree = new SQLParserEngine(databaseType).parse(sql, useCache);
+SQLVisitorEngine sqlVisitorEngine = new SQLVisitorEngine(databaseType,
"FORMAT");
+String formatedSql = sqlVisitorEngine.visit(tree);
+```
+
+例子:
+
+| sql | formatedSql |
+|----------|-------------|
+|select a+1 as b, name n from table1 join table2 where id=1 and name='lu';
|SELECT a + 1 AS b, name n<br>FROM table1 JOIN
table2<br>WHERE<br>    id =
1<br>    and name = 'lu';|
+|select id, name, age, sex, ss, yy from table1 where id=1;|SELECT id , name ,
age , <br>    sex , ss , yy <br>FROM table1<br>WHERE
<br>    id = 1;|
+|select id, name, age, count(*) as n, (select id, name, age, sex from table2
where id=2) as sid, yyyy from table1 where id=1;|SELECT id , name , age ,
<br>    COUNT(*) AS n,
<br>    (<br>        SELECT
id , name , age ,
<br>            sex
<br>        FROM
table2<br>       &em [...]
+|select id, name, age, sex, ss, yy from table1 where id=1 and name=1 and a=1
and b=2 and c=4 and d=3;|SELECT id , name , age ,
<br>    sex , ss , yy <br>FROM table1<br>WHERE
<br>    id = 1<br>    and name =
1<br>    and a = 1<br>    and b =
2<br>    and c = 4<br>    and d = 3;|
+|ALTER TABLE t_order ADD column4 DATE, ADD column5 DATETIME, engine ss
max_rows 10,min_rows 2, <br>ADD column6 TIMESTAMP, ADD column7 TIME;|ALTER
TABLE t_order<br>    ADD column4
DATE,<br>    ADD column5
DATETIME,<br>    ENGINE
ss<br>    MAX_ROWS 10,<br>    MIN_ROWS
2,<br>    ADD column6
TIMESTAMP,<br>    ADD column7 TIME|
+|CREATE TABLE IF NOT EXISTS <br>`runoob_tbl`(`runoob_id` INT UNSIGNED
AUTO_INCREMENT,`runoob_title` VARCHAR(100) NOT NULL,<br>`runoob_author`
VARCHAR(40) NOT NULL,`runoob_test` NATIONAL CHAR(40),<br>`submission_date`
DATE,PRIMARY KEY (`runoob_id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;|CREATE TABLE
IF NOT EXISTS `runoob_tbl` (<br>    `runoob_id` INT
UNSIGNED AUTO_INCREMENT,<br>    `runoob_title` VARCHAR(100)
NOT NULL,<br>    `runoo [...]
+|INSERT INTO t_order_item(order_id, user_id, status, creation_date) <br>values
(1, 1, 'insert', '2017-08-08'), (2, 2, 'insert', '2017-08-08') ON DUPLICATE KEY
UPDATE status = 'init';|INSERT INTO t_order_item (order_id , user_id , status
, creation_date)<br>VALUES<br>    (1, 1, 'insert',
'2017-08-08'),<br>    (2, 2, 'insert', '2017-08-08')<br>ON
DUPLICATE KEY UPDATE status = 'init';|
+|INSERT INTO t_order SET order_id = 1, user_id = 1, status =
convert(to_base64(aes_encrypt(1, 'key')) USING utf8)<br> ON DUPLICATE KEY
UPDATE status = VALUES(status);|INSERT INTO t_order SET order_id =
1,<br>    user_id = 1,<br>    status =
CONVERT(to_base64(aes_encrypt(1 , 'key')) USING utf8)<br>ON DUPLICATE KEY
UPDATE status = VALUES(status);|
+|INSERT INTO t_order (order_id, user_id, status) SELECT order_id, user_id,
status FROM t_order WHERE order_id = 1;|INSERT INTO t_order (order_id ,
user_id , status) <br>SELECT order_id , user_id , status <br>FROM
t_order<br>WHERE <br>    order_id = 1;|
\ No newline at end of file
diff --git a/docs/document/content/features/sharding/principle/parse.en.md
b/docs/document/content/features/sharding/principle/parse.en.md
index e4d4ed3..76e4237 100644
--- a/docs/document/content/features/sharding/principle/parse.en.md
+++ b/docs/document/content/features/sharding/principle/parse.en.md
@@ -95,3 +95,30 @@ ParseTree tree = new
SQLParserEngine(databaseType).parse(sql, useCache);
SQLVisitorEngine sqlVisitorEngine = new SQLVisitorEngine(databaseType,
"STATEMENT");
SQLStatement sqlStatement = sqlVisitorEngine.visit(tree);
```
+
+- SQL Format
+
+```
+/**
+ * databaseType type:String values MySQL
+ * useCache type:boolean whether use cache
+ * @return String
+ */
+ParseTree tree = new SQLParserEngine(databaseType).parse(sql, useCache);
+SQLVisitorEngine sqlVisitorEngine = new SQLVisitorEngine(databaseType,
"FORMAT");
+String formatedSql = sqlVisitorEngine.visit(tree);
+```
+
+example:
+
+| sql | formatedSql |
+|----------|-------------|
+|select a+1 as b, name n from table1 join table2 where id=1 and name='lu';
|SELECT a + 1 AS b, name n<br>FROM table1 JOIN
table2<br>WHERE<br>    id =
1<br>    and name = 'lu';|
+|select id, name, age, sex, ss, yy from table1 where id=1;|SELECT id , name ,
age , <br>    sex , ss , yy <br>FROM table1<br>WHERE
<br>    id = 1;|
+|select id, name, age, count(*) as n, (select id, name, age, sex from table2
where id=2) as sid, yyyy from table1 where id=1;|SELECT id , name , age ,
<br>    COUNT(*) AS n,
<br>    (<br>        SELECT
id , name , age ,
<br>            sex
<br>        FROM
table2<br>       &em [...]
+|select id, name, age, sex, ss, yy from table1 where id=1 and name=1 and a=1
and b=2 and c=4 and d=3;|SELECT id , name , age ,
<br>    sex , ss , yy <br>FROM table1<br>WHERE
<br>    id = 1<br>    and name =
1<br>    and a = 1<br>    and b =
2<br>    and c = 4<br>    and d = 3;|
+|ALTER TABLE t_order ADD column4 DATE, ADD column5 DATETIME, engine ss
max_rows 10,min_rows 2, <br>ADD column6 TIMESTAMP, ADD column7 TIME;|ALTER
TABLE t_order<br>    ADD column4
DATE,<br>    ADD column5
DATETIME,<br>    ENGINE
ss<br>    MAX_ROWS 10,<br>    MIN_ROWS
2,<br>    ADD column6
TIMESTAMP,<br>    ADD column7 TIME|
+|CREATE TABLE IF NOT EXISTS <br>`runoob_tbl`(`runoob_id` INT UNSIGNED
AUTO_INCREMENT,`runoob_title` VARCHAR(100) NOT NULL,<br>`runoob_author`
VARCHAR(40) NOT NULL,`runoob_test` NATIONAL CHAR(40),<br>`submission_date`
DATE,PRIMARY KEY (`runoob_id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;|CREATE TABLE
IF NOT EXISTS `runoob_tbl` (<br>    `runoob_id` INT
UNSIGNED AUTO_INCREMENT,<br>    `runoob_title` VARCHAR(100)
NOT NULL,<br>    `runoo [...]
+|INSERT INTO t_order_item(order_id, user_id, status, creation_date) <br>values
(1, 1, 'insert', '2017-08-08'), (2, 2, 'insert', '2017-08-08') ON DUPLICATE KEY
UPDATE status = 'init';|INSERT INTO t_order_item (order_id , user_id , status
, creation_date)<br>VALUES<br>    (1, 1, 'insert',
'2017-08-08'),<br>    (2, 2, 'insert', '2017-08-08')<br>ON
DUPLICATE KEY UPDATE status = 'init';|
+|INSERT INTO t_order SET order_id = 1, user_id = 1, status =
convert(to_base64(aes_encrypt(1, 'key')) USING utf8)<br> ON DUPLICATE KEY
UPDATE status = VALUES(status);|INSERT INTO t_order SET order_id =
1,<br>    user_id = 1,<br>    status =
CONVERT(to_base64(aes_encrypt(1 , 'key')) USING utf8)<br>ON DUPLICATE KEY
UPDATE status = VALUES(status);|
+|INSERT INTO t_order (order_id, user_id, status) SELECT order_id, user_id,
status FROM t_order WHERE order_id = 1;|INSERT INTO t_order (order_id ,
user_id , status) <br>SELECT order_id , user_id , status <br>FROM
t_order<br>WHERE <br>    order_id = 1;|