This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git

commit 7d037c12bff22c1882b8882447d91dbf20543c12
Author: wuwenchi <wuwenchi...@hotmail.com>
AuthorDate: Tue Jan 30 21:55:16 2024 +0800

    [bugfix](paimon)fix paimon testcases (#30514)
    
    1. set default timezone
    2. not supported `char` type to pushdown
---
 be/src/vec/exec/format/orc/vorc_reader.cpp         |  23 +-
 be/src/vec/exec/format/orc/vorc_reader.h           |   4 +-
 be/src/vec/exec/scan/vfile_scanner.cpp             |  25 ++-
 .../external/paimon/PaimonValueConverter.java      |   8 +-
 .../paimon/test_paimon_catalog.out                 | 134 +++++++++---
 .../paimon/test_paimon_catalog.groovy              | 235 ++++++++++-----------
 .../paimon/paimon_timestamp_types.groovy           |   2 +-
 7 files changed, 256 insertions(+), 175 deletions(-)

diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp 
b/be/src/vec/exec/format/orc/vorc_reader.cpp
index 17a3425f4af..436673722b6 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.cpp
+++ b/be/src/vec/exec/format/orc/vorc_reader.cpp
@@ -137,7 +137,7 @@ void ORCFileInputStream::read(void* buf, uint64_t length, 
uint64_t offset) {
 OrcReader::OrcReader(RuntimeProfile* profile, RuntimeState* state,
                      const TFileScanRangeParams& params, const TFileRangeDesc& 
range,
                      size_t batch_size, const std::string& ctz, io::IOContext* 
io_ctx,
-                     bool enable_lazy_mat)
+                     bool enable_lazy_mat, std::vector<orc::TypeKind>* 
unsupported_pushdown_types)
         : _profile(profile),
           _state(state),
           _scan_params(params),
@@ -148,7 +148,8 @@ OrcReader::OrcReader(RuntimeProfile* profile, RuntimeState* 
state,
           _ctz(ctz),
           _io_ctx(io_ctx),
           _enable_lazy_mat(enable_lazy_mat),
-          _is_dict_cols_converted(false) {
+          _is_dict_cols_converted(false),
+          _unsupported_pushdown_types(unsupported_pushdown_types) {
     TimezoneUtils::find_cctz_time_zone(ctz, _time_zone);
     VecDateTimeValue t;
     t.from_unixtime(0, ctz);
@@ -524,8 +525,20 @@ std::tuple<bool, orc::Literal> 
convert_to_orc_literal(const orc::Type* type, con
 
 template <PrimitiveType primitive_type>
 std::vector<OrcPredicate> value_range_to_predicate(
-        const ColumnValueRange<primitive_type>& col_val_range, const 
orc::Type* type) {
+        const ColumnValueRange<primitive_type>& col_val_range, const 
orc::Type* type,
+        std::vector<orc::TypeKind>* unsupported_pushdown_types) {
     std::vector<OrcPredicate> predicates;
+
+    if (unsupported_pushdown_types != nullptr) {
+        for (vector<orc::TypeKind>::iterator it = 
unsupported_pushdown_types->begin();
+             it != unsupported_pushdown_types->end(); ++it) {
+            if (*it == type->getKind()) {
+                // Unsupported type
+                return predicates;
+            }
+        }
+    }
+
     orc::PredicateDataType predicate_data_type;
     auto type_it = TYPEKIND_TO_PREDICATE_TYPE.find(type->getKind());
     if (type_it == TYPEKIND_TO_PREDICATE_TYPE.end()) {
@@ -667,8 +680,8 @@ bool OrcReader::_init_search_argument(
         }
         std::visit(
                 [&](auto& range) {
-                    std::vector<OrcPredicate> value_predicates =
-                            value_range_to_predicate(range, type_it->second);
+                    std::vector<OrcPredicate> value_predicates = 
value_range_to_predicate(
+                            range, type_it->second, 
_unsupported_pushdown_types);
                     for (auto& range_predicate : value_predicates) {
                         predicates.emplace_back(range_predicate);
                     }
diff --git a/be/src/vec/exec/format/orc/vorc_reader.h 
b/be/src/vec/exec/format/orc/vorc_reader.h
index b8bc05387b9..006eee24dc6 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.h
+++ b/be/src/vec/exec/format/orc/vorc_reader.h
@@ -130,7 +130,8 @@ public:
 
     OrcReader(RuntimeProfile* profile, RuntimeState* state, const 
TFileScanRangeParams& params,
               const TFileRangeDesc& range, size_t batch_size, const 
std::string& ctz,
-              io::IOContext* io_ctx, bool enable_lazy_mat = true);
+              io::IOContext* io_ctx, bool enable_lazy_mat = true,
+              std::vector<orc::TypeKind>* unsupported_pushdown_types = 
nullptr);
 
     OrcReader(const TFileScanRangeParams& params, const TFileRangeDesc& range,
               const std::string& ctz, io::IOContext* io_ctx, bool 
enable_lazy_mat = true);
@@ -571,6 +572,7 @@ private:
     std::unique_ptr<orc::StringDictFilter> _string_dict_filter;
     bool _is_dict_cols_converted;
     bool _has_complex_type = false;
+    std::vector<orc::TypeKind>* _unsupported_pushdown_types;
 };
 
 class ORCFileInputStream : public orc::InputStream {
diff --git a/be/src/vec/exec/scan/vfile_scanner.cpp 
b/be/src/vec/exec/scan/vfile_scanner.cpp
index 73ad94d9cbe..2dbef651bf3 100644
--- a/be/src/vec/exec/scan/vfile_scanner.cpp
+++ b/be/src/vec/exec/scan/vfile_scanner.cpp
@@ -785,9 +785,20 @@ Status VFileScanner::_get_next_reader() {
             break;
         }
         case TFileFormatType::FORMAT_PARQUET: {
+            static const cctz::time_zone utc0 = cctz::utc_time_zone();
+            cctz::time_zone* tz;
+            if (range.__isset.table_format_params &&
+                range.table_format_params.table_format_type == "paimon") {
+                // The timestmap generated by paimon does not carry metadata 
information (e.g., isAdjustToUTC, etc.),
+                // and the stored data is UTC0 by default, so it is directly 
set to the UTC time zone.
+                // In version 0.7, paimon fixed this issue and can remove the 
judgment here
+                tz = const_cast<cctz::time_zone*>(&utc0);
+            } else {
+                tz = const_cast<cctz::time_zone*>(&_state->timezone_obj());
+            }
             std::unique_ptr<ParquetReader> parquet_reader = 
ParquetReader::create_unique(
-                    _profile, *_params, range, 
_state->query_options().batch_size,
-                    const_cast<cctz::time_zone*>(&_state->timezone_obj()), 
_io_ctx.get(), _state,
+                    _profile, *_params, range, 
_state->query_options().batch_size, tz,
+                    _io_ctx.get(), _state,
                     config::max_external_file_meta_cache_num <= 0
                             ? nullptr
                             : ExecEnv::GetInstance()->file_meta_cache(),
@@ -825,9 +836,17 @@ Status VFileScanner::_get_next_reader() {
             break;
         }
         case TFileFormatType::FORMAT_ORC: {
+            std::vector<orc::TypeKind>* unsupported_pushdown_types = nullptr;
+            if (range.__isset.table_format_params &&
+                range.table_format_params.table_format_type == "paimon") {
+                static std::vector<orc::TypeKind> paimon_unsupport_type =
+                        std::vector<orc::TypeKind> {orc::TypeKind::CHAR};
+                unsupported_pushdown_types = &paimon_unsupport_type;
+            }
             std::unique_ptr<OrcReader> orc_reader = OrcReader::create_unique(
                     _profile, _state, *_params, range, 
_state->query_options().batch_size,
-                    _state->timezone(), _io_ctx.get(), 
_state->query_options().enable_orc_lazy_mat);
+                    _state->timezone(), _io_ctx.get(), 
_state->query_options().enable_orc_lazy_mat,
+                    unsupported_pushdown_types);
             if (push_down_predicates) {
                 RETURN_IF_ERROR(_process_late_arrival_conjuncts());
             }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/paimon/PaimonValueConverter.java
 
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/paimon/PaimonValueConverter.java
index 127c4797a46..56b6dcdbdbe 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/planner/external/paimon/PaimonValueConverter.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/planner/external/paimon/PaimonValueConverter.java
@@ -23,9 +23,7 @@ import org.apache.doris.analysis.DecimalLiteral;
 import org.apache.doris.analysis.FloatLiteral;
 import org.apache.doris.analysis.IntLiteral;
 import org.apache.doris.analysis.LiteralExpr;
-import org.apache.doris.analysis.StringLiteral;
 
-import com.google.common.base.Strings;
 import org.apache.paimon.data.BinaryString;
 import org.apache.paimon.data.Decimal;
 import org.apache.paimon.data.Timestamp;
@@ -64,10 +62,8 @@ public class PaimonValueConverter extends 
DataTypeDefaultVisitor<Object> {
     }
 
     public BinaryString visit(CharType charType) {
-        if (expr instanceof StringLiteral) {
-            StringLiteral stringLiteral = (StringLiteral) expr;
-            return 
BinaryString.fromString(Strings.padEnd(stringLiteral.getStringValue(), 
charType.getLength(), ' '));
-        }
+        // Currently, Paimon does not support predicate push-down for char
+        // ref: org.apache.paimon.predicate.PredicateBuilder.convertJavaObject
         return null;
     }
 
diff --git 
a/regression-test/data/external_table_p0/paimon/test_paimon_catalog.out 
b/regression-test/data/external_table_p0/paimon/test_paimon_catalog.out
index dff28c84a9d..e3530354768 100644
--- a/regression-test/data/external_table_p0/paimon/test_paimon_catalog.out
+++ b/regression-test/data/external_table_p0/paimon/test_paimon_catalog.out
@@ -3,10 +3,6 @@
 1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
 10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
 
--- !all_with_parquet --
-2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
-10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
-
 -- !predict_like_1 --
 1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
 10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
@@ -24,7 +20,7 @@
 10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
 
 -- !c1 --
-1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
 
 -- !c2 --
 1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
@@ -74,6 +70,84 @@
 -- !c18 --
 1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
 
+-- !c101 --
+1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
+
+-- !all --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !predict_like_1 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !predict_like_2 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !predict_like_3 --
+
+-- !predict_like_4 --
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !predict_like_5 --
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !c1 --
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
+-- !c2 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c3 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c4 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c5 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c6 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c7 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c8 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c9 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c10 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c11 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c12 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c13 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c14 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c15 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c16 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+
+-- !c18 --
+
+-- !c101 --
+2      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-12-21T10:02:32.747
+10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-12-21T10:02:37.527
+
 -- !c19 --
 1      2       a       b       c
 11     22      aa      bb      cc
@@ -95,9 +169,9 @@
 1      [1111, 2222, 3333]      {"a_test":1}
 
 -- !c25 --
-true   \N      \N      \N
-\N     false   true    \N
 \N     \N      \N      false
+\N     false   true    \N
+true   \N      \N      \N
 
 -- !c26 --
 3333
@@ -125,9 +199,9 @@ true        \N      \N      \N
 4
 
 -- !c31 --
-7
 \N
 \N
+7
 
 -- !c32 --
 10
@@ -140,9 +214,9 @@ true        \N      \N      \N
 15
 
 -- !c34 --
-16
 \N
 \N
+16
 
 -- !c35 --
 18
@@ -155,14 +229,14 @@ true      \N      \N      \N
 21.11
 
 -- !c37 --
+\N
 23.333
 23.333
-\N
 
 -- !c38 --
+\N
 24.44
 24.44
-\N
 
 -- !c39 --
 2023-10-24
@@ -185,39 +259,39 @@ true      \N      \N      \N
 2
 
 -- !c43 --
+\N
 true
 true
-\N
 
 -- !c44 --
 2
-4
 3
+4
 
 -- !c45 --
+\N
 2023-10-24T16:10:40.529
 2023-10-24T18:19:51.670
-\N
 
 -- !c46 --
-1
 \N
 \N
+1
 
 -- !c47 --
-2
 \N
 \N
+2
 
 -- !c48 --
-5
 \N
 \N
+5
 
 -- !c49 --
+\N
 9
 9
-\N
 
 -- !c50 --
 7
@@ -225,9 +299,9 @@ true
 7
 
 -- !c51 --
+\N
 19
 19
-\N
 
 -- !c52 --
 \N
@@ -290,9 +364,9 @@ bbb
 2023-10-24T18:20:16.600
 
 -- !c64 --
-1
 \N
 \N
+1
 
 -- !c65 --
 3
@@ -305,14 +379,14 @@ bbb
 4
 
 -- !c67 --
-6
 \N
 \N
+6
 
 -- !c68 --
-7
 \N
 \N
+7
 
 -- !c69 --
 19
@@ -325,9 +399,9 @@ bbb
 21
 
 -- !c71 --
+\N
 22
 22
-\N
 
 -- !c72 --
 21.11
@@ -360,14 +434,14 @@ aa
 aa
 
 -- !c78 --
+\N
 o
 o
-\N
 
 -- !c79 --
-true
 \N
 \N
+true
 
 -- !c80 --
 bbb
@@ -375,9 +449,9 @@ bbb
 bbb
 
 -- !c80 --
+\N
 2023-10-24T16:10:40.533
 2023-10-24T18:19:51.673
-\N
 
 -- !c80 --
 1
@@ -410,9 +484,9 @@ bbb
 19
 
 -- !c80 --
-21
 \N
 \N
+21
 
 -- !c80 --
 22
@@ -465,16 +539,12 @@ bbb
 bbb
 
 -- !c99 --
+\N
 2023-10-24T16:10:40.533
 2023-10-24T18:19:51.673
-\N
 
 -- !c100 --
 1      [[0, 1, 1], [0, 1, 1], [1, 1, 1]]       [["3", "7", "a"], ["0", "e", 
"2"], ["b", "4", "5"]]     [["77", "83", "1c"], ["af", "f0", "0b"], ["be", 
"d2", "7b"]]    
[["4a3aee3c345936f7a6eeb5307fc79d5f9ee3ae3a5e58edcfd4d40ec3d27353bf7b15a2eb6b6011e9ddf2c2cd1d6d50d6cc20",
 
"00cb283c1a2bb2f3f244f89eafb79effd8aea55d5e68ce9d707250a3b47b65c0ea2b591b7145a56c801b9e6bda853e2f0581",
 
"ae8fbe21e20f32a486757b5254faea09906bf451e096cc7d33b5a6fb56995c1601e7469a674f5e8475a2b86d2a69e02f9438"],
 ["6827f8e65869d476a9e2fdfa03 [...]
 2      [[0, 0, 0], [1, 0, 0], [0, 1, 1]]       [["a", "5", "f"], ["7", "2", 
"3"], ["1", "b", "f"]]     [["11", "a8", "e3"], ["f4", "ee", "c3"], ["0f", 
"c6", "05"]]    
[["b723869515b24e9fbb54503f8a7584f083479998766213b784a9c530cbc0376bd5035054c657437251b85fa3dd41a0483776",
 
"ee780d81d3e9faa36aad06522a09cf9b18e00614c991d2c079243dcc7190f3dd6559e75e2c1992270272d9a9c01e950c7bd4",
 
"6e825a52cdae65786801caae53182956c80f88a48fa258a90d2c93302023c78b83f1dce758615a74731c9eef993a8c1dc4ad"],
 ["2ae97869372970f7ad7d0007a1 [...]
 3      [[1, 0, 0], [1, 0, 1], [1, 0, 1]]       [["c", "6", "4"], ["1", "e", 
"7"], ["7", "1", "d"]]     [["50", "a9", "b0"], ["02", "bf", "3a"], ["0a", 
"1d", "9a"]]    
[["2df05ba6ce8661f0fb9bc88386a1ba67188e3e99a4142a0703e1cd8bdf041fbc20131e50bea2a9891498c638ebac842d3d46",
 
"f6fecf3a4263ed8d4c5b63e4b3d9f4084b83835d9fba2046bf48d0a8068f2044c48271a1e9726741a09badea72c37cf18de3",
 
"d23af3266db4eda12673f5c451d36343ba1cea00fbfeeff2165de40e834778eb96a1199cb523dd394b4f08824f6af2a7d894"],
 ["dc00e9b27b9540e170caf93805 [...]
 
--- !c101 --
-1      2       3       4       5       6       7       8       9.1     10.1    
11.10   2020-02-02      13str   14varchar       a       true    aaaa    
2023-08-13T09:32:38.530
-10     20      30      40      50      60      70      80      90.1    100.1   
110.10  2020-03-02      130str  140varchar      b       false   bbbb    
2023-08-14T08:32:52.821
-
diff --git 
a/regression-test/suites/external_table_p0/paimon/test_paimon_catalog.groovy 
b/regression-test/suites/external_table_p0/paimon/test_paimon_catalog.groovy
index ce8c9b5e849..ad7f04ee40b 100644
--- a/regression-test/suites/external_table_p0/paimon/test_paimon_catalog.groovy
+++ b/regression-test/suites/external_table_p0/paimon/test_paimon_catalog.groovy
@@ -57,120 +57,121 @@ suite("test_paimon_catalog", 
"p0,external,doris,external_docker,external_docker_
 
     String enabled = context.config.otherConfigs.get("enablePaimonTest")
         if (enabled != null && enabled.equalsIgnoreCase("true")) {
-            def all = """select * from all_table order by c1;"""
-            def all_with_parquet = """select * from all_table_with_parquet 
order by c1;"""
-            def predict_like_1 = """select * from all_table where c13 like 
'%3%' order by c1"""
-            def predict_like_2 = """select * from all_table where c13 like 
'13%' order by c1"""
-            def predict_like_3 = """select * from all_table where c13 like 
'13' order by c1"""
-            def predict_like_4 = """select * from all_table where c13 like 
'130str' order by c1"""
-            def predict_like_5 = """select * from all_table where c13 like 
'130str%' order by c1"""
-            def c1 = """select * from all_table where c1=1;"""
-            def c2 = """select * from all_table where c2=2;"""
-            def c3 = """select * from all_table where c3=3;"""
-            def c4 = """select * from all_table where c4=4;"""
-            def c5 = """select * from all_table where c5=5;"""
-            def c6 = """select * from all_table where c6=6;"""
-            def c7 = """select * from all_table where c7=7;"""
-            def c8 = """select * from all_table where c8=8;"""
-            def c9 = """select * from all_table where c9<10;"""
-            def c10 = """select * from all_table where c10=10.1;"""
-            def c11 = """select * from all_table where c11=11.1;"""
-            def c12 = """select * from all_table where c12='2020-02-02';"""
-            def c13 = """select * from all_table where c13='13str';"""
-            def c14 = """select * from all_table where c14='14varchar';"""
-            def c15 = """select * from all_table where c15='a';"""
-            def c16 = """select * from all_table where c16=true;"""
-            def c18 = """select * from all_table where c18='2023-08-13 
09:32:38.53';"""
+
+            def qt_all_type = { String table_name ->
+                qt_all """select * from ${table_name} order by c1"""
+                qt_predict_like_1 """select * from ${table_name} where c13 
like '%3%' order by c1"""
+                qt_predict_like_2 """select * from ${table_name} where c13 
like '13%' order by c1"""
+                qt_predict_like_3 """select * from ${table_name} where c13 
like '13' order by c1"""
+                qt_predict_like_4 """select * from ${table_name} where c13 
like '130str' order by c1"""
+                qt_predict_like_5 """select * from ${table_name} where c13 
like '130str%' order by c1"""
+                qt_c1 """select * from ${table_name} where c1=10;"""
+                qt_c2 """select * from ${table_name} where c2=2;"""
+                qt_c3 """select * from ${table_name} where c3=3;"""
+                qt_c4 """select * from ${table_name} where c4=4;"""
+                qt_c5 """select * from ${table_name} where c5=5;"""
+                qt_c6 """select * from ${table_name} where c6=6;"""
+                qt_c7 """select * from ${table_name} where c7=7;"""
+                qt_c8 """select * from ${table_name} where c8=8;"""
+                qt_c9 """select * from ${table_name} where c9<10;"""
+                qt_c10  """select * from ${table_name} where c10=10.1;"""
+                qt_c11  """select * from ${table_name} where c11=11.1;"""
+                qt_c12  """select * from ${table_name} where 
c12='2020-02-02';"""
+                qt_c13  """select * from ${table_name} where c13='13str';"""
+                qt_c14  """select * from ${table_name} where 
c14='14varchar';"""
+                qt_c15  """select * from ${table_name} where c15='a';"""
+                qt_c16  """select * from ${table_name} where c16=true;"""
+                qt_c18  """select * from ${table_name} where c18='2023-08-13 
09:32:38.53';"""
+                qt_c101 """select * from ${table_name} where c1 is not null or 
c2 is not null order by c1"""
+            }
+
             def c19 = """select * from auto_bucket order by user_id;"""
             def c20 = """select * from auto_bucket where dt="b";"""
             def c21 = """select * from auto_bucket where dt="b" and hh="c";"""
             def c22 = """select * from auto_bucket where dt="d";"""
             def c23 = """select * from complex_tab order by c1;"""
             def c24 = """select * from complex_tab where c1=1;"""
-            def c26 = """select array_max(c2) from complex_tab"""
-            def c25 = """select c3['a_test'], c3['b_test'], c3['bbb'], 
c3['ccc'] from complex_tab"""
+            def c25 = """select c3['a_test'], c3['b_test'], c3['bbb'], 
c3['ccc'] from complex_tab order by c3['a_test'], c3['b_test']"""
+            def c26 = """select array_max(c2) c from complex_tab order by c"""
+            def c27 = """select * from complex_all order by c1"""
+            def c28 = """select array_min(c2) c from complex_all order by c"""
+            def c29 = """select array_min(c3) c from complex_all order by c"""
+            def c30= """select array_min(c4) c from complex_all order by c"""
+            def c31= """select array_min(c5) c from complex_all order by c"""
+            def c32= """select array_min(c6) c from complex_all order by c"""
+            def c33= """select array_min(c7) c from complex_all order by c"""
+            def c34= """select array_min(c8) c from complex_all order by c"""
+            def c35= """select array_min(c9) c from complex_all order by c"""
+            def c36= """select array_min(c10) c from complex_all order by c"""
+            def c37= """select array_max(c11) c from complex_all order by c"""
+            def c38= """select array_max(c12) c from complex_all order by c"""
+            def c39= """select array_max(c13) c from complex_all order by c"""
+            def c40= """select array_size(c14) c from complex_all order by c"""
+            def c41= """select array_size(c15) c from complex_all order by c"""
+            def c42= """select array_size(c16) c from complex_all order by c"""
+            def c43= """select array_max(c17) c from complex_all order by c"""
+            def c44= """select array_size(c18) c from complex_all order by c"""
+            def c45= """select array_max(c19) c from complex_all order by c"""
 
-            def c27 = """select * from complex_all order by c1;"""
-            def c28 = """select array_min(c2) from complex_all"""
-            def c29 = """select array_min(c3) from complex_all"""
-            def c30= """select array_min(c4) from complex_all"""
-            def c31= """select array_min(c5) from complex_all"""
-            def c32= """select array_min(c6) from complex_all"""
-            def c33= """select array_min(c7) from complex_all"""
-            def c34= """select array_min(c8) from complex_all"""
-            def c35= """select array_min(c9) from complex_all"""
-            def c36= """select array_min(c10) from complex_all"""
-            def c37= """select array_max(c11) from complex_all"""
-            def c38= """select array_max(c12) from complex_all"""
-            def c39= """select array_max(c13) from complex_all"""
-            def c40= """select array_size(c14) from complex_all"""
-            def c41= """select array_size(c15) from complex_all"""
-            def c42= """select array_size(c16) from complex_all"""
-            def c43= """select array_max(c17) from complex_all"""
-            def c44= """select array_size(c18) from complex_all"""
-            def c45= """select array_max(c19) from complex_all"""
+            def c46= """select c20[0] c from complex_all order by c"""
+            def c47= """select c21[0] c from complex_all order by c"""
+            def c48= """select c22[0] c from complex_all order by c"""
+            def c49= """select c23[0] c from complex_all order by c"""
+            def c50= """select c24[1] c from complex_all order by c"""
+            def c51= """select c25[0] c from complex_all order by c"""
+            def c52= """select c26[0] c from complex_all order by c"""
+            def c53= """select c27[0] c from complex_all order by c"""
+            def c54= """select c28[0] c from complex_all order by c"""
+            def c55= """select c29[0] c from complex_all order by c"""
+            def c56= """select c30[0] c from complex_all order by c"""
+            def c57= """select c31[0] c from complex_all order by c"""
+            def c58= """select c32[0] c from complex_all order by c"""
+            def c59= """select c33[0] c from complex_all order by c"""
+            def c60= """select c34[0] c from complex_all order by c"""
+            def c61= """select c35[0] c from complex_all order by c"""
+            def c62= """select c36[0] c from complex_all order by c"""
+            def c63= """select c37[0] c from complex_all order by c"""
 
-            def c46= """select c20[0] from complex_all"""
-            def c47= """select c21[0] from complex_all"""
-            def c48= """select c22[0] from complex_all"""
-            def c49= """select c23[0] from complex_all"""
-            def c50= """select c24[1] from complex_all"""
-            def c51= """select c25[0] from complex_all"""
-            def c52= """select c26[0] from complex_all"""
-            def c53= """select c27[0] from complex_all"""
-            def c54= """select c28[0] from complex_all"""
-            def c55= """select c29[0] from complex_all"""
-            def c56= """select c30[0] from complex_all"""
-            def c57= """select c31[0] from complex_all"""
-            def c58= """select c32[0] from complex_all"""
-            def c59= """select c33[0] from complex_all"""
-            def c60= """select c34[0] from complex_all"""
-            def c61= """select c35[0] from complex_all"""
-            def c62= """select c36[0] from complex_all"""
-            def c63= """select c37[0] from complex_all"""
+            def c64= """select c38[2] c from complex_all order by c"""
+            def c65= """select c39[4] c from complex_all order by c"""
+            def c66= """select c40[5] c from complex_all order by c"""
+            def c67= """select c41[7] c from complex_all order by c"""
+            def c68= """select c42[9] c from complex_all order by c"""
+            def c69= """select c43[10] c from complex_all order by c"""
+            def c70= """select c44[12] c from complex_all order by c"""
+            def c71= """select c45[13] c from complex_all order by c"""
+            def c72= """select c46[14] c from complex_all order by c"""
+            def c73= """select c47[16] c from complex_all order by c"""
+            def c74= """select c48[17] c from complex_all order by c"""
+            def c75= """select c49[19] c from complex_all order by c"""
+            def c76= """select c50[21] c from complex_all order by c"""
+            def c77= """select c51[22] c from complex_all order by c"""
+            def c78= """select c52[25] c from complex_all order by c"""
+            def c79= """select c53[27] c from complex_all order by c"""
+            def c80= """select c54[29] c from complex_all order by c"""
+            def c81= """select c55[30] c from complex_all order by c"""
 
-            def c64= """select c38[2] from complex_all"""
-            def c65= """select c39[4] from complex_all"""
-            def c66= """select c40[5] from complex_all;"""
-            def c67= """select c41[7] from complex_all;"""
-            def c68= """select c42[9] from complex_all"""
-            def c69= """select c43[10] from complex_all"""
-            def c70= """select c44[12] from complex_all"""
-            def c71= """select c45[13] from complex_all"""
-            def c72= """select c46[14] from complex_all;"""
-            def c73= """select c47[16] from complex_all;"""
-            def c74= """select c48[17] from complex_all;"""
-            def c75= """select c49[19] from complex_all;"""
-            def c76= """select c50[21] from complex_all;"""
-            def c77= """select c51[22] from complex_all;"""
-            def c78= """select c52[25] from complex_all;"""
-            def c79= """select c53[27] from complex_all;"""
-            def c80= """select c54[29] from complex_all;"""
-            def c81= """select c55[30] from complex_all;"""
-
-            def c82= """select c56[2] from complex_all"""
-            def c83= """select c57[4] from complex_all"""
-            def c84= """select c58[5] from complex_all;"""
-            def c85= """select c59[7] from complex_all;"""
-            def c86= """select c60[9] from complex_all"""
-            def c87= """select c61[10] from complex_all"""
-            def c88= """select c62[12] from complex_all"""
-            def c89= """select c63[13] from complex_all"""
-            def c90= """select c64[14] from complex_all;"""
-            def c91= """select c65[16] from complex_all;"""
-            def c92= """select c66[17] from complex_all;"""
-            def c93= """select c67[19] from complex_all;"""
-            def c94= """select c68[21] from complex_all;"""
-            def c95= """select c69[22] from complex_all;"""
-            def c96= """select c70[25] from complex_all;"""
-            def c97= """select c71[27] from complex_all;"""
-            def c98= """select c72[29] from complex_all;"""
-            def c99= """select c73[30] from complex_all;"""
+            def c82= """select c56[2] c from complex_all order by c"""
+            def c83= """select c57[4] c from complex_all order by c"""
+            def c84= """select c58[5] c from complex_all order by c"""
+            def c85= """select c59[7] c from complex_all order by c"""
+            def c86= """select c60[9] c from complex_all order by c"""
+            def c87= """select c61[10] c from complex_all order by c"""
+            def c88= """select c62[12] c from complex_all order by c"""
+            def c89= """select c63[13] c from complex_all order by c"""
+            def c90= """select c64[14] c from complex_all order by c"""
+            def c91= """select c65[16] c from complex_all order by c"""
+            def c92= """select c66[17] c from complex_all order by c"""
+            def c93= """select c67[19] c from complex_all order by c"""
+            def c94= """select c68[21] c from complex_all order by c"""
+            def c95= """select c69[22] c from complex_all order by c"""
+            def c96= """select c70[25] c from complex_all order by c"""
+            def c97= """select c71[27] c from complex_all order by c"""
+            def c98= """select c72[29] c from complex_all order by c"""
+            def c99= """select c73[30] c from complex_all order by c"""
 
             def c100= """select * from array_nested order by c1;"""
 
-            def c101="""select * from all_table where c1 is not null or c2 is 
not null order by c1"""
-
             String hdfs_port = context.config.otherConfigs.get("hdfs_port")
             String catalog_name = "paimon1"
             String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
@@ -183,30 +184,9 @@ suite("test_paimon_catalog", 
"p0,external,doris,external_docker,external_docker_
             );"""
             sql """use `${catalog_name}`.`db1`"""
 
-            qt_all all
-            qt_all_with_parquet all_with_parquet
-            qt_predict_like_1 predict_like_1
-            qt_predict_like_2 predict_like_2
-            qt_predict_like_3 predict_like_3
-            qt_predict_like_4 predict_like_4
-            qt_predict_like_5 predict_like_5
-            qt_c1 c1
-            qt_c2 c2
-            qt_c3 c3
-            qt_c4 c4
-            qt_c5 c5
-            qt_c6 c6
-            qt_c7 c7
-            qt_c8 c8
-            qt_c9 c9
-            qt_c10 c10
-            qt_c11 c11
-            qt_c12 c12
-            qt_c13 c13
-            qt_c14 c14
-            qt_c15 c15
-            qt_c16 c16
-            qt_c18 c18
+            qt_all_type("all_table")
+            qt_all_type("all_table_with_parquet")
+
             qt_c19 c19
             qt_c20 c20
             qt_c21 c21
@@ -289,7 +269,6 @@ suite("test_paimon_catalog", 
"p0,external,doris,external_docker,external_docker_
             qt_c98 c98
             qt_c99 c99
             qt_c100 c100
-            qt_c101 c101
 
             // test view from jion paimon
             sql """ switch internal """
@@ -310,3 +289,5 @@ suite("test_paimon_catalog", 
"p0,external,doris,external_docker,external_docker_
             // qt_view1 view1
         }
 }
+
+
diff --git 
a/regression-test/suites/external_table_p2/paimon/paimon_timestamp_types.groovy 
b/regression-test/suites/external_table_p2/paimon/paimon_timestamp_types.groovy
index dbb1f1d038c..0a96a7ad187 100644
--- 
a/regression-test/suites/external_table_p2/paimon/paimon_timestamp_types.groovy
+++ 
b/regression-test/suites/external_table_p2/paimon/paimon_timestamp_types.groovy
@@ -32,7 +32,7 @@ suite("paimon_timestamp_types", 
"p2,external,paimon,external_remote,external_rem
             create catalog if not exists ${catalog_name} properties (
                 "type" = "paimon",
                 "paimon.catalog.type" = "filesystem",
-                "warehouse" = "hdfs://${hiveHost}/${hivePort}/paimon/paimon1",
+                "warehouse" = "hdfs://${hiveHost}:${hivePort}/paimon/paimon1",
                 "hadoop.username" = "${user_name}"
             );
         """


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to