[FIX](complextype)fix information schema for complex type (#27203)

when we select in information schema , here do not show complex type information
This commit is contained in:
amory
2023-11-18 11:32:32 +08:00
committed by GitHub
parent be7273da83
commit 2f41e0c823
4 changed files with 153 additions and 14 deletions

View File

@ -1013,20 +1013,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
try {
List<Column> baseSchema = table.getBaseSchemaOrEmpty();
for (Column column : baseSchema) {
final TColumnDesc desc = new TColumnDesc(column.getName(), column.getDataType().toThrift());
final Integer precision = column.getOriginType().getPrecision();
if (precision != null) {
desc.setColumnPrecision(precision);
}
final Integer columnLength = column.getOriginType().getColumnSize();
if (columnLength != null) {
desc.setColumnLength(columnLength);
}
final Integer decimalDigits = column.getOriginType().getDecimalDigits();
if (decimalDigits != null) {
desc.setColumnScale(decimalDigits);
}
desc.setIsAllowNull(column.isAllowNull());
final TColumnDesc desc = getColumnDesc(column);
final TColumnDef colDef = new TColumnDef(desc);
final String comment = column.getComment();
if (comment != null) {
@ -1049,6 +1036,31 @@ public class FrontendServiceImpl implements FrontendService.Iface {
return result;
}
public TColumnDesc getColumnDesc(Column column) {
final TColumnDesc desc = new TColumnDesc(column.getName(), column.getDataType().toThrift());
final Integer precision = column.getOriginType().getPrecision();
if (precision != null) {
desc.setColumnPrecision(precision);
}
final Integer columnLength = column.getOriginType().getColumnSize();
if (columnLength != null) {
desc.setColumnLength(columnLength);
}
final Integer decimalDigits = column.getOriginType().getDecimalDigits();
if (decimalDigits != null) {
desc.setColumnScale(decimalDigits);
}
desc.setIsAllowNull(column.isAllowNull());
if (column.getChildren().size() > 0) {
ArrayList<TColumnDesc> children = new ArrayList<>();
for (Column child : column.getChildren()) {
children.add(getColumnDesc(child));
}
desc.setChildren(children);
}
return desc;
}
@Override
public TShowVariableResult showVariables(TShowVariableRequest params) throws TException {
TShowVariableResult result = new TShowVariableResult();