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 6a27e215623 [feat](function) Add function of deduplicate_map (#58403) 
(#58537)
6a27e215623 is described below

commit 6a27e2156230b619c0189af95f6df90916529bb9
Author: Jerry Hu <[email protected]>
AuthorDate: Tue Dec 2 09:43:25 2025 +0800

    [feat](function) Add function of deduplicate_map (#58403) (#58537)
    
    Issue Number: close #xxx
    
    PICK PR: #58403
    
    Problem Summary:
    
    None
    
    - Test <!-- At least one of them must be included. -->
        - [ ] Regression test
        - [ ] Unit Test
        - [ ] Manual test (add detailed scripts or steps below)
        - [ ] No need to test or manual test. Explain why:
    - [ ] This is a refactor/code format and no logic has been changed.
    - [ ] Previous test can cover this change. - [ ] No code files have been
    changed. - [ ] Other reason <!-- Add your reason? -->
    
    - Behavior changed:
        - [ ] No.
        - [ ] Yes. <!-- Explain the behavior change -->
    
    - Does this need documentation?
        - [ ] No.
    - [ ] Yes. <!-- Add document PR link here. eg:
    https://github.com/apache/doris-website/pull/1214 -->
    
    - [ ] Confirm the release note
    - [ ] Confirm test cases
    - [ ] Confirm document
    - [ ] Add branch pick label <!-- Add branch pick label that this PR
    should merge into -->
    
    ### What problem does this PR solve?
    
    Issue Number: close #xxx
    
    Related PR: #xxx
    
    Problem Summary:
    
    ### Release note
    
    None
    
    ### Check List (For Author)
    
    - Test <!-- At least one of them must be included. -->
        - [ ] Regression test
        - [ ] Unit Test
        - [ ] Manual test (add detailed scripts or steps below)
        - [ ] No need to test or manual test. Explain why:
    - [ ] This is a refactor/code format and no logic has been changed.
            - [ ] Previous test can cover this change.
            - [ ] No code files have been changed.
            - [ ] Other reason <!-- Add your reason?  -->
    
    - Behavior changed:
        - [ ] No.
        - [ ] Yes. <!-- Explain the behavior change -->
    
    - Does this need documentation?
        - [ ] No.
    - [ ] Yes. <!-- Add document PR link here. eg:
    https://github.com/apache/doris-website/pull/1214 -->
    
    ### Check List (For Reviewer who merge this PR)
    
    - [ ] Confirm the release note
    - [ ] Confirm test cases
    - [ ] Confirm document
    - [ ] Add branch pick label <!-- Add branch pick label that this PR
    should merge into -->
---
 be/src/vec/columns/column_map.cpp                  |   4 +-
 be/src/vec/exec/format/orc/vorc_reader.cpp         |   2 +-
 .../exec/format/parquet/vparquet_column_reader.cpp |   1 -
 be/src/vec/exec/jni_connector.cpp                  |   2 +-
 be/src/vec/functions/function_map.cpp              |  27 ++++
 be/test/vec/exec/orc/orc_reader_fill_data_test.cpp |  12 +-
 be/test/vec/function/function_map_test.cpp         |  83 ++++++++++++
 .../doris/catalog/BuiltinScalarFunctions.java      |   2 +
 .../functions/scalar/DeduplicateMap.java           |  70 ++++++++++
 .../one_level_nestedtypes_with_s3data.out          |  20 +--
 ...t => one_level_nestedtypes_with_s3data.out.txt} |  20 +--
 .../paimon/test_paimon_catalog.out                 |  24 ++--
 .../one_level_nestedtypes_with_s3data.groovy       | 148 ++++++++++++++++-----
 13 files changed, 337 insertions(+), 78 deletions(-)

diff --git a/be/src/vec/columns/column_map.cpp 
b/be/src/vec/columns/column_map.cpp
index 416bd5628dd..9be40b1a2c3 100644
--- a/be/src/vec/columns/column_map.cpp
+++ b/be/src/vec/columns/column_map.cpp
@@ -517,8 +517,8 @@ Status ColumnMap::deduplicate_keys(bool recursive) {
             values_column_ = 
(assert_cast<ColumnNullable&>(*values_column)).get_nested_column_ptr();
         }
 
-        if (const auto* values_map = 
check_and_get_column<ColumnMap>(values_column_.get())) {
-            
RETURN_IF_ERROR((const_cast<ColumnMap*>(values_map))->deduplicate_keys(recursive));
+        if (auto* values_map = 
check_and_get_column<ColumnMap>(values_column_.get())) {
+            
RETURN_IF_ERROR(const_cast<ColumnMap*>(values_map)->deduplicate_keys(recursive));
         }
     }
 
diff --git a/be/src/vec/exec/format/orc/vorc_reader.cpp 
b/be/src/vec/exec/format/orc/vorc_reader.cpp
index 14b9dbd11a1..b8be037363a 100644
--- a/be/src/vec/exec/format/orc/vorc_reader.cpp
+++ b/be/src/vec/exec/format/orc/vorc_reader.cpp
@@ -1813,7 +1813,7 @@ Status OrcReader::_fill_doris_data_column(const 
std::string& col_name,
         RETURN_IF_ERROR(_orc_column_to_doris_column<false>(
                 value_col_name, doris_value_column, doris_value_type, 
root_node->get_value_node(),
                 orc_value_type, orc_map->elements.get(), element_size));
-        return doris_map.deduplicate_keys();
+        return Status::OK();
     }
     case PrimitiveType::TYPE_STRUCT: {
         if (orc_column_type->getKind() != orc::TypeKind::STRUCT) {
diff --git a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp 
b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
index 170a29b3e94..215f3ec2619 100644
--- a/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
+++ b/be/src/vec/exec/format/parquet/vparquet_column_reader.cpp
@@ -805,7 +805,6 @@ Status MapColumnReader::read_column_data(
     // fill offset and null map
     fill_array_offset(_field_schema, map.get_offsets(), null_map_ptr, 
_key_reader->get_rep_level(),
                       _key_reader->get_def_level());
-    RETURN_IF_ERROR(map.deduplicate_keys());
     DCHECK_EQ(key_column->size(), map.get_offsets().back());
 
     return Status::OK();
diff --git a/be/src/vec/exec/jni_connector.cpp 
b/be/src/vec/exec/jni_connector.cpp
index 7168639c59a..b5870a3b5c3 100644
--- a/be/src/vec/exec/jni_connector.cpp
+++ b/be/src/vec/exec/jni_connector.cpp
@@ -485,7 +485,7 @@ Status JniConnector::_fill_map_column(TableMetaAddress& 
address, MutableColumnPt
                                  map_offsets[origin_size + num_rows - 1] - 
start_offset));
     RETURN_IF_ERROR(_fill_column(address, value_column, value_type,
                                  map_offsets[origin_size + num_rows - 1] - 
start_offset));
-    return map.deduplicate_keys();
+    return Status::OK();
 }
 
 Status JniConnector::_fill_struct_column(TableMetaAddress& address, 
MutableColumnPtr& doris_column,
diff --git a/be/src/vec/functions/function_map.cpp 
b/be/src/vec/functions/function_map.cpp
index 8120f6e7f3b..d902e63ff13 100644
--- a/be/src/vec/functions/function_map.cpp
+++ b/be/src/vec/functions/function_map.cpp
@@ -873,6 +873,32 @@ private:
     }
 };
 
+class FunctionDeduplicateMap : public IFunction {
+public:
+    static constexpr auto name = "deduplicate_map";
+    static FunctionPtr create() { return 
std::make_shared<FunctionDeduplicateMap>(); }
+
+    String get_name() const override { return name; }
+    size_t get_number_of_arguments() const override { return 1; }
+    bool use_default_implementation_for_nulls() const override { return true; }
+
+    DataTypePtr get_return_type_impl(const DataTypes& arguments) const 
override {
+        return arguments[0];
+    }
+
+    Status execute_impl(FunctionContext* context, Block& block, const 
ColumnNumbers& arguments,
+                        uint32_t result, size_t input_rows_count) const 
override {
+        DCHECK_EQ(arguments.size(), 1);
+        auto col_ptr = 
block.get_by_position(arguments[0]).column->clone_resized(input_rows_count);
+        auto& col_map = assert_cast<ColumnMap&>(*col_ptr);
+        RETURN_IF_ERROR(col_map.deduplicate_keys());
+        block.replace_by_position(result, std::move(col_ptr));
+        return Status::OK();
+    }
+
+private:
+};
+
 void register_function_map(SimpleFunctionFactory& factory) {
     factory.register_function<FunctionMap>();
     factory.register_function<FunctionMapContains<true>>();
@@ -882,6 +908,7 @@ void register_function_map(SimpleFunctionFactory& factory) {
     factory.register_function<FunctionMapEntries>();
     factory.register_function<FunctionStrToMap>();
     factory.register_function<FunctionMapContainsEntry>();
+    factory.register_function<FunctionDeduplicateMap>();
 }
 
 } // namespace doris::vectorized
diff --git a/be/test/vec/exec/orc/orc_reader_fill_data_test.cpp 
b/be/test/vec/exec/orc/orc_reader_fill_data_test.cpp
index 01e31ac66fc..bb231ce97eb 100644
--- a/be/test/vec/exec/orc/orc_reader_fill_data_test.cpp
+++ b/be/test/vec/exec/orc/orc_reader_fill_data_test.cpp
@@ -470,12 +470,12 @@ TEST_F(OrcReaderFillDataTest, ComplexTypeConversionTest) {
                   "|                 {}|\n"
                   "|            {200:6}|\n"
                   "|            {300:9}|\n"
-                  "|           {400:12}|\n"
-                  "|           {500:15}|\n"
-                  "|           {600:18}|\n"
-                  "|           {700:21}|\n"
-                  "|           {800:24}|\n"
-                  "|           {900:27}|\n"
+                  "|   {400:12, 400:12}|\n"
+                  "|   {500:15, 500:15}|\n"
+                  "|{600:18, 600:18,...|\n"
+                  "|{700:21, 700:21,...|\n"
+                  "|{800:24, 800:24,...|\n"
+                  "|{900:27, 900:27,...|\n"
                   "+-------------------+\n");
     }
 }
