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

Reply via email to