[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"
); |
This commit is contained in:
Yulei-Yang
2023-05-06 14:45:08 +08:00
committed by GitHub
parent 28b5ef436a
commit ff6e0d3943
9 changed files with 62 additions and 15 deletions

View File

@ -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;
}

View File

@ -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));
}

View File

@ -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");
}

View File

@ -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;