[Improvement](data types) enhance show data types stmt (#18831)

This commit is contained in:
ZashJie
2023-05-09 09:42:44 +08:00
committed by GitHub
parent f23e6dd8c1
commit 4302ceaee8
4 changed files with 60 additions and 49 deletions

View File

@ -24,6 +24,8 @@ import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.UserException;
import org.apache.doris.qe.ShowResultSetMetaData;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@ -41,6 +43,20 @@ public class ShowDataTypesStmt extends ShowStmt {
return PrimitiveType.getSupportedTypes();
}
public static List<List<String>> getTypesAvailableInDdl() {
ArrayList<PrimitiveType> supportedTypes = getTypes();
List<List<String>> rows = Lists.newArrayList();
for (PrimitiveType type : supportedTypes) {
List<String> row = new ArrayList<>();
if (type.isAvailableInDdl()) {
row.add(type.toString());
row.add(Integer.toString(type.getSlotSize()));
rows.add(row);
}
}
return rows;
}
@Override
public void analyze(Analyzer analyzer) throws AnalysisException, UserException {
super.analyze(analyzer);

View File

@ -478,14 +478,7 @@ public class ShowExecutor {
private void handleShowDataTypes() throws AnalysisException {
ShowDataTypesStmt showStmt = (ShowDataTypesStmt) stmt;
ArrayList<PrimitiveType> supportedTypes = showStmt.getTypes();
List<List<String>> rows = Lists.newArrayList();
for (PrimitiveType type : supportedTypes) {
List<String> row = new ArrayList<>();
row.add(type.toString());
row.add(Integer.toString(type.getSlotSize()));
rows.add(row);
}
List<List<String>> rows = showStmt.getTypesAvailableInDdl();
showStmt.sortMetaData(rows);
resultSet = new ShowResultSet(showStmt.getMetaData(), rows);
}