diff --git a/be/test/vec/function/function_map_test.cpp 
b/be/test/vec/function/function_map_test.cpp
new file mode 100644
index 00000000000..878033e4195
--- /dev/null
+++ b/be/test/vec/function/function_map_test.cpp
@@ -0,0 +1,83 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+#include <fmt/core.h>
+#include <gtest/gtest.h>
+
+#include <string>
+
+#include "function_test_util.h"
+#include "vec/columns/column_array.h"
+#include "vec/core/types.h"
+#include "vec/data_types/data_type_map.h"
+
+namespace doris::vectorized {
+
+TEST(FunctionMapTest, deduplicate_map) {
+    const std::string func_name = "deduplicate_map";
+
+    auto type_map = 
std::make_shared<DataTypeMap>(std::make_shared<DataTypeString>(),
+                                                  
std::make_shared<DataTypeInt32>());
+    auto argument_template = ColumnsWithTypeAndName {{nullptr, type_map, 
"map"}};
+
+    auto function = SimpleFunctionFactory::instance().get_function(
+            func_name, argument_template, type_map, {true},
+            BeExecVersionManager::get_newest_version());
+
+    ASSERT_TRUE(function != nullptr);
+
+    Block block;
+
+    auto key_column = ColumnString::create();
+    auto value_column = ColumnInt32::create();
+    auto offset_column = ColumnArray::ColumnOffsets::create();
+
+    const size_t count = 1024;
+    for (size_t i = 0; i < count; ++i) {
+        // keys with duplicates
+        auto value = int32_t(i % 8);
+        auto key = fmt::format("key_{}", value);
+
+        key_column->insert_data(key.data(), key.size());
+        value_column->insert_data(reinterpret_cast<const char*>(&value), 4);
+    }
+
+    const size_t rows = 32;
+    size_t offset = 0;
+    for (size_t i = 0; i < rows; ++i) {
+        offset += count / rows;
+        offset_column->insert_data(reinterpret_cast<const char*>(&offset), 
sizeof(offset));
+    }
+
+    auto column_map = ColumnMap::create(std::move(key_column), 
std::move(value_column),
+                                        std::move(offset_column));
+    block.insert({std::move(column_map), type_map, "map"});
+    block.insert({nullptr, type_map, "result"});
+    uint32_t result = 1;
+
+    auto st = function->execute(nullptr, block, {0}, result, rows);
+    ASSERT_TRUE(st.ok()) << "execute failed: " << st.to_string();
+
+    auto result_column = block.get_by_position(result).column;
+    auto& result_map_column = assert_cast<const ColumnMap&>(*result_column);
+    for (size_t i = 0; i < rows; ++i) {
+        auto map_size = result_map_column.get_offsets()[i] -
+                        (i == 0 ? 0 : result_map_column.get_offsets()[i - 1]);
+        ASSERT_EQ(map_size, 8) << "deduplicate map failed at row " << i;
+    }
+}
+} // namespace doris::vectorized
\ No newline at end of file
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
index e8730d5a538..2d391a02c51 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BuiltinScalarFunctions.java
@@ -177,6 +177,7 @@ import 
org.apache.doris.nereids.trees.expressions.functions.scalar.DaysDiff;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.DaysSub;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.Dceil;
 import 
org.apache.doris.nereids.trees.expressions.functions.scalar.DecodeAsVarchar;
+import 
org.apache.doris.nereids.trees.expressions.functions.scalar.DeduplicateMap;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.Degrees;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.Dexp;
 import org.apache.doris.nereids.trees.expressions.functions.scalar.Dfloor;
