This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new ff6e0d3943 [Improvement](meta) support return no partition info for
show_create_table (#19030)
ff6e0d3943 is described below
commit ff6e0d3943293d84099fc6853c1e9d4be3e1c899
Author: Yulei-Yang <[email protected]>
AuthorDate: Sat May 6 14:45:08 2023 +0800
[Improvement](meta) support return no partition info for show_create_table
(#19030)
Some tables have a mount of partitions, when use show create table stmt on
them,
you will get so many lines of result that a whole screen cannot show them
all, even if you scroll up to the top.
show create table table2;
| table2 | CREATE TABLE `table2` (
`k1` int(11) NULL COMMENT 'test column k1',
`k2` int(11) NULL COMMENT 'test column k2'
) ENGINE=OLAP
DUPLICATE KEY(`k1`, `k2`)
COMMENT 'test table1'
PARTITION BY RANGE(`k1`)
(PARTITION p01 VALUES [("-2147483648"), ("10")),
PARTITION p02 VALUES [("10"), ("100")))
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false"
);
show brief create table table2;
| table2 | CREATE TABLE `table2` ( `k1` int(11) NULL COMMENT 'test column
k1',
`k2` int(11) NULL COMMENT 'test column k2'
) ENGINE=OLAP
DUPLICATE KEY(`k1`, `k2`)
COMMENT 'test table1'
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false"
); |
---
.../sql-reference/Show-Statements/SHOW-CREATE-TABLE.md | 12 +++++++++---
.../sql-reference/Show-Statements/SHOW-CREATE-TABLE.md | 12 +++++++++---
fe/fe-core/src/main/cup/sql_parser.cup | 9 ++++++++-
.../org/apache/doris/analysis/ShowCreateTableStmt.java | 14 ++++++++++++--
.../src/main/java/org/apache/doris/catalog/Env.java | 7 ++++---
.../org/apache/doris/datasource/InternalCatalog.java | 3 ++-
.../src/main/java/org/apache/doris/qe/ShowExecutor.java | 3 ++-
fe/fe-core/src/main/jflex/sql_scanner.flex | 1 +
.../apache/doris/analysis/ShowCreateTableStmtTest.java | 16 +++++++++++++++-
9 files changed, 62 insertions(+), 15 deletions(-)
diff --git
a/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
b/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
index 29e24ad888..86aad62cb1 100644
--- a/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
+++ b/docs/en/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
@@ -37,13 +37,19 @@ This statement is used to display the creation statement of
the data table.
grammar:
```sql
-SHOW CREATE TABLE [DBNAME.]TABLE_NAME
+SHOW [BRIEF] CREATE TABLE [DBNAME.]TABLE_NAME
````
illustrate:
-1. `DBNAMNE` : database name
-2. `TABLE_NAME` : table name
+<version since="dev">
+
+1. `BRIEF` : will not show partitions info
+
+</version>
+
+2. `DBNAMNE` : database name
+3. `TABLE_NAME` : table name
### Example
diff --git
a/docs/zh-CN/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
b/docs/zh-CN/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
index 0f69fe4215..77c5eb514e 100644
---
a/docs/zh-CN/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
+++
b/docs/zh-CN/docs/sql-manual/sql-reference/Show-Statements/SHOW-CREATE-TABLE.md
@@ -37,13 +37,19 @@ SHOW CREATE TABLE
语法:
```sql
-SHOW CREATE TABLE [DBNAME.]TABLE_NAME
+SHOW [BRIEF] CREATE TABLE [DBNAME.]TABLE_NAME
```
说明:
-1. `DBNAMNE` : 数据库名称
-2. `TABLE_NAME` : 表名
+<version since="dev">
+
+1. `BRIEF` : 返回结果中不展示分区信息
+
+</version>
+
+2. `DBNAMNE` : 数据库名称
+3. `TABLE_NAME` : 表名
### Example
diff --git a/fe/fe-core/src/main/cup/sql_parser.cup
b/fe/fe-core/src/main/cup/sql_parser.cup
index 5ad3937ad7..103815ace7 100644
--- a/fe/fe-core/src/main/cup/sql_parser.cup
+++ b/fe/fe-core/src/main/cup/sql_parser.cup
@@ -271,6 +271,7 @@ terminal String
KW_NGRAM_BF,
KW_BLOB,
KW_BOOLEAN,
+ KW_BRIEF,
KW_BROKER,
KW_BUCKETS,
KW_BUILD,
@@ -3716,10 +3717,14 @@ show_param ::=
{:
RESULT = new ShowCreateTableStmt(table);
:}
- | KW_CREATE KW_VIEW table_name:table
+ | KW_BRIEF KW_CREATE KW_TABLE table_name:table
{:
RESULT = new ShowCreateTableStmt(table, true);
:}
+ | KW_CREATE KW_VIEW table_name:table
+ {:
+ RESULT = new ShowCreateTableStmt(table, true, false);
+ :}
/* Create database */
| KW_CREATE KW_DATABASE ident:db
{:
@@ -7103,6 +7108,8 @@ keyword ::=
{: RESULT = id; :}
| KW_BOOLEAN:id
{: RESULT = id; :}
+ | KW_BRIEF:id
+ {: RESULT = id; :}
| KW_BROKER:id
{: RESULT = id; :}
| KW_S3:id
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateTableStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateTableStmt.java
index 4b8ed8f5d8..9527a061d3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateTableStmt.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowCreateTableStmt.java
@@ -51,14 +51,20 @@ public class ShowCreateTableStmt extends ShowStmt {
private TableName tbl;
private boolean isView;
+ private boolean needBriefDdl;
public ShowCreateTableStmt(TableName tbl) {
- this(tbl, false);
+ this(tbl, false, false);
}
- public ShowCreateTableStmt(TableName tbl, boolean isView) {
+ public ShowCreateTableStmt(TableName tbl, boolean needBriefDdl) {
+ this(tbl, false, needBriefDdl);
+ }
+
+ public ShowCreateTableStmt(TableName tbl, boolean isView, boolean
needBriefDdl) {
this.tbl = tbl;
this.isView = isView;
+ this.needBriefDdl = needBriefDdl;
}
@@ -78,6 +84,10 @@ public class ShowCreateTableStmt extends ShowStmt {
return isView;
}
+ public boolean isNeedBriefDdl() {
+ return needBriefDdl;
+ }
+
public static ShowResultSetMetaData getViewMetaData() {
return VIEW_META_DATA;
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index dad70edd20..79915a0d6c 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -2766,7 +2766,7 @@ public class Env {
public static void getDdlStmt(TableIf table, List<String> createTableStmt,
List<String> addPartitionStmt,
List<String> createRollupStmt, boolean separatePartition, boolean
hidePassword, long specificVersion) {
getDdlStmt(null, null, table, createTableStmt, addPartitionStmt,
createRollupStmt, separatePartition,
- hidePassword, false, specificVersion);
+ hidePassword, false, specificVersion, false);
}
/**
@@ -2776,7 +2776,7 @@ public class Env {
*/
public static void getDdlStmt(DdlStmt ddlStmt, String dbName, TableIf
table, List<String> createTableStmt,
List<String> addPartitionStmt, List<String> createRollupStmt,
boolean separatePartition,
- boolean hidePassword, boolean getDdlForLike, long specificVersion)
{
+ boolean hidePassword, boolean getDdlForLike, long specificVersion,
boolean getBriefDdl) {
StringBuilder sb = new StringBuilder();
// 1. create table
@@ -2888,7 +2888,8 @@ public class Env {
if (separatePartition) {
partitionId = Lists.newArrayList();
}
- if (partitionInfo.getType() == PartitionType.RANGE ||
partitionInfo.getType() == PartitionType.LIST) {
+ if (!getBriefDdl && (partitionInfo.getType() == PartitionType.RANGE
+ || partitionInfo.getType() == PartitionType.LIST)) {
sb.append("\n").append(partitionInfo.toSql(olapTable,
partitionId));
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index bed44e7e25..1947d17a66 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -1196,7 +1196,8 @@ public class InternalCatalog implements
CatalogIf<Database> {
throw new DdlException("Table[" + table.getName() + "] is
external, not support rollup copy");
}
- Env.getDdlStmt(stmt, stmt.getDbName(), table, createTableStmt,
null, null, false, false, true, -1L);
+ Env.getDdlStmt(stmt, stmt.getDbName(), table, createTableStmt,
null, null, false, false, true, -1L,
+ false);
if (createTableStmt.isEmpty()) {
ErrorReport.reportDdlException(ErrorCode.ERROR_CREATE_TABLE_LIKE_EMPTY,
"CREATE");
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 359092f16c..690eab65c3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -990,7 +990,8 @@ public class ShowExecutor {
return;
}
List<String> createTableStmt = Lists.newArrayList();
- Env.getDdlStmt(table, createTableStmt, null, null, false, true /*
hide password */, -1L);
+ Env.getDdlStmt(null, null, table, createTableStmt, null, null,
false,
+ true /* hide password */, false, -1L,
showStmt.isNeedBriefDdl());
if (createTableStmt.isEmpty()) {
resultSet = new ShowResultSet(showStmt.getMetaData(), rows);
return;
diff --git a/fe/fe-core/src/main/jflex/sql_scanner.flex
b/fe/fe-core/src/main/jflex/sql_scanner.flex
index e00ee2eae7..69dfe64dec 100644
--- a/fe/fe-core/src/main/jflex/sql_scanner.flex
+++ b/fe/fe-core/src/main/jflex/sql_scanner.flex
@@ -123,6 +123,7 @@ import org.apache.doris.qe.SqlModeHelper;
keywordMap.put("ngram_bf", new Integer(SqlParserSymbols.KW_NGRAM_BF));
keywordMap.put("blob", new Integer(SqlParserSymbols.KW_BLOB));
keywordMap.put("boolean", new Integer(SqlParserSymbols.KW_BOOLEAN));
+ keywordMap.put("brief", new Integer(SqlParserSymbols.KW_BRIEF));
keywordMap.put("broker", new Integer(SqlParserSymbols.KW_BROKER));
keywordMap.put("buckets", new Integer(SqlParserSymbols.KW_BUCKETS));
keywordMap.put("build", new Integer(SqlParserSymbols.KW_BUILD));
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowCreateTableStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowCreateTableStmtTest.java
index 3037bb0d8a..fe9adf9ccd 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowCreateTableStmtTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/analysis/ShowCreateTableStmtTest.java
@@ -32,7 +32,13 @@ public class ShowCreateTableStmtTest extends
TestWithFeService {
createDatabase("test");
useDatabase("test");
createTable("create table table1\n"
- + "(k1 int comment 'test column k1', k2 int comment 'test
column k2') comment 'test table1' distributed by hash(k1) buckets 1\n"
+ + "(k1 int comment 'test column k1', k2 int comment 'test
column k2') comment 'test table1' "
+ + "PARTITION BY RANGE(`k1`)\n"
+ + "(\n"
+ + " PARTITION `p01` VALUES LESS THAN (\"10\"),\n"
+ + " PARTITION `p02` VALUES LESS THAN (\"100\")\n"
+ + ") "
+ + "distributed by hash(k1) buckets 1\n"
+ "properties(\"replication_num\" = \"1\");");
}
@@ -46,4 +52,12 @@ public class ShowCreateTableStmtTest extends
TestWithFeService {
Assertions.assertTrue(showSql.contains("COMMENT 'test table1'"));
}
+ @Test
+ public void testBrief() throws Exception {
+ String sql = "show brief create table table1";
+ ShowResultSet showResultSet = showCreateTable(sql);
+ String showSql = showResultSet.getResultRows().get(0).get(1);
+ Assertions.assertTrue(!showSql.contains("PARTITION BY"));
+ Assertions.assertTrue(!showSql.contains("PARTITION `p01`"));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]