You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by yi...@apache.org on 2025/11/08 12:43:56 UTC
(doris) branch branch-4.0 updated: branch-4.0: [opt](catalog) Reduce the memory footprint of Column #57401 (#57766)
This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new ae468f9150b branch-4.0: [opt](catalog) Reduce the memory footprint of Column #57401 (#57766)
ae468f9150b is described below
commit ae468f9150b5ba8e51808991f454c159361d48ba
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Sat Nov 8 20:43:50 2025 +0800
branch-4.0: [opt](catalog) Reduce the memory footprint of Column #57401 (#57766)
Cherry-picked from #57401
Co-authored-by: morrySnow <zh...@selectdb.com>
---
.../apache/doris/alter/SchemaChangeHandler.java | 11 +--
.../org/apache/doris/analysis/SlotDescriptor.java | 6 +-
.../main/java/org/apache/doris/catalog/Column.java | 78 ++++++++++++----------
.../main/java/org/apache/doris/catalog/Env.java | 3 +-
.../java/org/apache/doris/catalog/OlapTable.java | 28 ++++----
.../apache/doris/datasource/hudi/HudiUtils.java | 8 ++-
.../doris/datasource/iceberg/IcebergUtils.java | 8 ++-
.../apache/doris/datasource/paimon/PaimonUtil.java | 3 +
.../nereids/load/NereidsStreamLoadPlanner.java | 3 +-
.../trees/plans/commands/insert/InsertUtils.java | 2 +-
.../apache/doris/service/FrontendServiceImpl.java | 2 +-
.../doris/tablefunction/TableValuedFunctionIf.java | 2 +-
.../info_schema_db/test_info_schema_db.out | 12 ++--
.../external_table_p0/tvf/test_tvf_view.groovy | 36 +++++-----
14 files changed, 110 insertions(+), 92 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index 8ceb3a01def..3450639f609 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -116,6 +116,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -392,11 +393,10 @@ public class SchemaChangeHandler extends AlterHandler {
if (null == targetIndexName) {
if (nameToColumn.containsKey(dropColName)) {
Column column = nameToColumn.get(dropColName);
- Set<String> generatedColumnsThatReferToThis = column.getGeneratedColumnsThatReferToThis();
- if (!generatedColumnsThatReferToThis.isEmpty()) {
+ if (CollectionUtils.isNotEmpty(column.getGeneratedColumnsThatReferToThis())) {
throw new DdlException(
"Column '" + dropColName + "' has a generated column dependency on :"
- + generatedColumnsThatReferToThis);
+ + column.getGeneratedColumnsThatReferToThis());
}
}
}
@@ -3474,8 +3474,9 @@ public class SchemaChangeHandler extends AlterHandler {
continue;
}
Column c = nameToColumn.get(name);
- Set<String> sets = c.getGeneratedColumnsThatReferToThis();
- sets.remove(dropColName);
+ if (CollectionUtils.isNotEmpty(c.getGeneratedColumnsThatReferToThis())) {
+ c.getGeneratedColumnsThatReferToThis().remove(dropColName);
+ }
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
index 58e1073e879..085ee629ee2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SlotDescriptor.java
@@ -224,11 +224,7 @@ public class SlotDescriptor {
public ColumnStats getStats() {
if (stats == null) {
- if (column != null) {
- stats = column.getStats();
- } else {
- stats = new ColumnStats();
- }
+ stats = new ColumnStats();
}
// FIXME(dhc): mock ndv
stats.setNumDistinctValues((long) parent.getCardinality());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
index 3127fc17b49..8b5596bda97 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java
@@ -42,6 +42,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.gson.annotations.SerializedName;
import com.google.protobuf.ByteString;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -109,8 +110,6 @@ public class Column implements GsonPostProcessable {
private String defaultValue;
@SerializedName(value = "comment")
private String comment;
- @SerializedName(value = "stats")
- private ColumnStats stats; // cardinality and selectivity etc.
@SerializedName(value = "children")
private List<Column> children;
/**
@@ -152,7 +151,7 @@ public class Column implements GsonPostProcessable {
private GeneratedColumnInfo generatedColumnInfo;
@SerializedName(value = "gctt")
- private Set<String> generatedColumnsThatReferToThis = new HashSet<>();
+ private Set<String> generatedColumnsThatReferToThis;
// used for variant sub-field pattern type
@SerializedName(value = "fpt")
@@ -168,10 +167,9 @@ public class Column implements GsonPostProcessable {
this.type = Type.NULL;
this.isAggregationTypeImplicit = false;
this.isKey = false;
- this.stats = new ColumnStats();
this.visible = true;
this.defineExpr = null;
- this.children = new ArrayList<>();
+ this.children = null;
this.uniqueId = -1;
}
@@ -261,16 +259,17 @@ public class Column implements GsonPostProcessable {
this.defaultValue = defaultValue;
this.realDefaultValue = realDefaultValue;
this.defaultValueExprDef = defaultValueExprDef;
- this.comment = comment;
- this.stats = new ColumnStats();
+ this.comment = StringUtils.isBlank(comment) ? null : comment;
this.visible = visible;
- this.children = new ArrayList<>();
+ this.children = null;
createChildrenColumn(this.type, this);
this.uniqueId = colUniqueId;
this.hasOnUpdateDefaultValue = hasOnUpdateDefaultValue;
this.onUpdateDefaultValueExprDef = onUpdateDefaultValueExprDef;
this.generatedColumnInfo = generatedColumnInfo;
- this.generatedColumnsThatReferToThis.addAll(generatedColumnsThatReferToThis);
+ if (CollectionUtils.isNotEmpty(generatedColumnsThatReferToThis)) {
+ this.generatedColumnsThatReferToThis = new HashSet<>(generatedColumnsThatReferToThis);
+ }
if (type.isAggStateType()) {
AggStateType aggState = (AggStateType) type;
@@ -320,7 +319,6 @@ public class Column implements GsonPostProcessable {
this.realDefaultValue = column.realDefaultValue;
this.defaultValueExprDef = column.defaultValueExprDef;
this.comment = column.getComment();
- this.stats = column.getStats();
this.visible = column.visible;
this.children = column.getChildren();
this.uniqueId = column.getUniqueId();
@@ -369,6 +367,9 @@ public class Column implements GsonPostProcessable {
}
private void addChildrenColumn(Column column) {
+ if (this.children == null) {
+ this.children = Lists.newArrayListWithExpectedSize(2);
+ }
this.children.add(column);
}
@@ -573,17 +574,8 @@ public class Column implements GsonPostProcessable {
return result;
}
-
- public void setStats(ColumnStats stats) {
- this.stats = stats;
- }
-
- public ColumnStats getStats() {
- return this.stats;
- }
-
public void setComment(String comment) {
- this.comment = comment;
+ this.comment = StringUtils.isBlank(comment) ? null : comment;
}
public String getComment() {
@@ -591,6 +583,7 @@ public class Column implements GsonPostProcessable {
}
public String getComment(boolean escapeQuota) {
+ String comment = this.comment == null ? "" : this.comment;
if (!escapeQuota) {
return comment;
}
@@ -649,8 +642,10 @@ public class Column implements GsonPostProcessable {
AggStateType aggState = (AggStateType) type;
tColumn.setAggregation(aggState.getFunctionName());
tColumn.setResultIsNullable(aggState.getResultIsNullable());
- for (Column column : children) {
- tColumn.addToChildrenColumn(column.toThrift());
+ if (children != null) {
+ for (Column column : children) {
+ tColumn.addToChildrenColumn(column.toThrift());
+ }
}
tColumn.setBeExecVersion(Config.be_exec_version);
}
@@ -697,17 +692,21 @@ public class Column implements GsonPostProcessable {
}
private void addChildren(Column column, TColumn tColumn) {
- List<Column> childrenColumns = column.getChildren();
- tColumn.setChildrenColumn(new ArrayList<>());
- for (Column c : childrenColumns) {
- setChildrenTColumn(c, tColumn);
+ if (column.getChildren() != null) {
+ List<Column> childrenColumns = column.getChildren();
+ tColumn.setChildrenColumn(new ArrayList<>());
+ for (Column c : childrenColumns) {
+ setChildrenTColumn(c, tColumn);
+ }
}
}
private void addChildren(OlapFile.ColumnPB.Builder builder) throws DdlException {
- List<Column> childrenColumns = this.getChildren();
- for (Column c : childrenColumns) {
- builder.addChildrenColumns(c.toPb(Sets.newHashSet(), Lists.newArrayList()));
+ if (this.getChildren() != null) {
+ List<Column> childrenColumns = this.getChildren();
+ for (Column c : childrenColumns) {
+ builder.addChildrenColumns(c.toPb(Sets.newHashSet(), Lists.newArrayList()));
+ }
}
}
@@ -825,8 +824,10 @@ public class Column implements GsonPostProcessable {
builder.setAggregation(aggState.getFunctionName());
builder.setResultIsNullable(aggState.getResultIsNullable());
builder.setBeExecVersion(Config.be_exec_version);
- for (Column column : children) {
- builder.addChildrenColumns(column.toPb(Sets.newHashSet(), Lists.newArrayList()));
+ if (children != null) {
+ for (Column column : children) {
+ builder.addChildrenColumns(column.toPb(Sets.newHashSet(), Lists.newArrayList()));
+ }
}
} else {
builder.setAggregation(this.aggregationType.toString());
@@ -969,7 +970,7 @@ public class Column implements GsonPostProcessable {
if (this.getVariantSparseHashShardCount() != other.getVariantSparseHashShardCount()) {
throw new DdlException("Can not change variant sparse bucket num");
}
- if (!this.getChildren().isEmpty() || !other.getChildren().isEmpty()) {
+ if (CollectionUtils.isNotEmpty(this.getChildren()) || CollectionUtils.isNotEmpty(other.getChildren())) {
throw new DdlException("Can not change variant schema templates");
}
}
@@ -1102,7 +1103,7 @@ public class Column implements GsonPostProcessable {
@Override
public int hashCode() {
return Objects.hash(name, getDataType(), getStrLen(), getPrecision(), getScale(), aggregationType,
- isAggregationTypeImplicit, isKey, isAllowNull, isAutoInc, defaultValue, comment, children, visible,
+ isAggregationTypeImplicit, isKey, isAllowNull, isAutoInc, defaultValue, getComment(), children, visible,
realDefaultValue, clusterKeyId);
}
@@ -1125,7 +1126,7 @@ public class Column implements GsonPostProcessable {
&& isAllowNull == other.isAllowNull
&& isAutoInc == other.isAutoInc
&& Objects.equals(type, other.type)
- && Objects.equals(comment, other.comment)
+ && Objects.equals(getComment(), other.getComment())
&& visible == other.visible
&& Objects.equals(children, other.children)
&& Objects.equals(realDefaultValue, other.realDefaultValue)
@@ -1262,6 +1263,15 @@ public class Column implements GsonPostProcessable {
&& type.getLength() != ScalarType.MAX_STRING_LENGTH) {
((ScalarType) type).setLength(ScalarType.MAX_STRING_LENGTH);
}
+ if (CollectionUtils.isEmpty(generatedColumnsThatReferToThis)) {
+ generatedColumnsThatReferToThis = null;
+ }
+ if (StringUtils.isBlank(comment)) {
+ comment = null;
+ }
+ if (CollectionUtils.isEmpty(children)) {
+ children = null;
+ }
}
public boolean isMaterializedViewColumn() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index f33979ad422..69fc28b4dc9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -5746,7 +5746,8 @@ public class Env {
// check if have materialized view on rename column
// and check whether colName is referenced by generated columns
for (Column column : entry.getValue().getSchema()) {
- if (column.getName().equals(colName) && !column.getGeneratedColumnsThatReferToThis().isEmpty()) {
+ if (column.getName().equals(colName)
+ && CollectionUtils.isNotEmpty(column.getGeneratedColumnsThatReferToThis())) {
throw new DdlException(
"Cannot rename column, because column '" + colName
+ "' has a generated column dependency on :"
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index a465f2f6c9b..d239b31d981 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -3638,21 +3638,23 @@ public class OlapTable extends Table implements MTMVRelatedTableIf, GsonPostProc
// subPath is not empty, means it is a variant column, find the field pattern from children
String subPathString = String.join(".", subPath);
String fieldPattern = "";
- for (Column child : column.getChildren()) {
- String childName = child.getName();
- if (child.getFieldPatternType() == TPatternType.MATCH_NAME_GLOB) {
- try {
- java.nio.file.PathMatcher matcher = java.nio.file.FileSystems.getDefault()
- .getPathMatcher("glob:" + childName);
- if (matcher.matches(java.nio.file.Paths.get(subPathString))) {
+ if (column.getChildren() != null) {
+ for (Column child : column.getChildren()) {
+ String childName = child.getName();
+ if (child.getFieldPatternType() == TPatternType.MATCH_NAME_GLOB) {
+ try {
+ java.nio.file.PathMatcher matcher = java.nio.file.FileSystems.getDefault()
+ .getPathMatcher("glob:" + childName);
+ if (matcher.matches(java.nio.file.Paths.get(subPathString))) {
+ fieldPattern = childName;
+ }
+ } catch (Exception e) {
+ continue;
+ }
+ } else if (child.getFieldPatternType() == TPatternType.MATCH_NAME) {
+ if (childName.equals(subPathString)) {
fieldPattern = childName;
}
- } catch (Exception e) {
- continue;
- }
- } else if (child.getFieldPatternType() == TPatternType.MATCH_NAME) {
- if (childName.equals(subPathString)) {
- fieldPattern = childName;
}
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/HudiUtils.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/HudiUtils.java
index d153d62de7a..a7f9c3d09bd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/HudiUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/HudiUtils.java
@@ -158,9 +158,11 @@ public class HudiUtils {
return;
}
- List<Column> childColumns = column.getChildren();
- for (int idx = 0; idx < childColumns.size(); idx++) {
- updateHudiColumnUniqueId(childColumns.get(idx), hudiInternalfields.get(idx));
+ if (column.getChildren() != null) {
+ List<Column> childColumns = column.getChildren();
+ for (int idx = 0; idx < childColumns.size(); idx++) {
+ updateHudiColumnUniqueId(childColumns.get(idx), hudiInternalfields.get(idx));
+ }
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java
index 64d333288f4..3b0dbd3c615 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergUtils.java
@@ -778,9 +778,11 @@ public class IcebergUtils {
return;
}
- List<Column> childColumns = column.getChildren();
- for (int idx = 0; idx < childColumns.size(); idx++) {
- updateIcebergColumnUniqueId(childColumns.get(idx), icebergFields.get(idx));
+ if (column.getChildren() != null) {
+ List<Column> childColumns = column.getChildren();
+ for (int idx = 0; idx < childColumns.size(); idx++) {
+ updateIcebergColumnUniqueId(childColumns.get(idx), icebergFields.get(idx));
+ }
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java
index 16a9c5c5b43..6d2bfc88bae 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonUtil.java
@@ -280,6 +280,9 @@ public class PaimonUtil {
public static void updatePaimonColumnUniqueId(Column column, DataType dataType) {
List<Column> columns = column.getChildren();
+ if (columns == null) {
+ return;
+ }
switch (dataType.getTypeRoot()) {
case ARRAY:
ArrayType arrayType = (ArrayType) dataType;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsStreamLoadPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsStreamLoadPlanner.java
index 81c99d8c9d9..09fba057a91 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsStreamLoadPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsStreamLoadPlanner.java
@@ -56,6 +56,7 @@ import org.apache.doris.thrift.TUniqueKeyUpdateMode;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -191,7 +192,7 @@ public class NereidsStreamLoadPlanner {
}
}
- if (!col.getGeneratedColumnsThatReferToThis().isEmpty()
+ if (CollectionUtils.isNotEmpty(col.getGeneratedColumnsThatReferToThis())
&& col.getGeneratedColumnInfo() == null && !existInExpr) {
throw new UserException("Partial update should include"
+ " all ordinary columns referenced"
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
index 0d219f43c3d..5549e4ee662 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
@@ -322,7 +322,7 @@ public class InsertUtils {
throw new AnalysisException("Partial update should include all key columns,"
+ " missing: " + col.getName());
}
- if (!col.getGeneratedColumnsThatReferToThis().isEmpty()
+ if (CollectionUtils.isNotEmpty(col.getGeneratedColumnsThatReferToThis())
&& col.getGeneratedColumnInfo() == null && !insertCol.isPresent()) {
throw new AnalysisException("Partial update should include"
+ " all ordinary columns referenced"
diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index c12e4eddedf..1d666e8dce0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -950,7 +950,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
desc.setColumnScale(decimalDigits);
}
desc.setIsAllowNull(column.isAllowNull());
- if (column.getChildren().size() > 0) {
+ if (CollectionUtils.isNotEmpty(column.getChildren())) {
ArrayList<TColumnDesc> children = new ArrayList<>();
for (Column child : column.getChildren()) {
children.add(getColumnDesc(child));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/TableValuedFunctionIf.java b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/TableValuedFunctionIf.java
index 2771189329c..65b187f3830 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/TableValuedFunctionIf.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/TableValuedFunctionIf.java
@@ -32,7 +32,7 @@ import java.util.Map;
public abstract class TableValuedFunctionIf {
private FunctionGenTable table = null;
- public static final String TVF_TABLE_PREFIX = "_table_valued_function_";
+ public static final String TVF_TABLE_PREFIX = "_tvf_";
public FunctionGenTable getTable() throws AnalysisException {
if (table == null) {
diff --git a/regression-test/data/external_table_p0/info_schema_db/test_info_schema_db.out b/regression-test/data/external_table_p0/info_schema_db/test_info_schema_db.out
index 6639a812e83..452d241e2b2 100644
--- a/regression-test/data/external_table_p0/info_schema_db/test_info_schema_db.out
+++ b/regression-test/data/external_table_p0/info_schema_db/test_info_schema_db.out
@@ -43,12 +43,12 @@ addr varchar(50) YES YES \N
phone varchar(50) YES YES \N
-- !sql22 --
-id varchar(50) YES YES \N \N
-name varchar(50) YES YES \N \N
-age int YES YES \N \N
-gender varchar(50) YES YES \N \N
-addr varchar(50) YES YES \N \N
-phone varchar(50) YES YES \N \N
+id varchar(50) YES YES \N
+name varchar(50) YES YES \N
+age int YES YES \N
+gender varchar(50) YES YES \N
+addr varchar(50) YES YES \N
+phone varchar(50) YES YES \N
-- !sql23 --
id varchar \N YES \N
diff --git a/regression-test/suites/external_table_p0/tvf/test_tvf_view.groovy b/regression-test/suites/external_table_p0/tvf/test_tvf_view.groovy
index 0a59397bab4..56a010e1404 100644
--- a/regression-test/suites/external_table_p0/tvf/test_tvf_view.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_tvf_view.groovy
@@ -35,15 +35,15 @@ suite("test_tvf_view", "p0,external,tvf,external_docker,hive") {
qt_3 """select p_partkey from tvf_view order by p_partkey limit 10"""
explain{
sql("select * from tvf_view")
- contains("_table_valued_function_hdfs.p_partkey")
- contains("_table_valued_function_hdfs.p_name")
- contains("_table_valued_function_hdfs.p_mfgr")
- contains("_table_valued_function_hdfs.p_brand")
- contains("_table_valued_function_hdfs.p_type")
- contains("_table_valued_function_hdfs.p_size")
- contains("_table_valued_function_hdfs.p_container")
- contains("_table_valued_function_hdfs.p_retailprice")
- contains("_table_valued_function_hdfs.p_comment")
+ contains("_tvf_hdfs.p_partkey")
+ contains("_tvf_hdfs.p_name")
+ contains("_tvf_hdfs.p_mfgr")
+ contains("_tvf_hdfs.p_brand")
+ contains("_tvf_hdfs.p_type")
+ contains("_tvf_hdfs.p_size")
+ contains("_tvf_hdfs.p_container")
+ contains("_tvf_hdfs.p_retailprice")
+ contains("_tvf_hdfs.p_comment")
contains("table: null.null.HDFSTableValuedFunction")
}
explain{
@@ -51,15 +51,15 @@ suite("test_tvf_view", "p0,external,tvf,external_docker,hive") {
" \"uri\"=\"hdfs://${nameNodeHost}:${hdfsPort}/user/doris/tpch1.db/tpch1_parquet/part/part-00000-cb9099f7-a053-4f9a-80af-c659cfa947cc-c000.snappy.parquet\",\n" +
" \"hadoop.username\" = \"hadoop\",\n" +
" \"format\"=\"parquet\")")
- contains("_table_valued_function_hdfs.p_partkey")
- contains("_table_valued_function_hdfs.p_name")
- contains("_table_valued_function_hdfs.p_mfgr")
- contains("_table_valued_function_hdfs.p_brand")
- contains("_table_valued_function_hdfs.p_type")
- contains("_table_valued_function_hdfs.p_size")
- contains("_table_valued_function_hdfs.p_container")
- contains("_table_valued_function_hdfs.p_retailprice")
- contains("_table_valued_function_hdfs.p_comment")
+ contains("_tvf_hdfs.p_partkey")
+ contains("_tvf_hdfs.p_name")
+ contains("_tvf_hdfs.p_mfgr")
+ contains("_tvf_hdfs.p_brand")
+ contains("_tvf_hdfs.p_type")
+ contains("_tvf_hdfs.p_size")
+ contains("_tvf_hdfs.p_container")
+ contains("_tvf_hdfs.p_retailprice")
+ contains("_tvf_hdfs.p_comment")
}
sql """create view tvf_view_count as select * from hdfs (
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org