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