You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2022/06/11 02:23:57 UTC
[shardingsphere] branch master updated: Refactor ParseDistSQLHandler (#18296)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 750cfde85dc Refactor ParseDistSQLHandler (#18296)
750cfde85dc is described below
commit 750cfde85dc8eaf8f53b54b0039a0a9f6b2d1c53
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Jun 11 10:23:50 2022 +0800
Refactor ParseDistSQLHandler (#18296)
---
.../distsql/syntax/ral/_index.cn.md | 74 +++++++++++-----------
.../distsql/syntax/ral/_index.en.md | 62 +++++++++---------
.../syntax/rql/rule-query/db-discovery.cn.md | 10 +--
.../syntax/rql/rule-query/db-discovery.en.md | 2 +-
.../distsql/syntax/rql/rule-query/encrypt.cn.md | 4 +-
.../distsql/syntax/rql/rule-query/encrypt.en.md | 28 ++++----
.../distsql/syntax/rql/rule-query/shadow.cn.md | 26 ++++----
.../distsql/syntax/rql/rule-query/shadow.en.md | 8 +--
.../distsql/ral/advanced/ParseDistSQLHandler.java | 9 ++-
9 files changed, 113 insertions(+), 110 deletions(-)
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.cn.md
index 39f229d8ea6..e2aea4f95c8 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.cn.md
@@ -15,35 +15,35 @@ RAL (Resource & Rule Administration Language) 为 Apache ShardingSphere 的管
| SET SHARDING HINT DATABASE_VALUE = yy | 针对当前连接,设置 hint 仅对数据库分片有效,并添加分片值,yy:数据库分片值 | SET SHARDING HINT DATABASE_VALUE = 100 |
| ADD SHARDING HINT DATABASE_VALUE xx = yy | 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:数据库分片值 | ADD SHARDING HINT DATABASE_VALUE t_order= 100 |
| ADD SHARDING HINT TABLE_VALUE xx = yy | 针对当前连接,为表 xx 添加分片值 yy,xx:逻辑表名称,yy:表分片值 | ADD SHARDING HINT TABLE_VALUE t_order = 100 |
-| CLEAR HINT SETTINGS | 针对当前连接,清除 hint 所有设置 | CLEAR HINT |
+| CLEAR HINT SETTINGS | 针对当前连接,清除 hint 所有设置 | CLEAR HINT |
| CLEAR [SHARDING HINT / READWRITE_SPLITTING HINT] | 针对当前连接,清除 sharding 或 readwrite_splitting 的 hint 设置 | CLEAR READWRITE_SPLITTING HINT |
| SHOW [SHARDING / READWRITE_SPLITTING] HINT STATUS | 针对当前连接,查询 sharding 或 readwrite_splitting 的 hint 设置 | SHOW READWRITE_SPLITTING HINT STATUS |
## 弹性伸缩
-| 语句 | 说明 | 示例 |
-|:--------------------------------------------------- |:------------------------------------------------------------- |:----------------------------------------------- |
-| SHOW SCALING LIST | 查询运行列表 | SHOW SCALING LIST |
-| SHOW SCALING STATUS jobId | 查询任务状态,xx:任务 id | SHOW SCALING STATUS 1234 |
-| START SCALING jobId | 开始运行任务,xx:任务 id | START SCALING 1234 |
-| STOP SCALING jobId | 停止运行任务,xx:任务 id | STOP SCALING 12345 |
-| DROP SCALING jobId | 移除任务,xx:任务 id | DROP SCALING 1234 |
-| RESET SCALING jobId | 重置任务进度,xx:任务 id | RESET SCALING 1234 |
-| CHECK SCALING jobId | 数据一致性校验,使用 `server.yaml` 里的校验算法,xx:任务 id | CHECK SCALING 1234 |
-| SHOW SCALING CHECK ALGORITHMS | 展示可用的一致性校验算法 | SHOW SCALING CHECK ALGORITHMS |
-| CHECK SCALING {jobId} by type(name={algorithmType}) | 数据一致性校验,使用指定的校验算法 | CHECK SCALING 1234 by type(name=DEFAULT) |
-| STOP SCALING SOURCE WRITING jobId | 旧的 ShardingSphere 数据源停写,xx:任务 id | STOP SCALING SOURCE WRITING 1234 |
-| RESTORE SCALING SOURCE WRITING jobId | 旧的 ShardingSphere 数据源恢复写,xx:任务 id | RESTORE SCALING SOURCE WRITING 1234 |
-| APPLY SCALING jobId | 切换至新的 ShardingSphere 元数据,xx:任务 id | APPLY SCALING 1234 |
+| 语句 | 说明 | 示例 |
+|:--------------------------------------------------- |:----------------------------------------------------- |:--------------------------------------- |
+| SHOW SCALING LIST | 查询运行列表 | SHOW SCALING LIST |
+| SHOW SCALING STATUS jobId | 查询任务状态,xx:任务 id | SHOW SCALING STATUS 1234 |
+| START SCALING jobId | 开始运行任务,xx:任务 id | START SCALING 1234 |
+| STOP SCALING jobId | 停止运行任务,xx:任务 id | STOP SCALING 12345 |
+| DROP SCALING jobId | 移除任务,xx:任务 id | DROP SCALING 1234 |
+| RESET SCALING jobId | 重置任务进度,xx:任务 id | RESET SCALING 1234 |
+| CHECK SCALING jobId | 数据一致性校验,使用 `server.yaml` 里的校验算法,xx:任务 id | CHECK SCALING 1234 |
+| SHOW SCALING CHECK ALGORITHMS | 展示可用的一致性校验算法 | SHOW SCALING CHECK ALGORITHMS |
+| CHECK SCALING {jobId} by type(name={algorithmType}) | 数据一致性校验,使用指定的校验算法 | CHECK SCALING 1234 by type(name=DEFAULT) |
+| STOP SCALING SOURCE WRITING jobId | 旧的 ShardingSphere 数据源停写,xx:任务 id | STOP SCALING SOURCE WRITING 1234 |
+| RESTORE SCALING SOURCE WRITING jobId | 旧的 ShardingSphere 数据源恢复写,xx:任务 id | RESTORE SCALING SOURCE WRITING 1234 |
+| APPLY SCALING jobId | 切换至新的 ShardingSphere 元数据,xx:任务 id | APPLY SCALING 1234 |
## 熔断
-| 语句 | 说明 | 示例 |
-|:--------------------------------------------------------------------------------|:-------------------------------------------------- |:-------------------------------------------|
-| [ENABLE / DISABLE] READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] | 启用 / 禁用读库 | ENABLE READWRITE_SPLITTING READ resource_0 |
-| [ENABLE / DISABLE] INSTANCE instanceId | 启用 / 禁用 proxy 实例 | DISABLE INSTANCE instance_1 |
-| SHOW INSTANCE LIST | 查询 proxy 实例信息 | SHOW INSTANCE LIST |
-| SHOW READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] | 查询所有读库的状态 | SHOW READWRITE_SPLITTING READ RESOURCES |
+| 语句 | 说明 | 示例 |
+|:------------------------------------------------------------------------------- |:-------------------- |:------------------------------------------ |
+| [ENABLE / DISABLE] READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] | 启用 / 禁用读库 | ENABLE READWRITE_SPLITTING READ resource_0 |
+| [ENABLE / DISABLE] INSTANCE instanceId | 启用 / 禁用 proxy 实例 | DISABLE INSTANCE instance_1 |
+| SHOW INSTANCE LIST | 查询 proxy 实例信息 | SHOW INSTANCE LIST |
+| SHOW READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] | 查询所有读库的状态 | SHOW READWRITE_SPLITTING READ RESOURCES |
## 全局规则
@@ -57,22 +57,22 @@ RAL (Resource & Rule Administration Language) 为 Apache ShardingSphere 的管
## 其他
-| 语句 | 说明 | 示例 |
-|:--------------------------------------------------------------------------- |:----------------------------------------------------------- |:----------------------------------------------- |
-| SHOW INSTANCE MODE | 查询当前 proxy 的 mode 配置 | SHOW INSTANCE MODE |
-| COUNT DATABASE RULES [FROM database] | 查询 database 中的规则数量 | COUNT DATABASE RULES |
-| SET VARIABLE proxy_property_name = xx | proxy_property_name 为 proxy 的[属性配置](/cn/user-manual/shardingsphere-proxy/yaml-config/props/) ,需使用下划线命名 | SET VARIABLE sql_show = true |
-| SET VARIABLE transaction_type = xx | 修改当前连接的事务类型, 支持 LOCAL,XA,BASE | SET VARIABLE transaction_type = XA |
-| SET VARIABLE agent_plugins_enabled = [TRUE / FALSE] | 设置 agent 插件的启用状态,默认值 false | SET VARIABLE agent_plugins_enabled = TRUE |
-| SHOW ALL VARIABLES | 查询 proxy 所有的属性配置 | SHOW ALL VARIABLES |
-| SHOW VARIABLE variable_name | 查询 proxy 属性,需使用下划线命名 | SHOW VARIABLE sql_show |
-| PREVIEW SQL | 预览实际 SQL | PREVIEW SELECT * FROM t_order |
-| PARSE SQL | 解析 SQL 并输出抽象语法树 PARSE SELECT * FROM t_order |
-| REFRESH TABLE METADATA | 刷新所有表的元数据 | REFRESH TABLE METADATA |
-| REFRESH TABLE METADATA [tableName / tableName FROM RESOURCE resourceName] | 刷新指定表的元数据 | REFRESH TABLE METADATA t_order FROM RESOURCE ds_1 |
-| SHOW TABLE METADATA tableName [, tableName] ... | 查询表的元数据 | SHOW TABLE METADATA t_order |
-| EXPORT DATABASE CONFIG [FROM database_name] [, file="file_path"] | 查询 / 导出 database 中的资源和规则配置 | EXPORT DATABASE CONFIG FROM readwrite_splitting_db |
-| SHOW RULES USED RESOURCE resourceName [from database] | 查询 database 中使用指定资源的规则 | SHOW RULES USED RESOURCE ds_0 FROM databaseName |
+| 语句 | 说明 | 示例 |
+|:------------------------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------- |:------------------------------------------------ |
+| SHOW INSTANCE MODE | 查询当前 proxy 的 mode 配置 | SHOW INSTANCE MODE |
+| COUNT DATABASE RULES [FROM database] | 查询 database 中的规则数量 | COUNT DATABASE RULES |
+| SET VARIABLE proxy_property_name = xx | proxy_property_name 为 proxy 的[属性配置](/cn/user-manual/shardingsphere-proxy/yaml-config/props/) ,需使用下划线命名 | SET VARIABLE sql_show = true |
+| SET VARIABLE transaction_type = xx | 修改当前连接的事务类型, 支持 LOCAL,XA,BASE | SET VARIABLE transaction_type = XA |
+| SET VARIABLE agent_plugins_enabled = [TRUE / FALSE] | 设置 agent 插件的启用状态,默认值 false | SET VARIABLE agent_plugins_enabled = TRUE |
+| SHOW ALL VARIABLES | 查询 proxy 所有的属性配置 | SHOW ALL VARIABLES |
+| SHOW VARIABLE variable_name | 查询 proxy 属性,需使用下划线命名 | SHOW VARIABLE sql_show |
+| PREVIEW SQL | 预览实际 SQL | PREVIEW SELECT * FROM t_order |
+| PARSE SQL | 解析 SQL 并输出抽象语法树 | PARSE SELECT * FROM t_order |
+| REFRESH TABLE METADATA | 刷新所有表的元数据 | REFRESH TABLE METADATA |
+| REFRESH TABLE METADATA [tableName / tableName FROM RESOURCE resourceName] | 刷新指定表的元数据 | REFRESH TABLE METADATA t_order FROM RESOURCE ds_1 |
+| SHOW TABLE METADATA tableName [, tableName] ... | 查询表的元数据 | SHOW TABLE METADATA t_order |
+| EXPORT DATABASE CONFIG [FROM database_name] [, file="file_path"] | 查询 / 导出 database 中的资源和规则配置 | EXPORT DATABASE CONFIG FROM readwrite_splitting_db |
+| SHOW RULES USED RESOURCE resourceName [from database] | 查询 database 中使用指定资源的规则 | SHOW RULES USED RESOURCE ds_0 FROM databaseName |
## 注意事项
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.en.md
index ead783d6934..aefdfba0a70 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/ral/_index.en.md
@@ -10,11 +10,11 @@ RAL (Resource & Rule Administration Language) responsible for the added-on featu
| Statement | Function | Example |
|:---------------------------------------------------- |:----------------------------------------------------------------------------------------------------------- |:---------------------------------------------- |
-| SET READWRITE_SPLITTING HINT SOURCE = [auto / write] | For current connection, set readwrite splitting routing strategy (automatic or forced to write data source) | SET READWRITE_SPLITTINGHINT SOURCE = write |
+| SET READWRITE_SPLITTING HINT SOURCE = [auto / write] | For current connection, set readwrite splitting routing strategy (automatic or forced to write data source) | SET READWRITE_SPLITTINGHINT SOURCE = write |
| SET SHARDING HINT DATABASE_VALUE = yy | For current connection, set sharding value for database sharding only, yy: sharding value | SET SHARDING HINT DATABASE_VALUE = 100 |
-| ADD SHARDING HINT DATABASE_VALUE xx = yy | For current connection, add sharding value for table, xx: logic table, yy: database sharding value | ADD SHARDING HINT DATABASE_VALUE t_order = 100 |
+| ADD SHARDING HINT DATABASE_VALUE xx = yy | For current connection, add sharding value for table, xx: logic table, yy: database sharding value | ADD SHARDING HINT DATABASE_VALUE t_order = 100 |
| ADD SHARDING HINT TABLE_VALUE xx = yy | For current connection, add sharding value for table, xx: logic table, yy: table sharding value | ADD SHARDING HINT TABLE_VALUE t_order = 100 |
-| CLEAR HINT SETTINGS | For current connection, clear all hint settings | CLEAR HINT |
+| CLEAR HINT SETTINGS | For current connection, clear all hint settings | CLEAR HINT |
| CLEAR [SHARDING HINT / READWRITE_SPLITTING HINT] | For current connection, clear hint settings of sharding or readwrite splitting | CLEAR READWRITE_SPLITTING HINT |
| SHOW [SHARDING / READWRITE_SPLITTING] HINT STATUS | For current connection, query hint settings of sharding or readwrite splitting | SHOW READWRITE_SPLITTING HINT STATUS |
@@ -23,22 +23,22 @@ RAL (Resource & Rule Administration Language) responsible for the added-on featu
| Statement | Function | Example |
|:---------------------------------------------------- |:----------------------------------------------------------------- |:---------------------------------------- |
| SHOW SCALING LIST | Query running list | SHOW SCALING LIST |
-| SHOW SCALING STATUS jobId | Query scaling status, xx: jobId | SHOW SCALING STATUS 1234 |
-| START SCALING jobId | Start scaling, xx: jobId | START SCALING 1234 |
-| STOP SCALING jobId | Stop scaling, xx: jobId | STOP SCALING 1234 |
-| DROP SCALING jobId | Drop scaling, xx: jobId | DROP SCALING 1234 |
-| RESET SCALING jobId | reset progress, xx: jobId | RESET SCALING 1234 |
-| CHECK SCALING jobId | Data consistency check with algorithm in `server.yaml`, xx: jobId | CHECK SCALING 1234 |
+| SHOW SCALING STATUS jobId | Query scaling status, xx: jobId | SHOW SCALING STATUS 1234 |
+| START SCALING jobId | Start scaling, xx: jobId | START SCALING 1234 |
+| STOP SCALING jobId | Stop scaling, xx: jobId | STOP SCALING 1234 |
+| DROP SCALING jobId | Drop scaling, xx: jobId | DROP SCALING 1234 |
+| RESET SCALING jobId | reset progress, xx: jobId | RESET SCALING 1234 |
+| CHECK SCALING jobId | Data consistency check with algorithm in `server.yaml`, xx: jobId | CHECK SCALING 1234 |
| SHOW SCALING CHECK ALGORITHMS | Show available consistency check algorithms | SHOW SCALING CHECK ALGORITHMS |
| CHECK SCALING {jobId} by type(name={algorithmType}) | Data consistency check with defined algorithm | CHECK SCALING 1234 by type(name=DEFAULT) |
-| STOP SCALING SOURCE WRITING jobId | The source ShardingSphere data source is discontinued, xx: jobId | STOP SCALING SOURCE WRITING 1234 |
-| RESTORE SCALING SOURCE WRITING jobId | Restore source data source writing, xx: jobId | RESTORE SCALING SOURCE WRITING 1234 |
-| APPLY SCALING jobId | Switch to target ShardingSphere metadata, xx: jobId | APPLY SCALING 1234 |
+| STOP SCALING SOURCE WRITING jobId | The source ShardingSphere data source is discontinued, xx: jobId | STOP SCALING SOURCE WRITING 1234 |
+| RESTORE SCALING SOURCE WRITING jobId | Restore source data source writing, xx: jobId | RESTORE SCALING SOURCE WRITING 1234 |
+| APPLY SCALING jobId | Switch to target ShardingSphere metadata, xx: jobId | APPLY SCALING 1234 |
## Circuit Breaker
| Statement | Function | Example |
-|:--------------------------------------------------------------------------------|:---------------------------------- |:-------------------------------------------|
+|:------------------------------------------------------------------------------- |:---------------------------------- |:------------------------------------------ |
| [ENABLE / DISABLE] READWRITE_SPLITTING (READ)? resourceName [FROM databaseName] | Enable or disable read data source | ENABLE READWRITE_SPLITTING READ resource_0 |
| [ENABLE / DISABLE] INSTANCE instanceId | Enable or disable proxy instance | DISABLE INSTANCE instance_1 |
| SHOW INSTANCE LIST | Query proxy instance information | SHOW INSTANCE LIST |
@@ -47,31 +47,31 @@ RAL (Resource & Rule Administration Language) responsible for the added-on featu
## Global Rule
| Statement | Function | Example [...]
-|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------- [...]
+|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:------------------------------------------------------------- [...]
| SHOW AUTHORITY RULE | Query authority rule configuration | SHOW AUTHORITY RULE [...]
| SHOW TRANSACTION RULE | Query transaction rule configuration | SHOW TRANSACTION RULE [...]
| SHOW SQL_PARSER RULE | Query SQL parser rule configuration | SHOW SQL_PARSER RULE [...]
-| ALTER TRANSACTION RULE(DEFAULT=xx,TYPE(NAME=xxx, PROPERTIES("key1"="value1","key2"="value2"...))) | Alter transaction rule configuration, `DEFAULT`: default transaction type, support LOCAL, XA, BASE; `NAME`: name of transaction manager, support Atomikos, Narayana and Bitronix | ALTER TRANSACTION RULE(DEFAULT=XA,TYPE(NAME=Narayana, PROPER [...]
+| ALTER TRANSACTION RULE(DEFAULT=xx,TYPE(NAME=xxx, PROPERTIES("key1"="value1","key2"="value2"...))) | Alter transaction rule configuration, `DEFAULT`: default transaction type, support LOCAL, XA, BASE; `NAME`: name of transaction manager, support Atomikos, Narayana and Bitronix | ALTER TRANSACTION RULE(DEFAULT=XA,TYPE(NAME=Narayana, PROPERT [...]
| ALTER SQL_PARSER RULE SQL_COMMENT_PARSE_ENABLE=xx, PARSE_TREE_CACHE(INITIAL_CAPACITY=xx, MAXIMUM_SIZE=xx, CONCURRENCY_LEVEL=xx), SQL_STATEMENT_CACHE(INITIAL_CAPACITY=xxx, MAXIMUM_SIZE=xxx, CONCURRENCY_LEVEL=xxx) | Alter SQL parser rule configuration, `SQL_COMMENT_PARSE_ENABLE`: whether to parse the SQL comment, `PARSE_TREE_CACHE`: local cache configuration of syntax tree, `SQL_STATEMENT_CACHE`: local cache of SQL statement | ALTER SQL_PARSER RULE SQL_COMMENT_PARSE_ENABLE=false, PARSE_T [...]
## Other
-| Statement | Function | Example |
-|:--------------------------------------------------------------------------- |:---------------------------------------------------------------------------------- |:----------------------------------------- |
-| SHOW INSTANCE MODE | Query the mode configuration of the proxy | SHOW INSTANCE MODE |
-| COUNT DATABASE RULES [FROM database] | Query the number of rules in a database | COUNT DATABASE RULES |
-| SET VARIABLE proxy_property_name = xx | proxy_property_name is one of [properties configuration](/en/user-manual/shardingsphere-proxy/yaml-config/props/) of proxy, name is split by underscore | SET VARIABLE sql_show = true |
-| SET VARIABLE transaction_type = xx | Modify transaction_type of the current connection, supports LOCAL, XA, BASE | SET VARIABLE transaction_type = XA |
-| SET VARIABLE agent_plugins_enabled = [TRUE / FALSE] | Set whether the agent plugins are enabled, the default value is false | SET VARIABLE agent_plugins_enabled = TRUE |
-| SHOW ALL VARIABLES | Query proxy all properties configuration | SHOW ALL VARIABLES |
-| SHOW VARIABLE variable_name | Query proxy variable, name is split by underscore | SHOW VARIABLE sql_show |
-| PREVIEW SQL | Preview the actual SQLs | PREVIEW SELECT * FROM t_order |
-| PARSE SQL | Parse SQL and output abstract syntax tree | PARSE SELECT * FROM t_order |
-| REFRESH TABLE METADATA | Refresh the metadata of all tables | REFRESH TABLE METADATA |
-| REFRESH TABLE METADATA [tableName / tableName FROM RESOURCE resourceName] | Refresh the metadata of a table | REFRESH TABLE METADATA t_order FROM resource ds_1 |
-| SHOW TABLE METADATA tableName [, tableName] ... | Query table metadata | SHOW TABLE METADATA t_order |
-| EXPORT DATABASE CONFIG [FROM database_name] [, file="file_path"] | Query / export resources and rule configuration in database | EXPORT DATABASE CONFIG FROM readwrite_splitting_db |
-| SHOW RULES USED RESOURCE resourceName [from database] | Query the rules for using the specified resource in database | SHOW RULES USED RESOURCE ds_0 FROM databaseName |
+| Statement | Function | Example |
+|:------------------------------------------------------------------------- |:------------------------------------------------------------------------------------------------------------------------------------------------------- |:-------------------------------------------------- |
+| SHOW INSTANCE MODE | Query the mode configuration of the proxy | SHOW INSTANCE MODE |
+| COUNT DATABASE RULES [FROM database] | Query the number of rules in a database | COUNT DATABASE RULES |
+| SET VARIABLE proxy_property_name = xx | proxy_property_name is one of [properties configuration](/en/user-manual/shardingsphere-proxy/yaml-config/props/) of proxy, name is split by underscore | SET VARIABLE sql_show = true |
+| SET VARIABLE transaction_type = xx | Modify transaction_type of the current connection, supports LOCAL, XA, BASE | SET VARIABLE transaction_type = XA |
+| SET VARIABLE agent_plugins_enabled = [TRUE / FALSE] | Set whether the agent plugins are enabled, the default value is false | SET VARIABLE agent_plugins_enabled = TRUE |
+| SHOW ALL VARIABLES | Query proxy all properties configuration | SHOW ALL VARIABLES |
+| SHOW VARIABLE variable_name | Query proxy variable, name is split by underscore | SHOW VARIABLE sql_show |
+| PREVIEW SQL | Preview the actual SQLs | PREVIEW SELECT * FROM t_order |
+| PARSE SQL | Parse SQL and output abstract syntax tree | PARSE SELECT * FROM t_order |
+| REFRESH TABLE METADATA | Refresh the metadata of all tables | REFRESH TABLE METADATA |
+| REFRESH TABLE METADATA [tableName / tableName FROM RESOURCE resourceName] | Refresh the metadata of a table | REFRESH TABLE METADATA t_order FROM resource ds_1 |
+| SHOW TABLE METADATA tableName [, tableName] ... | Query table metadata | SHOW TABLE METADATA t_order |
+| EXPORT DATABASE CONFIG [FROM database_name] [, file="file_path"] | Query / export resources and rule configuration in database | EXPORT DATABASE CONFIG FROM readwrite_splitting_db |
+| SHOW RULES USED RESOURCE resourceName [from database] | Query the rules for using the specified resource in database | SHOW RULES USED RESOURCE ds_0 FROM databaseName |
## Notice
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.cn.md
index bce2a811828..86be4b37763 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.cn.md
@@ -18,7 +18,7 @@ SHOW DB_DISCOVERY HEARTBEATS [FROM databaseName]
### DB Discovery Rule
| 列 | 说明 |
-| ------------------------ | --------------- |
+| ------------------------ | -------------- |
| group_name | 规则名称 |
| data_source_names | 数据源名称列表 |
| primary_data_source_name | 主数据源名称 |
@@ -28,15 +28,15 @@ SHOW DB_DISCOVERY HEARTBEATS [FROM databaseName]
### DB Discovery Type
| 列 | 说明 |
-| ------------------------ | ---------------|
+| ------------------------ | -------------- |
| name | 类型名称 |
-| type | 类型种类 |
-| props | 类型参数 |
+| type | 类型种类 |
+| props | 类型参数 |
### DB Discovery Heartbeat
| 列 | 说明 |
-| ------------------------ | ---------------|
+| ------------------------ | -------------- |
| name | 心跳名称 |
| props | 心跳参数 |
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.en.md
index d45343cad12..2448d93dc22 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/db-discovery.en.md
@@ -36,7 +36,7 @@ SHOW DB_DISCOVERY HEARTBEATS [FROM databaseName]
### DB Discovery Heartbeat
| Column | Description |
-| ------------------------ | ----------------------|
+| ------------------------ | --------------------- |
| name | Heartbeat name |
| props | Heartbeat properties |
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.cn.md
index 3e9ac1a386b..b5f4b2c5ffd 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.cn.md
@@ -15,14 +15,14 @@ SHOW ENCRYPT TABLE RULE tableName [from databaseName]
## 返回值说明
| 列 | 说明 |
-| --------------- | ---------- |
+| ------------------------- | ------------------ |
| table | 逻辑表名 |
| logic_column | 逻辑列名 |
| logic_data_type | 逻辑列数据类型 |
| cipher_column | 密文列名 |
| cipher_data_type | 密文列数据类型 |
| plain_column | 明文列名 |
-| plain_data_type | 明文列数据类型 |
+| plain_data_type | 明文列数据类型 |
| assisted_query_column | 辅助查询列名 |
| assisted_query_data_type | 辅助查询列数据类型 |
| encryptor_type | 加密算法类型 |
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.en.md
index f041c23a5f7..d16dc460e5c 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/encrypt.en.md
@@ -14,20 +14,20 @@ SHOW ENCRYPT TABLE RULE tableName [from databaseName]
## Return Value Description
-| Column | Description |
-| --------------- | ------------------------------- |
-| table | Logical table name |
-| logic_column | Logical column name |
-| logic_data_type | Logical column data type |
-| cipher_column | Ciphertext column name |
-| cipher_data_type | Ciphertext column data type |
-| plain_column | Plaintext column name |
-| plain_data_type | Plaintext column data type |
-| assisted_query_column | Assisted query column name |
-| assisted_query_data_type | Assisted query column data type |
-| encryptor_type | Encryption algorithm type |
-| encryptor_props | Encryption algorithm parameter |
-| query_with_cipher_column | Whether to use encrypted column for query |
+| Column | Description |
+| ------------------------- | ---------------------------------------- |
+| table | Logical table name |
+| logic_column | Logical column name |
+| logic_data_type | Logical column data type |
+| cipher_column | Ciphertext column name |
+| cipher_data_type | Ciphertext column data type |
+| plain_column | Plaintext column name |
+| plain_data_type | Plaintext column data type |
+| assisted_query_column | Assisted query column name |
+| assisted_query_data_type | Assisted query column data type |
+| encryptor_type | Encryption algorithm type |
+| encryptor_props | Encryption algorithm parameter |
+| query_with_cipher_column | Whether to use encrypted column for query |
## Example
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.cn.md
index 0c519b0a11a..f36c7afa213 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.cn.md
@@ -32,25 +32,25 @@ shadowRule:
### Shadow Table Rule
-| 列 | 说明 |
-| ----------------------| ---------------|
-| shadow_table | 影子表 |
-| shadow_algorithm_name | 影子算法名称 |
+| 列 | 说明 |
+| --------------------- | ---------- |
+| shadow_table | 影子表 |
+| shadow_algorithm_name | 影子算法名称 |
### Shadow Algorithms
-| 列 | 说明 |
-| ------------------- | ------------ |
-| shadow_algorithm_name | 影子算法名称 |
-| type | 算法类型 |
-| props | 算法参数 |
-| is_default | 是否默认 |
+| 列 | 说明 |
+| ------------------- | ---------- |
+| shadow_algorithm_name | 影子算法名称 |
+| type | 算法类型 |
+| props | 算法参数 |
+| is_default | 是否默认 |
### Shadow Rule status
-| 列 | 说明 |
-| ------------------- | ------------ |
-| status | 是否启用 |
+| 列 | 说明 |
+| ------------------- | ------- |
+| status | 是否启用 |
## 示例
diff --git a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.en.md b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.en.md
index 90a63c4bc52..f73d5325908 100644
--- a/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.en.md
+++ b/docs/document/content/user-manual/shardingsphere-proxy/distsql/syntax/rql/rule-query/shadow.en.md
@@ -24,7 +24,7 @@ shadowRule:
### Shadow Rule
| Column | Description |
-| ------------ | ----------- |
+| ------------ | --------------- |
| rule_name | Rule name |
| source_name | Source database |
| shadow_name | Shadow database |
@@ -48,9 +48,9 @@ shadowRule:
### Shadow Rule status
-| Column | Description |
-| ------------------- | ------------ |
-| status | Enable |
+| Column | Description |
+| --------------------- | ----------- |
+| status | Enable |
## Example
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLHandler.java
index 23c390d197b..325c384b177 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLHandler.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/ParseDistSQLHandler.java
@@ -51,15 +51,18 @@ public final class ParseDistSQLHandler extends QueryableRALBackendHandler<ParseS
@Override
protected Collection<List<Object>> getRows(final ContextManager contextManager) {
+ SQLStatement parsedSqlStatement = parseSQL(contextManager);
+ return Collections.singleton(Arrays.asList(parsedSqlStatement.getClass().getSimpleName(), new Gson().toJson(parsedSqlStatement)));
+ }
+
+ private SQLStatement parseSQL(final ContextManager contextManager) {
Optional<SQLParserRule> sqlParserRule = contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().findSingleRule(SQLParserRule.class);
Preconditions.checkState(sqlParserRule.isPresent());
- SQLStatement parsedSqlStatement;
try {
- parsedSqlStatement = sqlParserRule.get().getSQLParserEngine(getStorageType().getType()).parse(getSqlStatement().getSql(), false);
+ return sqlParserRule.get().getSQLParserEngine(getStorageType().getType()).parse(getSqlStatement().getSql(), false);
} catch (final SQLParsingException ex) {
throw new SQLParsingException("You have a syntax error in your parsed statement");
}
- return Collections.singleton(Arrays.asList(parsedSqlStatement.getClass().getSimpleName(), new Gson().toJson(parsedSqlStatement)));
}
private DatabaseType getStorageType() {