This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new 3484e7b2ff5 [fix](table_options) fix potential NPE when quering table_options systable (#40944) (#41040) 3484e7b2ff5 is described below commit 3484e7b2ff50e26d37c792312a86b6846f48893a Author: Mingyu Chen <morning...@163.com> AuthorDate: Fri Sep 20 16:57:02 2024 +0800 [fix](table_options) fix potential NPE when quering table_options systable (#40944) (#41040) bp #40944 --- .../doris/tablefunction/MetadataGenerator.java | 65 ++++++++++++---------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/MetadataGenerator.java b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/MetadataGenerator.java index a08b49ccada..89afa498d1b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/MetadataGenerator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/MetadataGenerator.java @@ -1090,40 +1090,45 @@ public class MetadataGenerator { continue; } OlapTable olapTable = (OlapTable) table; - TRow trow = new TRow(); - trow.addToColumnValue(new TCell().setStringVal(catalog.getName())); // TABLE_CATALOG - trow.addToColumnValue(new TCell().setStringVal(database.getFullName())); // TABLE_SCHEMA - trow.addToColumnValue(new TCell().setStringVal(table.getName())); // TABLE_NAME - trow.addToColumnValue( - new TCell().setStringVal(olapTable.getKeysType().toMetadata())); // TABLE_MODEL - trow.addToColumnValue( - new TCell().setStringVal(olapTable.getKeyColAsString())); // key columTypes - - DistributionInfo distributionInfo = olapTable.getDefaultDistributionInfo(); - if (distributionInfo.getType() == DistributionInfoType.HASH) { - HashDistributionInfo hashDistributionInfo = (HashDistributionInfo) distributionInfo; - List<Column> distributionColumns = hashDistributionInfo.getDistributionColumns(); - StringBuilder distributeKey = new StringBuilder(); - for (Column c : distributionColumns) { - if (distributeKey.length() != 0) { - distributeKey.append(","); + olapTable.readLock(); + try { + TRow trow = new TRow(); + trow.addToColumnValue(new TCell().setStringVal(catalog.getName())); // TABLE_CATALOG + trow.addToColumnValue(new TCell().setStringVal(database.getFullName())); // TABLE_SCHEMA + trow.addToColumnValue(new TCell().setStringVal(table.getName())); // TABLE_NAME + trow.addToColumnValue( + new TCell().setStringVal(olapTable.getKeysType().toMetadata())); // TABLE_MODEL + trow.addToColumnValue( + new TCell().setStringVal(olapTable.getKeyColAsString())); // key columTypes + + DistributionInfo distributionInfo = olapTable.getDefaultDistributionInfo(); + if (distributionInfo.getType() == DistributionInfoType.HASH) { + HashDistributionInfo hashDistributionInfo = (HashDistributionInfo) distributionInfo; + List<Column> distributionColumns = hashDistributionInfo.getDistributionColumns(); + StringBuilder distributeKey = new StringBuilder(); + for (Column c : distributionColumns) { + if (distributeKey.length() != 0) { + distributeKey.append(","); + } + distributeKey.append(c.getName()); } - distributeKey.append(c.getName()); - } - if (distributeKey.length() == 0) { - trow.addToColumnValue(new TCell().setStringVal("")); + if (distributeKey.length() == 0) { + trow.addToColumnValue(new TCell().setStringVal("")); + } else { + trow.addToColumnValue( + new TCell().setStringVal(distributeKey.toString())); + } + trow.addToColumnValue(new TCell().setStringVal("HASH")); // DISTRIBUTE_TYPE } else { - trow.addToColumnValue( - new TCell().setStringVal(distributeKey.toString())); + trow.addToColumnValue(new TCell().setStringVal("RANDOM")); // DISTRIBUTE_KEY + trow.addToColumnValue(new TCell().setStringVal("RANDOM")); // DISTRIBUTE_TYPE } - trow.addToColumnValue(new TCell().setStringVal("HASH")); // DISTRIBUTE_TYPE - } else { - trow.addToColumnValue(new TCell().setStringVal("RANDOM")); // DISTRIBUTE_KEY - trow.addToColumnValue(new TCell().setStringVal("RANDOM")); // DISTRIBUTE_TYPE + trow.addToColumnValue(new TCell().setIntVal(distributionInfo.getBucketNum())); // BUCKETS_NUM + trow.addToColumnValue(new TCell().setIntVal(olapTable.getPartitionNum())); // PARTITION_NUM + dataBatch.add(trow); + } finally { + olapTable.readUnlock(); } - trow.addToColumnValue(new TCell().setIntVal(distributionInfo.getBucketNum())); // BUCKETS_NUM - trow.addToColumnValue(new TCell().setIntVal(olapTable.getPartitionNum())); // PARTITION_NUM - dataBatch.add(trow); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org