This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push: new 5c5030b6dd [fix](icebergv2) fix icebergv2 delete file open bug and column case insensitive (#16135) 5c5030b6dd is described below commit 5c5030b6dd75097575d8472745b629cde0d10e0f Author: Mingyu Chen <morning...@163.com> AuthorDate: Tue Jan 24 21:41:59 2023 +0800 [fix](icebergv2) fix icebergv2 delete file open bug and column case insensitive (#16135) cherry-pick #16133 and #15156 --- be/src/vec/exec/format/parquet/vparquet_reader.cpp | 4 ++++ be/src/vec/exec/format/table/iceberg_reader.cpp | 4 ++++ .../org/apache/doris/catalog/external/ExternalTable.java | 2 +- .../org/apache/doris/analysis/PartitionPruneTestBase.java | 3 ++- .../org/apache/doris/analysis/RangePartitionPruneTest.java | 12 ++++++++---- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/be/src/vec/exec/format/parquet/vparquet_reader.cpp b/be/src/vec/exec/format/parquet/vparquet_reader.cpp index 1d2575a70e..7881eebe2d 100644 --- a/be/src/vec/exec/format/parquet/vparquet_reader.cpp +++ b/be/src/vec/exec/format/parquet/vparquet_reader.cpp @@ -169,6 +169,10 @@ Status ParquetReader::init_reader( const std::vector<std::string>& missing_column_names, std::unordered_map<std::string, ColumnValueRangeType>* colname_to_value_range, VExprContext* vconjunct_ctx, bool filter_groups) { + if (_file_metadata == nullptr) { + return Status::InternalError("failed to init parquet reader, please open reader first"); + } + SCOPED_RAW_TIMER(&_statistics.parse_meta_time); _total_groups = _t_metadata->row_groups.size(); if (_total_groups == 0) { diff --git a/be/src/vec/exec/format/table/iceberg_reader.cpp b/be/src/vec/exec/format/table/iceberg_reader.cpp index 8715c938a6..f636453a00 100644 --- a/be/src/vec/exec/format/table/iceberg_reader.cpp +++ b/be/src/vec/exec/format/table/iceberg_reader.cpp @@ -179,6 +179,10 @@ Status IcebergTableReader::_position_delete( delete_reader.get_parsed_schema(&delete_file_col_names, &delete_file_col_types); init_schema = true; } + create_status = delete_reader.open(); + if (!create_status.ok()) { + return nullptr; + } create_status = delete_reader.init_reader(delete_file_col_names, _not_in_file_col_names, nullptr, nullptr, false); if (!create_status.ok()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java index 09f83e8330..946deb6fa2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalTable.java @@ -238,7 +238,7 @@ public class ExternalTable implements TableIf, Writable, GsonPostProcessable { public Column getColumn(String name) { List<Column> schema = getFullSchema(); for (Column column : schema) { - if (name.equals(column.getName())) { + if (name.equalsIgnoreCase(column.getName())) { return column; } } diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/PartitionPruneTestBase.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/PartitionPruneTestBase.java index 95c4790bea..636c31c99f 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/PartitionPruneTestBase.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/PartitionPruneTestBase.java @@ -37,8 +37,9 @@ public abstract class PartitionPruneTestBase extends TestWithFeService { } private void assertExplainContains(int version, String sql, String subString) throws Exception { + String exp = getSQLPlanOrErrorMsg("explain " + sql); Assert.assertTrue(String.format("version=%d, sql=%s, expectResult=%s", version, sql, subString), - getSQLPlanOrErrorMsg("explain " + sql).contains(subString)); + exp.contains(subString)); } protected void addCase(String sql, String v1Result, String v2Result) { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java index f1bbc3ba91..950bde6afb 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/RangePartitionPruneTest.java @@ -171,19 +171,23 @@ public class RangePartitionPruneTest extends PartitionPruneTestBase { addCase("select * from test.multi_not_null where k1 > 10 and k1 is null", "partitions=0/2", "partitions=0/2"); // others predicates combination addCase("select * from test.t2 where k1 > 10 and k2 < 4", "partitions=6/9", "partitions=6/9"); - addCase("select * from test.t2 where k1 >10 and k1 < 10 and (k1=11 or k1=12)", "partitions=1/9", "partitions=0/9"); + addCase("select * from test.t2 where k1 >10 and k1 < 10 and (k1=11 or k1=12)", "partitions=1/9", + "partitions=0/9"); addCase("select * from test.t2 where k1 > 20 and k1 < 7 and k1 = 10", "partitions=0/9", "partitions=0/9"); // 4. Disjunctive predicates addCase("select * from test.t2 where k1=10 or k1=23", "partitions=3/9", "partitions=3/9"); addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=5)", "partitions=1/9", "partitions=1/9"); addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=4 or k2=11)", "partitions=2/9", "partitions=2/9"); - addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=3 or k2=4 or k2=11)", "partitions=3/9", "partitions=3/9"); + addCase("select * from test.t2 where (k1=10 or k1=23) and (k2=3 or k2=4 or k2=11)", "partitions=3/9", + "partitions=3/9"); addCase("select * from test.t1 where dt=20211123 or dt=20211124", "partitions=2/8", "partitions=2/8"); - addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3))", "partitions=8/8", "partitions=2/8"); + addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3))", "partitions=2/8", + "partitions=2/8"); // TODO: predicates are "PREDICATES: ((`dt` = 20211123 AND `k1` = 1) OR (`dt` = 20211125 AND `k1` = 3)), `k2` > ", // maybe something goes wrong with ExtractCommonFactorsRule. - addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3)) and k2>0", "partitions=8/8", "partitions=2/8"); + addCase("select * from test.t1 where ((dt=20211123 and k1=1) or (dt=20211125 and k1=3)) and k2>0", + "partitions=2/8", "partitions=2/8"); addCase("select * from test.t2 where k1 > 10 or k2 < 1", "partitions=9/9", "partitions=9/9"); // add some cases for CompoundPredicate addCase("select * from test.t1 where (dt >= 20211121 and dt <= 20211122) or (dt >= 20211123 and dt <= 20211125)", --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org