@@ -714,6 +715,7 @@ public class BuiltinScalarFunctions implements 
FunctionHelper {
             scalar(DaysSub.class, "days_sub", "date_sub", "subdate"),
             scalar(Dceil.class, "dceil"),
             scalar(DecodeAsVarchar.class, "decode_as_varchar"),
+            scalar(DeduplicateMap.class, "deduplicate_map"),
             scalar(Degrees.class, "degrees"),
             scalar(Dexp.class, "dexp"),
             scalar(Dfloor.class, "dfloor"),
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DeduplicateMap.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DeduplicateMap.java
new file mode 100644
index 00000000000..d852f22cf4b
--- /dev/null
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/DeduplicateMap.java
@@ -0,0 +1,70 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.trees.expressions.functions.scalar;
+
+import org.apache.doris.catalog.FunctionSignature;
+import org.apache.doris.nereids.trees.expressions.Expression;
+import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import org.apache.doris.nereids.types.MapType;
+import org.apache.doris.nereids.types.coercion.AnyDataType;
+import org.apache.doris.nereids.types.coercion.FollowToAnyDataType;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * ScalarFunction 'deduplicate_map'.
+ */
+public class DeduplicateMap extends ScalarFunction
+        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable {
+
+    public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+            FunctionSignature.ret(MapType.of(new FollowToAnyDataType(0), new 
FollowToAnyDataType(1))).args(MapType.of(
+                    new AnyDataType(0), new AnyDataType(1)))
+    );
+
+    /**
+     * constructor with 1 argument.
+     */
+    public DeduplicateMap(Expression arg) {
+        super("deduplicate_map", arg);
+    }
+
+    /** constructor for withChildren and reuse signature */
+    public DeduplicateMap(ScalarFunctionParams functionParams) {
+        super(functionParams);
+    }
+
+    /**
+     * withChildren.
+     */
+    @Override
+    public DeduplicateMap withChildren(List<Expression> children) {
+        Preconditions.checkArgument(children.size() == 1);
+        return new DeduplicateMap(getFunctionParams(children));
+    }
+
+    @Override
+    public List<FunctionSignature> getSignatures() {
+        return SIGNATURES;
+    }
+}
diff --git 
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
 
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
index 2db95a0fde9..f78c1805b1e 100644
--- 
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
+++ 
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
@@ -2805,16 +2805,16 @@ $Z~+\\/gje9gc=y=JtG^EMBX?Y7g;Mqy,DtDPP~GP
 (oV%,ZE=mskl8o<H4ivb7RS#G-59tD`Y3@&1?/h7!,,R8:4k4BW/.:@PlBs<_Cis9rj
 
 -- !sql_s3 --
--6777072274442080184   {1:-26, 0:15}   {-125:-28936, 11:6197, 60:4949, 
-70:-23123, 113:-6139, -57:17102, -89:-16419, 51:-18321, -114:-6861, 
-30:-17942, -60:12876, 41:56, -46:32549, 62:2589, 2:-27049, 45:29643, 63:25953, 
-44:44, 47:-26508, -80:27422, 127:-7300, 119:22338, 109:-675, -87:29121, 
-3:-9433, 54:15774, 108:8928, -94:10616, -86:7200, 101:-13183, -82:-29375, 
-116:9491, -99:-31508, -15:20162, -75:31245, -35:-2542, 96:-6427, 49:-3333, 
-54:8803, 24:-31698, -90:7247, -111:14614, 114:21946 [...]
--7160127611483384577   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
--7238024935487081628   {0:-74, 1:32}   {71:3815, 43:31606, 52:1801, -94:3718, 
-41:16460, 104:-13893, 74:13591, 117:-3157, 67:-4619, -107:6142, -63:22542, 
73:7410, -19:-22611, -25:18987, -16:-12258, 0:-29473, 87:21859, 14:16205, 
86:7619, -24:-19542, -1:32206, 20:9509, 18:31606, 32:18957, 17:4581, 
-34:-30291, -27:-20078, 46:14162, 59:20222, -75:-11778, -62:-30937, -11:-9886, 
39:12041, -93:-523, 48:-19350, 60:26015, -77:-18030, 22:-22261, 119:20296, 
-6:-2752, -89:5992, -28:-23384, 7:-9554, 62:8 [...]
--7255392008719176367   {0:-8, 1:116}   {38:-22938, 114:-21453, 127:7282, 
-37:2542, -84:-13826, 94:-1516, 84:22023, -61:9811, -109:21976, 72:-16733, 
62:28846, 2:-2541, 76:29430, 22:21984, 30:-32320, -111:26414, 89:18424, 
-67:16571, 87:3701, -70:15289, 63:-26554, 26:-5462, -81:-12948, -22:-29346, 
83:10853, -127:-29350, -73:-16664, 110:-18478, 12:17913, 101:-14838, 36:30608, 
-54:-11372, 24:-14972, -6:12083, -116:8333, 50:-27794, -94:-5541, -49:-1194, 
31:-13000, 19:-26909, -112:-11155, -95:8985, [...]
--7818940155827210954   {0:-5, 1:-109}  {55:-1737, 98:14748, -116:-7149, 
42:-2304, -69:-14871, 124:-4756, -74:-23438, 51:8705, -106:27538, -95:6528, 
-9:-7390, 110:-5125, 89:-11365, 34:-30268, 3:-22587, 84:-28810, 33:7559, 
-35:2280, 92:-30974, 43:19999, -71:24191, 104:5836, 122:-27795, -47:8058, 
-10:21736, -24:-5098, -28:10350, -88:-23265, -118:26866, -111:13561, -67:8162, 
-107:12238, 41:-3049, 23:30913, -41:-12528, 12:31530, 62:8742, -125:-21707, 
-5:-19893, -100:-32758, 14:-5548, 74:-12018,  [...]
--8049900041572605215   {1:-94, 0:-71}  {-59:-30794, -5:-17656, 101:-1787, 
-22:-455, 90:19616, -75:-6450, 21:12655, 41:-9499, -55:18763, -112:-13391, 
-19:31593, -46:29421, 27:16920, -67:-22531, -18:-11647, 91:-23328, 50:8055, 
64:-31180, 99:30580, -38:-11939, -48:30503, -110:16076, -2:32445, -85:-30546, 
-61:14666, -96:-21466, 17:21337, 109:8357, 115:13503, 69:-92, 118:18969, 
19:20050, -62:30444, 66:-8713, -74:-9555, 35:2120, 123:25014, 78:-13563, 
96:25123, -29:13555, -68:-935, -37:26687, 68:2 [...]
--8363595955396323962   {1:88, 0:60}    {-103:-23967, 117:-22927, 42:29869, 
-82:6522, -106:-2629, 29:28568, 100:4465, -112:-18765, -89:-15515, -55:11477, 
-93:-15657, 122:-27427, -120:24265, 12:2981, 53:10159, 54:6070, 67:19344, 
-72:-19512, -35:-1316, -91:12717, 112:-5448, 71:2189, -83:29576, -98:-15893, 
51:18207, -111:962, -29:17366, -109:-29581, -116:-8412, 61:-3591, 46:6865, 
-95:-26760, 57:5085, -4:-13638, 39:-25967, -53:-12681, -92:-10716, -78:-10370, 
3:-29855, 28:29184, -59:-11743, -28:-24 [...]
--8435279828593048652   {1:-84, 0:-122} {-61:20586, -65:-21319, -5:10157, 
-42:-11448, 108:30435, 32:27996, -70:-158, 27:-6306, 71:31150, 59:28539, 
86:-23363, 96:5515, -101:815, -109:-16879, 93:18247, -87:-14019, -75:18629, 
110:-3226, -45:26794, 29:-909, -100:25472, -40:27780, -98:-21090, 55:-22077, 
-103:24125, 83:5427, -120:23967, 13:-2463, 116:-30394, 42:2415, 114:28546, 
87:-4585, 49:28465, -112:-20263, 62:-21074, -12:17054, -60:-14140, -53:13717, 
-116:12882, 5:-6584, -51:-9718, -77:14903, [...]
--8576646141015609435   {1:69, 0:-110}  {-18:26310, 19:-28626, 116:22341, 
59:-13691, 122:22242, 87:-18146, 90:28116, 103:7501, -102:-6962, 51:-32491, 
-122:-29080, 3:29230, 79:3329, -111:-22600, -77:-32109, 80:-27080, 97:1564, 
-95:-22651, -3:3784, 91:-31071, -48:6987, 64:-21389, -71:-2772, -103:8060, 
35:-27110, -108:-9312, 120:-17956, -22:-24233, 52:-922, -30:7955, -36:-32002, 
99:-7485, 33:3627, 102:-154, -119:-23933, -28:-16472, -123:-1957, 117:27195, 
45:25120, 111:23424, 56:3295, -79:-24618 [...]
--8992323596915492376   {0:36, 1:48}    {37:14321, -23:12567, 43:19247, 
67:6207, -77:4208, 42:25316, -19:-5152, -108:12750, 122:4146, 100:-24669, 
-9:-26925, -59:20312, 125:-1353, 107:7640, 74:-12584, -82:-24070, 65:-11490, 
-72:-15079, 118:23373, 48:15740, -15:-21043, -106:26291, 20:3891, 18:28830, 
81:7106, 92:-27544, 63:10968, -38:21643, -117:5979, -41:-25858, -7:2075, 
24:7411, 45:-28977, 102:-6309, -78:30605, -64:11757, 89:19981, -58:-20544, 
11:435, 29:-5708, -118:-21479, 47:19216, -93:31818, [...]
+-6777072274442080184   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
+-7160127611483384577   {0:-113, 1:89}  {122:27065, -91:10042, -80:29426, 
0:30534, 22:2055, -5:12778, 55:25369, -3:-17428, 13:-2192, -14:4237, 114:13465, 
6:-23070, 33:13243, -105:-11460, 88:-7862, 81:21751, -67:25485, -25:-27218, 
-26:-13143, 46:27282, 4:18099, 40:32106, 21:-1662, 102:28629, 91:-207, 100:445, 
-43:-13639, 123:-8187, -29:-6710, -114:32311, -24:-17666, -12:-25765, 
-38:27241, 39:23577, 54:3884, -100:13235, 57:23465, -75:-10120, -73:7449, 
109:-9619, -9:-11660, 110:17946, 94:-11912 [...]
+-7238024935487081628   {0:120, 1:-126} {-70:-4800, 30:14930, -96:-30550, 
-116:-19484, -48:23756, 74:-26906, 55:2703, -19:-14775, 51:15578, -107:12047, 
124:21544, -59:4822, -12:-9575, 108:22642, -35:-28951, 70:-24561, 117:16838, 
-80:29400, 64:-9106, 46:-26437, 52:13210, -39:-24652, 9:-7801, 104:7213, 
-125:-21123, -98:-14810, -121:-21706, -69:21205, -26:-32472, 82:3477, 
-89:-4570, -114:23104, -24:4719, -95:6783, 71:-92, 18:-17598, -32:-10675, 
-63:-14903, 107:-32581, -79:-24781, 110:11767, -7 [...]
+-7255392008719176367   {0:-106, 1:23}  {-52:275, 14:-29292, 114:1951, 
-22:-23425, -118:28570, 100:-21903, 98:20319, -109:15798, 7:-5388, -5:-10672, 
66:-4859, 27:-10390, -56:-22931, -55:27816, -114:20167, -51:24624, -36:-8446, 
25:-7078, -101:-12915, -23:-14555, 31:7176, -29:2131, 112:13106, -100:-4784, 
34:2120, 119:-9391, 122:16360, 89:-25890, 117:-509, 78:17030, 52:-22011, 
-99:-1809, 93:1221, 70:13131, 96:-3002, -45:-2743, -46:-27985, 46:17514, 
22:-22083, -91:-24281, -41:14421, -4:31183, 69 [...]
+-7818940155827210954   {0:61, 1:6}     {-27:22161, -24:-22520, -98:499, 
-121:10508, 120:1074, 73:-10515, 106:23265, -58:-21081, -11:-24472, 65:23788, 
-86:-13155, 117:-18608, 41:-14212, 25:-18956, -66:23012, 63:-3062, -87:-6865, 
80:16093, 59:-18083, 38:-12970, -23:-23493, -40:-30428, 112:-3317, -54:-27201, 
34:-30160, 4:-31208, 3:32702, 125:-16835, 2:11226, -116:-4774, 29:-18815, 
94:-2420, 48:22502, 123:3781, 78:20144, 96:-23460, -110:4124, -36:-21280, 
-33:12734, -103:17131, 66:-27952, -9:23246, [...]
+-8049900041572605215   {0:121, 1:-23}  {89:-11338, 21:7752, -24:4151, 
96:-5826, -118:17385, 85:23092, 116:2581, 102:21442, 121:-14364, 57:-26858, 
70:12822, 60:30079, 18:16581, 94:10885, -9:-24962, -53:810, -17:32165, 
79:27871, -125:2530, 7:-16581, -52:-22682, -99:22277, 69:25792, 78:-340, 
93:27375, -44:-10475, -91:-6267, -119:4461, 87:-19347, 37:-14546, -4:-21841, 
1:-29265, 83:18046, 99:-10988, 44:-1001, 59:11401, 107:-11896, -7:31282, 
100:5857, -59:-27676, 112:24514, 51:28998, 88:-12721, 8 [...]
+-8363595955396323962   {1:13, 0:17}    {-21:-9240, 14:-3853, 17:5008, 
2:-28004, 102:-17420, 81:7531, 50:-25539, 28:-1550, 82:-32476, -83:-24627, 
127:1590, 110:18990, -11:-6538, -103:1092, -48:-22972, -42:-26914, 7:13567, 
-24:-31173, 13:-5668, 119:-5889, 77:14710, -63:16986, 34:20499, 56:-12276, 
-51:849, -41:-7515, 19:-9058, 113:-20508, -69:-31830, -14:-29776, -27:-9832, 
51:-18021, -61:4503, -67:26158, -124:-13172, 48:5068, 24:29305, -73:-227, 
15:27864, 67:-6950, 1:-19237, -122:889, -115:5832, [...]
+-8435279828593048652   {0:83, 1:-36}   {-93:-5900, 27:10478, -25:3184, 
47:15013, -35:-10662, -26:-7429, -38:8248, 20:-1193, -106:-19269, 52:28228, 
94:4498, 109:-18312, -119:5896, -32:19372, 35:20732, 82:-5812, 123:-30205, 
-98:-32598, -97:21748, -3:-404, 121:17731, -7:-7666, -59:29444, -83:-20733, 
31:-27772, -11:31564, 36:-899, -40:-31587, -64:-21656, 93:15575, -28:12843, 
88:-9173, -23:-24773, 101:7170, 30:24722, 38:25115, 87:-21702, 53:-24433, 
-66:8169, -102:-19758, -24:23644, 4:8235, -105:1 [...]
+-8576646141015609435   {0:13, 1:-128}  {-56:-30914, -70:10619, -6:-21052, 
-69:-24753, -60:-31410, 25:-11360, 102:-5748, 92:10641, -62:-4904, -76:-14077, 
-97:30425, -107:-22024, 54:11568, -27:14488, -66:-21132, -87:-13990, -50:6196, 
75:16224, -32:-14751, 39:21922, 16:-17448, -28:-30912, -89:-16019, 126:14369, 
-14:-9497, -30:17837, 66:-20431, 34:-13901, -58:-18120, 44:14729, 23:8613, 
-124:-16592, 103:-1816, 24:19927, 89:4633, -104:-29595, -92:-27005, 87:5223, 
74:-19020, -33:19666, 65:1086, -1 [...]
+-8992323596915492376   {1:2, 0:107}    {-19:25264, -48:-1776, 32:10911, 
39:31579, 58:-19163, 73:-22021, -45:-24397, 49:-20669, -24:-12038, 54:-29428, 
-11:2966, -92:-21385, 75:29266, -14:18605, -10:-15399, -13:1853, -95:26721, 
78:-14569, 96:-4428, -49:5455, -113:3678, -6:-24382, 61:-22545, -80:-32692, 
40:26775, -119:9338, 11:3067, -65:31452, 44:-11587, 114:-30705, -57:16219, 
-47:7433, 121:11348, 127:-3498, 24:16689, 47:4074, -126:2317, 30:9721, 
64:-18491, -52:-17526, -9:12274, 23:-30587, -35:2 [...]
 
 -- !sql_s3 --
 -6777072274442080184   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
diff --git 
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
 
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out.txt
similarity index 84%
copy from 
regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
copy to 
regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out.txt
index 2db95a0fde9..f78c1805b1e 100644
--- 
a/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out
+++ 
b/regression-test/data/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.out.txt
@@ -2805,16 +2805,16 @@ $Z~+\\/gje9gc=y=JtG^EMBX?Y7g;Mqy,DtDPP~GP
 (oV%,ZE=mskl8o<H4ivb7RS#G-59tD`Y3@&1?/h7!,,R8:4k4BW/.:@PlBs<_Cis9rj
 
 -- !sql_s3 --
--6777072274442080184   {1:-26, 0:15}   {-125:-28936, 11:6197, 60:4949, 
-70:-23123, 113:-6139, -57:17102, -89:-16419, 51:-18321, -114:-6861, 
-30:-17942, -60:12876, 41:56, -46:32549, 62:2589, 2:-27049, 45:29643, 63:25953, 
-44:44, 47:-26508, -80:27422, 127:-7300, 119:22338, 109:-675, -87:29121, 
-3:-9433, 54:15774, 108:8928, -94:10616, -86:7200, 101:-13183, -82:-29375, 
-116:9491, -99:-31508, -15:20162, -75:31245, -35:-2542, 96:-6427, 49:-3333, 
-54:8803, 24:-31698, -90:7247, -111:14614, 114:21946 [...]
--7160127611483384577   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
--7238024935487081628   {0:-74, 1:32}   {71:3815, 43:31606, 52:1801, -94:3718, 
-41:16460, 104:-13893, 74:13591, 117:-3157, 67:-4619, -107:6142, -63:22542, 
73:7410, -19:-22611, -25:18987, -16:-12258, 0:-29473, 87:21859, 14:16205, 
86:7619, -24:-19542, -1:32206, 20:9509, 18:31606, 32:18957, 17:4581, 
-34:-30291, -27:-20078, 46:14162, 59:20222, -75:-11778, -62:-30937, -11:-9886, 
39:12041, -93:-523, 48:-19350, 60:26015, -77:-18030, 22:-22261, 119:20296, 
-6:-2752, -89:5992, -28:-23384, 7:-9554, 62:8 [...]
--7255392008719176367   {0:-8, 1:116}   {38:-22938, 114:-21453, 127:7282, 
-37:2542, -84:-13826, 94:-1516, 84:22023, -61:9811, -109:21976, 72:-16733, 
62:28846, 2:-2541, 76:29430, 22:21984, 30:-32320, -111:26414, 89:18424, 
-67:16571, 87:3701, -70:15289, 63:-26554, 26:-5462, -81:-12948, -22:-29346, 
83:10853, -127:-29350, -73:-16664, 110:-18478, 12:17913, 101:-14838, 36:30608, 
-54:-11372, 24:-14972, -6:12083, -116:8333, 50:-27794, -94:-5541, -49:-1194, 
31:-13000, 19:-26909, -112:-11155, -95:8985, [...]
--7818940155827210954   {0:-5, 1:-109}  {55:-1737, 98:14748, -116:-7149, 
42:-2304, -69:-14871, 124:-4756, -74:-23438, 51:8705, -106:27538, -95:6528, 
-9:-7390, 110:-5125, 89:-11365, 34:-30268, 3:-22587, 84:-28810, 33:7559, 
-35:2280, 92:-30974, 43:19999, -71:24191, 104:5836, 122:-27795, -47:8058, 
-10:21736, -24:-5098, -28:10350, -88:-23265, -118:26866, -111:13561, -67:8162, 
-107:12238, 41:-3049, 23:30913, -41:-12528, 12:31530, 62:8742, -125:-21707, 
-5:-19893, -100:-32758, 14:-5548, 74:-12018,  [...]
--8049900041572605215   {1:-94, 0:-71}  {-59:-30794, -5:-17656, 101:-1787, 
-22:-455, 90:19616, -75:-6450, 21:12655, 41:-9499, -55:18763, -112:-13391, 
-19:31593, -46:29421, 27:16920, -67:-22531, -18:-11647, 91:-23328, 50:8055, 
64:-31180, 99:30580, -38:-11939, -48:30503, -110:16076, -2:32445, -85:-30546, 
-61:14666, -96:-21466, 17:21337, 109:8357, 115:13503, 69:-92, 118:18969, 
19:20050, -62:30444, 66:-8713, -74:-9555, 35:2120, 123:25014, 78:-13563, 
96:25123, -29:13555, -68:-935, -37:26687, 68:2 [...]
--8363595955396323962   {1:88, 0:60}    {-103:-23967, 117:-22927, 42:29869, 
-82:6522, -106:-2629, 29:28568, 100:4465, -112:-18765, -89:-15515, -55:11477, 
-93:-15657, 122:-27427, -120:24265, 12:2981, 53:10159, 54:6070, 67:19344, 
-72:-19512, -35:-1316, -91:12717, 112:-5448, 71:2189, -83:29576, -98:-15893, 
51:18207, -111:962, -29:17366, -109:-29581, -116:-8412, 61:-3591, 46:6865, 
-95:-26760, 57:5085, -4:-13638, 39:-25967, -53:-12681, -92:-10716, -78:-10370, 
3:-29855, 28:29184, -59:-11743, -28:-24 [...]
--8435279828593048652   {1:-84, 0:-122} {-61:20586, -65:-21319, -5:10157, 
-42:-11448, 108:30435, 32:27996, -70:-158, 27:-6306, 71:31150, 59:28539, 
86:-23363, 96:5515, -101:815, -109:-16879, 93:18247, -87:-14019, -75:18629, 
110:-3226, -45:26794, 29:-909, -100:25472, -40:27780, -98:-21090, 55:-22077, 
-103:24125, 83:5427, -120:23967, 13:-2463, 116:-30394, 42:2415, 114:28546, 
87:-4585, 49:28465, -112:-20263, 62:-21074, -12:17054, -60:-14140, -53:13717, 
-116:12882, 5:-6584, -51:-9718, -77:14903, [...]
--8576646141015609435   {1:69, 0:-110}  {-18:26310, 19:-28626, 116:22341, 
59:-13691, 122:22242, 87:-18146, 90:28116, 103:7501, -102:-6962, 51:-32491, 
-122:-29080, 3:29230, 79:3329, -111:-22600, -77:-32109, 80:-27080, 97:1564, 
-95:-22651, -3:3784, 91:-31071, -48:6987, 64:-21389, -71:-2772, -103:8060, 
35:-27110, -108:-9312, 120:-17956, -22:-24233, 52:-922, -30:7955, -36:-32002, 
99:-7485, 33:3627, 102:-154, -119:-23933, -28:-16472, -123:-1957, 117:27195, 
45:25120, 111:23424, 56:3295, -79:-24618 [...]
--8992323596915492376   {0:36, 1:48}    {37:14321, -23:12567, 43:19247, 
67:6207, -77:4208, 42:25316, -19:-5152, -108:12750, 122:4146, 100:-24669, 
-9:-26925, -59:20312, 125:-1353, 107:7640, 74:-12584, -82:-24070, 65:-11490, 
-72:-15079, 118:23373, 48:15740, -15:-21043, -106:26291, 20:3891, 18:28830, 
81:7106, 92:-27544, 63:10968, -38:21643, -117:5979, -41:-25858, -7:2075, 
24:7411, 45:-28977, 102:-6309, -78:30605, -64:11757, 89:19981, -58:-20544, 
11:435, 29:-5708, -118:-21479, 47:19216, -93:31818, [...]
+-6777072274442080184   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
+-7160127611483384577   {0:-113, 1:89}  {122:27065, -91:10042, -80:29426, 
0:30534, 22:2055, -5:12778, 55:25369, -3:-17428, 13:-2192, -14:4237, 114:13465, 
6:-23070, 33:13243, -105:-11460, 88:-7862, 81:21751, -67:25485, -25:-27218, 
-26:-13143, 46:27282, 4:18099, 40:32106, 21:-1662, 102:28629, 91:-207, 100:445, 
-43:-13639, 123:-8187, -29:-6710, -114:32311, -24:-17666, -12:-25765, 
-38:27241, 39:23577, 54:3884, -100:13235, 57:23465, -75:-10120, -73:7449, 
109:-9619, -9:-11660, 110:17946, 94:-11912 [...]
+-7238024935487081628   {0:120, 1:-126} {-70:-4800, 30:14930, -96:-30550, 
-116:-19484, -48:23756, 74:-26906, 55:2703, -19:-14775, 51:15578, -107:12047, 
124:21544, -59:4822, -12:-9575, 108:22642, -35:-28951, 70:-24561, 117:16838, 
-80:29400, 64:-9106, 46:-26437, 52:13210, -39:-24652, 9:-7801, 104:7213, 
-125:-21123, -98:-14810, -121:-21706, -69:21205, -26:-32472, 82:3477, 
-89:-4570, -114:23104, -24:4719, -95:6783, 71:-92, 18:-17598, -32:-10675, 
-63:-14903, 107:-32581, -79:-24781, 110:11767, -7 [...]
+-7255392008719176367   {0:-106, 1:23}  {-52:275, 14:-29292, 114:1951, 
-22:-23425, -118:28570, 100:-21903, 98:20319, -109:15798, 7:-5388, -5:-10672, 
66:-4859, 27:-10390, -56:-22931, -55:27816, -114:20167, -51:24624, -36:-8446, 
25:-7078, -101:-12915, -23:-14555, 31:7176, -29:2131, 112:13106, -100:-4784, 
34:2120, 119:-9391, 122:16360, 89:-25890, 117:-509, 78:17030, 52:-22011, 
-99:-1809, 93:1221, 70:13131, 96:-3002, -45:-2743, -46:-27985, 46:17514, 
22:-22083, -91:-24281, -41:14421, -4:31183, 69 [...]
+-7818940155827210954   {0:61, 1:6}     {-27:22161, -24:-22520, -98:499, 
-121:10508, 120:1074, 73:-10515, 106:23265, -58:-21081, -11:-24472, 65:23788, 
-86:-13155, 117:-18608, 41:-14212, 25:-18956, -66:23012, 63:-3062, -87:-6865, 
80:16093, 59:-18083, 38:-12970, -23:-23493, -40:-30428, 112:-3317, -54:-27201, 
34:-30160, 4:-31208, 3:32702, 125:-16835, 2:11226, -116:-4774, 29:-18815, 
94:-2420, 48:22502, 123:3781, 78:20144, 96:-23460, -110:4124, -36:-21280, 
-33:12734, -103:17131, 66:-27952, -9:23246, [...]
+-8049900041572605215   {0:121, 1:-23}  {89:-11338, 21:7752, -24:4151, 
96:-5826, -118:17385, 85:23092, 116:2581, 102:21442, 121:-14364, 57:-26858, 
70:12822, 60:30079, 18:16581, 94:10885, -9:-24962, -53:810, -17:32165, 
79:27871, -125:2530, 7:-16581, -52:-22682, -99:22277, 69:25792, 78:-340, 
93:27375, -44:-10475, -91:-6267, -119:4461, 87:-19347, 37:-14546, -4:-21841, 
1:-29265, 83:18046, 99:-10988, 44:-1001, 59:11401, 107:-11896, -7:31282, 
100:5857, -59:-27676, 112:24514, 51:28998, 88:-12721, 8 [...]
+-8363595955396323962   {1:13, 0:17}    {-21:-9240, 14:-3853, 17:5008, 
2:-28004, 102:-17420, 81:7531, 50:-25539, 28:-1550, 82:-32476, -83:-24627, 
127:1590, 110:18990, -11:-6538, -103:1092, -48:-22972, -42:-26914, 7:13567, 
-24:-31173, 13:-5668, 119:-5889, 77:14710, -63:16986, 34:20499, 56:-12276, 
-51:849, -41:-7515, 19:-9058, 113:-20508, -69:-31830, -14:-29776, -27:-9832, 
51:-18021, -61:4503, -67:26158, -124:-13172, 48:5068, 24:29305, -73:-227, 
15:27864, 67:-6950, 1:-19237, -122:889, -115:5832, [...]
+-8435279828593048652   {0:83, 1:-36}   {-93:-5900, 27:10478, -25:3184, 
47:15013, -35:-10662, -26:-7429, -38:8248, 20:-1193, -106:-19269, 52:28228, 
94:4498, 109:-18312, -119:5896, -32:19372, 35:20732, 82:-5812, 123:-30205, 
-98:-32598, -97:21748, -3:-404, 121:17731, -7:-7666, -59:29444, -83:-20733, 
31:-27772, -11:31564, 36:-899, -40:-31587, -64:-21656, 93:15575, -28:12843, 
88:-9173, -23:-24773, 101:7170, 30:24722, 38:25115, 87:-21702, 53:-24433, 
-66:8169, -102:-19758, -24:23644, 4:8235, -105:1 [...]
+-8576646141015609435   {0:13, 1:-128}  {-56:-30914, -70:10619, -6:-21052, 
-69:-24753, -60:-31410, 25:-11360, 102:-5748, 92:10641, -62:-4904, -76:-14077, 
-97:30425, -107:-22024, 54:11568, -27:14488, -66:-21132, -87:-13990, -50:6196, 
75:16224, -32:-14751, 39:21922, 16:-17448, -28:-30912, -89:-16019, 126:14369, 
-14:-9497, -30:17837, 66:-20431, 34:-13901, -58:-18120, 44:14729, 23:8613, 
-124:-16592, 103:-1816, 24:19927, 89:4633, -104:-29595, -92:-27005, 87:5223, 
74:-19020, -33:19666, 65:1086, -1 [...]
+-8992323596915492376   {1:2, 0:107}    {-19:25264, -48:-1776, 32:10911, 
39:31579, 58:-19163, 73:-22021, -45:-24397, 49:-20669, -24:-12038, 54:-29428, 
-11:2966, -92:-21385, 75:29266, -14:18605, -10:-15399, -13:1853, -95:26721, 
78:-14569, 96:-4428, -49:5455, -113:3678, -6:-24382, 61:-22545, -80:-32692, 
40:26775, -119:9338, 11:3067, -65:31452, 44:-11587, 114:-30705, -57:16219, 
-47:7433, 121:11348, 127:-3498, 24:16689, 47:4074, -126:2317, 30:9721, 
64:-18491, -52:-17526, -9:12274, 23:-30587, -35:2 [...]
 
 -- !sql_s3 --
 -6777072274442080184   {1:72, 0:-74}   {-82:8215, 43:30040, -56:-2545, 
-49:-6154, 16:29896, -98:9756, -113:4507, -42:8068, -115:-5811, -75:23572, 
64:-1723, -64:14043, 60:756, -12:-4449, 18:-24418, 110:-23962, 48:-5368, 
75:3253, 84:18029, 111:-29923, 65:27503, 90:-21022, 108:22788, 28:29720, 
71:23686, 37:20496, -78:-32584, -81:25465, -71:-27246, 12:23875, 97:-26710, 
-92:9625, 86:24241, -43:13916, 41:17079, 57:9644, -87:-8677, 120:29430, 
-54:14722, -122:-8116, -105:-7338, -33:2656, -125:26327, [...]
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 46b9782952a..9dbe2ff79ab 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
@@ -544,9 +544,9 @@ bbb
 2023-10-24T18:19:51.673
 
 -- !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 [...]
+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 [...]
 
 -- !c102 --
 1      {"c_boolean":1, "c_tinyint":1, "c_smallint":2, "c_int":3, "c_bigint":4, 
"c_float":5.1, "c_double":6.2, "c_decimal":7.30, "c_char":"6", "c_varchar":"9", 
"c_binary":"a", "c_varbinary":"bbbb", "c_date":"2020-01-01", 
"c_timestamp":"2020-01-01 00:00:00.000000", "c_array":[1, 2, 3], 
"c_map":{"a":1, "b":2}, "c_row":{"c_int":3, "c_float":4.1, "c_varchar":"5"}}
@@ -1123,9 +1123,9 @@ bbb
 2023-10-24T18:19:51.673
 
 -- !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 [...]
+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 [...]
 
 -- !c102 --
 1      {"c_boolean":1, "c_tinyint":1, "c_smallint":2, "c_int":3, "c_bigint":4, 
"c_float":5.1, "c_double":6.2, "c_decimal":7.30, "c_char":"6", "c_varchar":"9", 
"c_binary":"a", "c_varbinary":"bbbb", "c_date":"2020-01-01", 
"c_timestamp":"2020-01-01 00:00:00.000000", "c_array":[1, 2, 3], 
"c_map":{"a":1, "b":2}, "c_row":{"c_int":3, "c_float":4.1, "c_varchar":"5"}}
@@ -1702,9 +1702,9 @@ bbb
 2023-10-24T18:19:51.673
 
 -- !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 [...]
+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 [...]
 
 -- !c102 --
 1      {"c_boolean":1, "c_tinyint":1, "c_smallint":2, "c_int":3, "c_bigint":4, 
"c_float":5.1, "c_double":6.2, "c_decimal":7.30, "c_char":"6", "c_varchar":"9", 
"c_binary":"a", "c_varbinary":"bbbb", "c_date":"2020-01-01", 
"c_timestamp":"2020-01-01 00:00:00.000000", "c_array":[1, 2, 3], 
"c_map":{"a":1, "b":2}, "c_row":{"c_int":3, "c_float":4.1, "c_varchar":"5"}}
@@ -2281,9 +2281,9 @@ bbb
 2023-10-24T18:19:51.673
 
 -- !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 [...]
+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 [...]
 
 -- !c102 --
 1      {"c_boolean":1, "c_tinyint":1, "c_smallint":2, "c_int":3, "c_bigint":4, 
"c_float":5.1, "c_double":6.2, "c_decimal":7.30, "c_char":"6", "c_varchar":"9", 
"c_binary":"a", "c_varbinary":"bbbb", "c_date":"2020-01-01", 
"c_timestamp":"2020-01-01 00:00:00.000000", "c_array":[1, 2, 3], 
"c_map":{"a":1, "b":2}, "c_row":{"c_int":3, "c_float":4.1, "c_varchar":"5"}}
diff --git 
a/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
 
b/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
index 8efcd399d61..44e27c59124 100644
--- 
a/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
+++ 
b/regression-test/suites/datatype_p0/nested_types/base_cases/one_level_nestedtypes_with_s3data.groovy
@@ -75,44 +75,122 @@ suite("one_level_nestedtypes_with_s3data") {
             "format" = "${format}"); """
         }
     }
-    def load_from_s3 = {table_name, uri_file, format ->
+    def load_from_s3 = {table_name, uri_file, format, is_map ->
         sql "set enable_insert_strict = false;"
-        if (format == "csv") {
-            order_qt_sql_s3 """select * from s3(
+        if (is_map) {
+            if (format == "csv") {
+                order_qt_sql_s3 """select *
+                from s3(
+                    "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "column_separator"="|",
+                        "read_json_by_line"="true") where c1 is not null order 
by c1 limit 10; """
+
+                sql """
+                insert into ${table_name} select *
+                from s3(
                 "uri" = "${uri_file}",
-                    "s3.access_key"= "${ak}",
-                    "s3.secret_key" = "${sk}",
-                    "format" = "${format}",
-                    "provider" = "${getS3Provider()}",
-                    "column_separator"="|",
-                    "read_json_by_line"="true") where c1 is not null order by 
c1 limit 10; """
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "column_separator"="|",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true"); """
+            } else {
+                order_qt_sql_s3 """select k1
+                    , deduplicate_map(c_bool)
+                    , deduplicate_map(c_tinyint)
+                    , deduplicate_map(c_smallint)
+                    , deduplicate_map(c_int)
+                    , deduplicate_map(c_bigint)
+                    , deduplicate_map(c_largeint)
+                    , deduplicate_map(c_float)
+                    , deduplicate_map(c_double)
+                    , deduplicate_map(c_decimal)
+                    , deduplicate_map(c_decimalv3)
+                    , deduplicate_map(c_date)
+                    , deduplicate_map(c_datetime)
+                    , deduplicate_map(c_datev2)
+                    , deduplicate_map(c_datetimev2)
+                    , deduplicate_map(c_char)
+                    , deduplicate_map(c_varchar)
+                    , deduplicate_map(c_string)
+                from s3(
+                    "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true") where k1 is not null order 
by k1 limit 10; """
 
-            sql """
-            insert into ${table_name} select * from s3(
-            "uri" = "${uri_file}",
-                    "s3.access_key"= "${ak}",
-                    "s3.secret_key" = "${sk}",
-                    "format" = "${format}",
-                    "column_separator"="|",
-                    "provider" = "${getS3Provider()}",
-                    "read_json_by_line"="true"); """
+                sql """
+                insert into ${table_name} select k1
+                    , deduplicate_map(c_bool)
+                    , deduplicate_map(c_tinyint)
+                    , deduplicate_map(c_smallint)
+                    , deduplicate_map(c_int)
+                    , deduplicate_map(c_bigint)
+                    , deduplicate_map(c_largeint)
+                    , deduplicate_map(c_float)
+                    , deduplicate_map(c_double)
+                    , deduplicate_map(c_decimal)
+                    , deduplicate_map(c_decimalv3)
+                    , deduplicate_map(c_date)
+                    , deduplicate_map(c_datetime)
+                    , deduplicate_map(c_datev2)
+                    , deduplicate_map(c_datetimev2)
+                    , deduplicate_map(c_char)
+                    , deduplicate_map(c_varchar)
+                    , deduplicate_map(c_string)
+                from s3(
+                "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true"); """
+            }
         } else {
-            order_qt_sql_s3 """select * from s3(
+            if (format == "csv") {
+                order_qt_sql_s3 """select * from s3(
+                    "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "column_separator"="|",
+                        "read_json_by_line"="true") where c1 is not null order 
by c1 limit 10; """
+
+                sql """
+                insert into ${table_name} select * from s3(
                 "uri" = "${uri_file}",
-                    "s3.access_key"= "${ak}",
-                    "s3.secret_key" = "${sk}",
-                    "format" = "${format}",
-                    "provider" = "${getS3Provider()}",
-                    "read_json_by_line"="true") where k1 is not null order by 
k1 limit 10; """
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "column_separator"="|",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true"); """
+            } else {
+                order_qt_sql_s3 """select * from s3(
+                    "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true") where k1 is not null order 
by k1 limit 10; """
 
-            sql """
-            insert into ${table_name} select * from s3(
-            "uri" = "${uri_file}",
-                    "s3.access_key"= "${ak}",
-                    "s3.secret_key" = "${sk}",
-                    "format" = "${format}",
-                    "provider" = "${getS3Provider()}",
-                    "read_json_by_line"="true"); """
+                sql """
+                insert into ${table_name} select * from s3(
+                "uri" = "${uri_file}",
+                        "s3.access_key"= "${ak}",
+                        "s3.secret_key" = "${sk}",
+                        "format" = "${format}",
+                        "provider" = "${getS3Provider()}",
+                        "read_json_by_line"="true"); """
+            }
         }
         sql "set enable_insert_strict = true;"
     }
@@ -149,7 +227,7 @@ suite("one_level_nestedtypes_with_s3data") {
     for (String f : array_files) {
         sql "truncate table ${table_names[0]};"
 //        load_from_tvf(table_names[0], f, format_order[fi])
-        load_from_s3(table_names[0], f, format_order[fi])
+        load_from_s3(table_names[0], f, format_order[fi], false)
         ++ fi
     }
     // select element_at(column)
@@ -186,7 +264,7 @@ suite("one_level_nestedtypes_with_s3data") {
     for (String f : map_files) {
         sql "truncate table ${table_names[1]};"
 //        load_from_tvf(table_names[1], f, format_order[fi])
-        load_from_s3(table_names[1], f, format_order[fi])
+        load_from_s3(table_names[1], f, format_order[fi], true)
         ++ fi
     }
     // select element_at(column)
@@ -223,7 +301,7 @@ suite("one_level_nestedtypes_with_s3data") {
     for (String f : struct_files) {
         sql "truncate table ${table_names[2]};"
 //        load_from_tvf(table_names[2], f, format_order[fi])
-        load_from_s3(table_names[2], f, format_order[fi])
+        load_from_s3(table_names[2], f, format_order[fi], false)
         ++ fi
     }
     // select element_at(column)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to