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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]