This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new af8832389fe [feature](Nereids) add 4 array functions (#25488)
af8832389fe is described below
commit af8832389fe501e2cd1f8e0249f936e8146357d7
Author: morrySnow <[email protected]>
AuthorDate: Tue Oct 17 17:45:15 2023 +0800
[feature](Nereids) add 4 array functions (#25488)
- array_concat
- array_pushback
- array_pushfront
- array_zip
---
.../doris/catalog/BuiltinScalarFunctions.java | 8 +
.../expressions/functions/scalar/ArrayConcat.java | 70 ++
.../functions/scalar/ArrayPushBack.java | 69 ++
.../functions/scalar/ArrayPushFront.java | 69 ++
.../expressions/functions/scalar/ArrayZip.java | 91 ++
.../expressions/visitor/ScalarFunctionVisitor.java | 20 +
.../nereids_function_p0/scalar_function/Array.out | 1224 +++++++++++++++++++-
.../array_functions/test_array_with_scale_type.out | 32 +-
.../scalar_function/Array.groovy | 108 +-
.../test_array_with_scale_type.groovy | 16 +-
10 files changed, 1677 insertions(+), 30 deletions(-)
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 9bfad13a09d..e91f7949f79 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
@@ -30,6 +30,7 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.Array;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayApply;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayAvg;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCompact;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayConcat;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayContains;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCount;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCumSum;
@@ -52,6 +53,8 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPopBack;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPopFront;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPosition;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayProduct;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPushBack;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPushFront;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRange;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRemove;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRepeat;
@@ -62,6 +65,7 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySortBy;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySum;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayUnion;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayWithConstant;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayZip;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArraysOverlap;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Ascii;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Asin;
@@ -421,6 +425,7 @@ public class BuiltinScalarFunctions implements
FunctionHelper {
scalar(ArrayApply.class, "array_apply"),
scalar(ArrayAvg.class, "array_avg"),
scalar(ArrayCompact.class, "array_compact"),
+ scalar(ArrayConcat.class, "array_concat"),
scalar(ArrayContains.class, "array_contains"),
scalar(ArrayCount.class, "array_count"),
scalar(ArrayCumSum.class, "array_cum_sum"),
@@ -443,6 +448,8 @@ public class BuiltinScalarFunctions implements
FunctionHelper {
scalar(ArrayPopFront.class, "array_popfront"),
scalar(ArrayPosition.class, "array_position"),
scalar(ArrayProduct.class, "array_product"),
+ scalar(ArrayPushBack.class, "Array_pushback"),
+ scalar(ArrayPushFront.class, "Array_pushfront"),
scalar(ArrayRange.class, "array_range"),
scalar(ArrayRemove.class, "array_remove"),
scalar(ArrayRepeat.class, "array_repeat"),
@@ -453,6 +460,7 @@ public class BuiltinScalarFunctions implements
FunctionHelper {
scalar(ArraySum.class, "array_sum"),
scalar(ArrayUnion.class, "array_union"),
scalar(ArrayWithConstant.class, "array_with_constant"),
+ scalar(ArrayZip.class, "array_zip"),
scalar(ArraysOverlap.class, "arrays_overlap"),
scalar(Ascii.class, "ascii"),
scalar(Asin.class, "asin"),
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayConcat.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayConcat.java
new file mode 100644
index 00000000000..fe9d264a4ab
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayConcat.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.BinaryExpression;
+import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
+import org.apache.doris.nereids.types.ArrayType;
+import org.apache.doris.nereids.types.coercion.AnyDataType;
+import org.apache.doris.nereids.util.ExpressionUtils;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * ScalarFunction 'array_concat'
+ */
+public class ArrayConcat extends ScalarFunction implements
ExplicitlyCastableSignature,
+ BinaryExpression, PropagateNullable {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+ FunctionSignature.retArgType(0).varArgs(ArrayType.of(new
AnyDataType(0)))
+ );
+
+ /**
+ * constructor with more than 0 arguments.
+ */
+ public ArrayConcat(Expression arg, Expression ...varArgs) {
+ super("array_concat", ExpressionUtils.mergeArguments(arg, varArgs));
+ }
+
+ /**
+ * withChildren.
+ */
+ @Override
+ public ArrayConcat withChildren(List<Expression> children) {
+ Preconditions.checkArgument(!children.isEmpty());
+ return new ArrayConcat(children.get(0), children.subList(1,
children.size()).toArray(new Expression[0]));
+ }
+
+ @Override
+ public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
+ return visitor.visitArrayConcat(this, context);
+ }
+
+ @Override
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushBack.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushBack.java
new file mode 100644
index 00000000000..c1791a66f07
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushBack.java
@@ -0,0 +1,69 @@
+// 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.AlwaysNullable;
+import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
+import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
+import org.apache.doris.nereids.types.ArrayType;
+import org.apache.doris.nereids.types.coercion.AnyDataType;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * ScalarFunction 'array_pushback'.
+ */
+public class ArrayPushBack extends ScalarFunction
+ implements UnaryExpression, ExplicitlyCastableSignature,
AlwaysNullable {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+ FunctionSignature.retArgType(0).args(ArrayType.of(new
AnyDataType(0)), new AnyDataType(0))
+ );
+
+ /**
+ * constructor with 1 argument.
+ */
+ public ArrayPushBack(Expression arg0, Expression arg1) {
+ super("array_pushback", arg0, arg1);
+ }
+
+ /**
+ * withChildren.
+ */
+ @Override
+ public ArrayPushBack withChildren(List<Expression> children) {
+ Preconditions.checkArgument(children.size() == 2);
+ return new ArrayPushBack(children.get(0), children.get(1));
+ }
+
+ @Override
+ public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
+ return visitor.visitArrayPushBack(this, context);
+ }
+
+ @Override
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushFront.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushFront.java
new file mode 100644
index 00000000000..458e062ba46
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayPushFront.java
@@ -0,0 +1,69 @@
+// 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.AlwaysNullable;
+import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
+import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
+import org.apache.doris.nereids.types.ArrayType;
+import org.apache.doris.nereids.types.coercion.AnyDataType;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * ScalarFunction 'array_pushfront'.
+ */
+public class ArrayPushFront extends ScalarFunction
+ implements UnaryExpression, ExplicitlyCastableSignature,
AlwaysNullable {
+
+ public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
+ FunctionSignature.retArgType(0).args(ArrayType.of(new
AnyDataType(0)), new AnyDataType(0))
+ );
+
+ /**
+ * constructor with 1 argument.
+ */
+ public ArrayPushFront(Expression arg0, Expression arg1) {
+ super("array_pushfront", arg0, arg1);
+ }
+
+ /**
+ * withChildren.
+ */
+ @Override
+ public ArrayPushFront withChildren(List<Expression> children) {
+ Preconditions.checkArgument(children.size() == 2);
+ return new ArrayPushFront(children.get(0), children.get(1));
+ }
+
+ @Override
+ public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
+ return visitor.visitArrayPushFront(this, context);
+ }
+
+ @Override
+ public List<FunctionSignature> getSignatures() {
+ return SIGNATURES;
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayZip.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayZip.java
new file mode 100644
index 00000000000..01455a4636c
--- /dev/null
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayZip.java
@@ -0,0 +1,91 @@
+// 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.ExpressionTrait;
+import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import org.apache.doris.nereids.trees.expressions.functions.SearchSignature;
+import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
+import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
+import org.apache.doris.nereids.types.ArrayType;
+import org.apache.doris.nereids.types.DataType;
+import org.apache.doris.nereids.types.StructField;
+import org.apache.doris.nereids.types.StructType;
+import org.apache.doris.nereids.types.TinyIntType;
+import org.apache.doris.nereids.util.ExpressionUtils;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * ScalarFunction 'array_zip'.
+ */
+public class ArrayZip extends ScalarFunction implements
ExplicitlyCastableSignature,
+ BinaryExpression, PropagateNullable {
+
+ /**
+ * constructor with more than 0 arguments.
+ */
+ public ArrayZip(Expression arg, Expression ...varArgs) {
+ super("array_zip", ExpressionUtils.mergeArguments(arg, varArgs));
+ }
+
+ /**
+ * withChildren.
+ */
+ @Override
+ public ArrayZip withChildren(List<Expression> children) {
+ Preconditions.checkArgument(!children.isEmpty());
+ return new ArrayZip(children.get(0), children.subList(1,
children.size()).toArray(new Expression[0]));
+ }
+
+ @Override
+ public <R, C> R accept(ExpressionVisitor<R, C> visitor, C context) {
+ return visitor.visitArrayZip(this, context);
+ }
+
+ @Override
+ public List<FunctionSignature> getSignatures() {
+ if (arity() == 0) {
+ SearchSignature.throwCanNotFoundFunctionException(getName(),
getArguments());
+ }
+ if (!children.stream()
+ .map(ExpressionTrait::getDataType)
+ .filter(dt -> !dt.isNullType())
+ .allMatch(ArrayType.class::isInstance)) {
+ SearchSignature.throwCanNotFoundFunctionException(getName(),
getArguments());
+ }
+ ImmutableList.Builder<StructField> structFieldBuilder =
ImmutableList.builder();
+ for (int i = 0; i < children.size(); i++) {
+ DataType itemType = TinyIntType.INSTANCE;
+ DataType childType = children.get(i).getDataType();
+ if (childType instanceof ArrayType) {
+ itemType = ((ArrayType) childType).getItemType();
+ }
+ structFieldBuilder.add(new StructField(String.valueOf(i + 1),
itemType, true, ""));
+ }
+
+ return ImmutableList.of(FunctionSignature.ret(ArrayType.of(new
StructType(structFieldBuilder.build())))
+
.args(children.stream().map(ExpressionTrait::getDataType).toArray(DataType[]::new)));
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
index 230203ad09a..e94aae003c0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/ScalarFunctionVisitor.java
@@ -32,6 +32,7 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.Array;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayApply;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayAvg;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCompact;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayConcat;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayContains;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCount;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayCumSum;
@@ -52,6 +53,8 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPopBack;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPopFront;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPosition;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayProduct;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPushBack;
+import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayPushFront;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRange;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRemove;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayRepeat;
@@ -62,6 +65,7 @@ import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySortBy;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArraySum;
import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayUnion;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayWithConstant;
+import org.apache.doris.nereids.trees.expressions.functions.scalar.ArrayZip;
import
org.apache.doris.nereids.trees.expressions.functions.scalar.ArraysOverlap;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Ascii;
import org.apache.doris.nereids.trees.expressions.functions.scalar.Asin;
@@ -440,6 +444,10 @@ public interface ScalarFunctionVisitor<R, C> {
return visitScalarFunction(arrayCompact, context);
}
+ default R visitArrayConcat(ArrayConcat arrayConcat, C context) {
+ return visitScalarFunction(arrayConcat, context);
+ }
+
default R visitArrayContains(ArrayContains arrayContains, C context) {
return visitScalarFunction(arrayContains, context);
}
@@ -516,6 +524,14 @@ public interface ScalarFunctionVisitor<R, C> {
return visitScalarFunction(arrayProduct, context);
}
+ default R visitArrayPushBack(ArrayPushBack arrayPushBack, C context) {
+ return visitScalarFunction(arrayPushBack, context);
+ }
+
+ default R visitArrayPushFront(ArrayPushFront arrayPushFront, C context) {
+ return visitScalarFunction(arrayPushFront, context);
+ }
+
default R visitArrayRange(ArrayRange arrayRange, C context) {
return visitScalarFunction(arrayRange, context);
}
@@ -564,6 +580,10 @@ public interface ScalarFunctionVisitor<R, C> {
return visitScalarFunction(arrayReverseSort, context);
}
+ default R visitArrayZip(ArrayZip arrayZip, C context) {
+ return visitScalarFunction(arrayZip, context);
+ }
+
default R visitAscii(Ascii ascii, C context) {
return visitScalarFunction(ascii, context);
}
diff --git a/regression-test/data/nereids_function_p0/scalar_function/Array.out
b/regression-test/data/nereids_function_p0/scalar_function/Array.out
index 2d2a0ce49dd..1da82c833f9 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/Array.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/Array.out
@@ -637,6 +637,412 @@
[2012-03-11]
[2012-03-12]
+-- !sql_array_concat_Double --
+\N
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_concat_Double_notnull --
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_concat_Float --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_Float_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_LargeInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_LargeInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_BigInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_BigInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_SmallInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_SmallInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_Integer --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_Integer_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_concat_TinyInt --
+\N
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_concat_TinyInt_notnull --
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_concat_DecimalV3 --
+\N
+[0.100000000, 0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_concat_DecimalV3_notnull --
+[0.100000000, 0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_concat_Boolean --
+\N
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_concat_Boolean_notnull --
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_concat_Char --
+\N
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+
+-- !sql_array_concat_Char_notnull --
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char11", "char21", "char31", "char11", "char21", "char31"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char12", "char22", "char32", "char12", "char22", "char32"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+["char13", "char23", "char33", "char13", "char23", "char33"]
+
+-- !sql_array_concat_Varchar --
+\N
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+
+-- !sql_array_concat_Varchar_notnull --
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"char11", "char21", "char31", "varchar11", "varchar21", "varchar31"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"char12", "char22", "char32", "varchar12", "varchar22", "varchar32"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"char13", "char23", "char33", "varchar13", "varchar23", "varchar33"]
+
+-- !sql_array_concat_String --
+\N
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+
+-- !sql_array_concat_String_notnull --
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"char21", "char31", "varchar11", "varchar21", "varchar31", "string1"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"char22", "char32", "varchar12", "varchar22", "varchar32", "string2"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"char23", "char33", "varchar13", "varchar23", "varchar33", "string3"]
+
+-- !sql_array_concat_DatetimeV2 --
+\N
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000,
2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000,
2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000,
2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000,
2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000,
2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000,
2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000,
2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000,
2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000,
2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000,
2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000,
2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000,
2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000]
+
+-- !sql_array_concat_DatetimeV2_notnull --
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000,
2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000,
2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000,
2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000,
2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000,
2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000,
2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000,
2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000,
2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000,
2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000,
2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000,
2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000,
2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000]
+
+-- !sql_array_concat_DateV2 --
+\N
+[2012-03-01, 2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12, 2012-03-12]
+
+-- !sql_array_concat_DateV2_notnull --
+[2012-03-01, 2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12, 2012-03-12]
+
-- !sql_array_difference_Double --
\N
[0]
@@ -5973,6 +6379,818 @@ true
1.210000000
1.440000000
+-- !sql_array_pushback_Double --
+\N
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_pushback_Double_notnull --
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_pushback_Float --
+\N
+[1, 0.1]
+[10, 1]
+[11, 1.1]
+[12, 1.2]
+[2, 0.2]
+[3, 0.3]
+[4, 0.4]
+[5, 0.5]
+[6, 0.6]
+[7, 0.7]
+[8, 0.8]
+[9, 0.9]
+
+-- !sql_array_pushback_Float_notnull --
+[1, 0.1]
+[10, 1]
+[11, 1.1]
+[12, 1.2]
+[2, 0.2]
+[3, 0.3]
+[4, 0.4]
+[5, 0.5]
+[6, 0.6]
+[7, 0.7]
+[8, 0.8]
+[9, 0.9]
+
+-- !sql_array_pushback_LargeInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_LargeInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_BigInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_BigInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_SmallInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_SmallInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_Integer --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_Integer_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushback_TinyInt --
+\N
+[0, 1]
+[0, 2]
+[0, 3]
+[0, 4]
+[0, 5]
+[0, 6]
+[0, 7]
+[1, 10]
+[1, 11]
+[1, 12]
+[1, 8]
+[1, 9]
+
+-- !sql_array_pushback_TinyInt_notnull --
+[0, 1]
+[0, 2]
+[0, 3]
+[0, 4]
+[0, 5]
+[0, 6]
+[0, 7]
+[1, 10]
+[1, 11]
+[1, 12]
+[1, 8]
+[1, 9]
+
+-- !sql_array_pushback_DecimalV3 --
+\N
+[0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_pushback_DecimalV3_notnull --
+[0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_pushback_Boolean --
+\N
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_pushback_Boolean_notnull --
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_pushback_Char --
+\N
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+
+-- !sql_array_pushback_Char_notnull --
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char11", "char21", "char31", "char11"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char12", "char22", "char32", "char12"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+["char13", "char23", "char33", "char13"]
+
+-- !sql_array_pushback_Varchar --
+\N
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+
+-- !sql_array_pushback_Varchar_notnull --
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char11", "char21", "char31", "varchar11", "varchar21", "varchar31",
"varchar11"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char12", "char22", "char32", "varchar12", "varchar22", "varchar32",
"varchar12"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+["char13", "char23", "char33", "varchar13", "varchar23", "varchar33",
"varchar13"]
+
+-- !sql_array_pushback_String --
+\N
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+
+-- !sql_array_pushback_String_notnull --
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char21", "char31", "varchar11", "varchar21", "varchar31", "string1",
"string1"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char22", "char32", "varchar12", "varchar22", "varchar32", "string2",
"string2"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+["char23", "char33", "varchar13", "varchar23", "varchar33", "string3",
"string3"]
+
+-- !sql_array_pushback_DatetimeV2 --
+\N
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000]
+
+-- !sql_array_pushback_DatetimeV2_notnull --
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000]
+
+-- !sql_array_pushback_DateV2 --
+\N
+[2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12]
+
+-- !sql_array_pushback_DateV2_notnull --
+[2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12]
+
+-- !sql_array_pushfront_Double --
+\N
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_pushfront_Double_notnull --
+[0.1, 0.1]
+[0.2, 0.2]
+[0.3, 0.3]
+[0.4, 0.4]
+[0.5, 0.5]
+[0.6, 0.6]
+[0.7, 0.7]
+[0.8, 0.8]
+[0.9, 0.9]
+[1, 1]
+[1.1, 1.1]
+[1.2, 1.2]
+
+-- !sql_array_pushfront_Float --
+\N
+[0.1, 1]
+[0.2, 2]
+[0.3, 3]
+[0.4, 4]
+[0.5, 5]
+[0.6, 6]
+[0.7, 7]
+[0.8, 8]
+[0.9, 9]
+[1, 10]
+[1.1, 11]
+[1.2, 12]
+
+-- !sql_array_pushfront_Float_notnull --
+[0.1, 1]
+[0.2, 2]
+[0.3, 3]
+[0.4, 4]
+[0.5, 5]
+[0.6, 6]
+[0.7, 7]
+[0.8, 8]
+[0.9, 9]
+[1, 10]
+[1.1, 11]
+[1.2, 12]
+
+-- !sql_array_pushfront_LargeInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_LargeInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_BigInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_BigInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_SmallInt --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_SmallInt_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_Integer --
+\N
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_Integer_notnull --
+[1, 1]
+[10, 10]
+[11, 11]
+[12, 12]
+[2, 2]
+[3, 3]
+[4, 4]
+[5, 5]
+[6, 6]
+[7, 7]
+[8, 8]
+[9, 9]
+
+-- !sql_array_pushfront_TinyInt --
+\N
+[1, 0]
+[10, 1]
+[11, 1]
+[12, 1]
+[2, 0]
+[3, 0]
+[4, 0]
+[5, 0]
+[6, 0]
+[7, 0]
+[8, 1]
+[9, 1]
+
+-- !sql_array_pushfront_TinyInt_notnull --
+[1, 0]
+[10, 1]
+[11, 1]
+[12, 1]
+[2, 0]
+[3, 0]
+[4, 0]
+[5, 0]
+[6, 0]
+[7, 0]
+[8, 1]
+[9, 1]
+
+-- !sql_array_pushfront_DecimalV3 --
+\N
+[0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_pushfront_DecimalV3_notnull --
+[0.100000000, 0.100000000, 0.100000000]
+[0.200000000, 0.200000000, 0.200000000]
+[0.300000000, 0.300000000, 0.300000000]
+[0.400000000, 0.400000000, 0.400000000]
+[0.500000000, 0.500000000, 0.500000000]
+[0.600000000, 0.600000000, 0.600000000]
+[0.700000000, 0.700000000, 0.700000000]
+[0.800000000, 0.800000000, 0.800000000]
+[0.900000000, 0.900000000, 0.900000000]
+[1.000000000, 1.000000000, 1.000000000]
+[1.100000000, 1.100000000, 1.100000000]
+[1.200000000, 1.200000000, 1.200000000]
+
+-- !sql_array_pushfront_Boolean --
+\N
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_pushfront_Boolean_notnull --
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[0, 0]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+[1, 1]
+
+-- !sql_array_pushfront_Char --
+\N
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+
+-- !sql_array_pushfront_Char_notnull --
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char11", "char11", "char21", "char31"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char12", "char12", "char22", "char32"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+["char13", "char13", "char23", "char33"]
+
+-- !sql_array_pushfront_Varchar --
+\N
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+
+-- !sql_array_pushfront_Varchar_notnull --
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar11", "char11", "char21", "char31", "varchar11", "varchar21",
"varchar31"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar12", "char12", "char22", "char32", "varchar12", "varchar22",
"varchar32"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+["varchar13", "char13", "char23", "char33", "varchar13", "varchar23",
"varchar33"]
+
+-- !sql_array_pushfront_String --
+\N
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+
+-- !sql_array_pushfront_String_notnull --
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string1", "char21", "char31", "varchar11", "varchar21", "varchar31",
"string1"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string2", "char22", "char32", "varchar12", "varchar22", "varchar32",
"string2"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+["string3", "char23", "char33", "varchar13", "varchar23", "varchar33",
"string3"]
+
+-- !sql_array_pushfront_DatetimeV2 --
+\N
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000]
+
+-- !sql_array_pushfront_DatetimeV2_notnull --
+[2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01
01:00:01.000000, 2012-03-01 01:00:01.000000, 2012-03-01 01:00:01.000000]
+[2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02
02:01:02.000000, 2012-03-02 02:01:02.000000, 2012-03-02 02:01:02.000000]
+[2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03
03:02:03.000000, 2012-03-03 03:02:03.000000, 2012-03-03 03:02:03.000000]
+[2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04
04:03:04.000000, 2012-03-04 04:03:04.000000, 2012-03-04 04:03:04.000000]
+[2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05
05:04:05.000000, 2012-03-05 05:04:05.000000, 2012-03-05 05:04:05.000000]
+[2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06
06:05:06.000000, 2012-03-06 06:05:06.000000, 2012-03-06 06:05:06.000000]
+[2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07
07:06:07.000000, 2012-03-07 07:06:07.000000, 2012-03-07 07:06:07.000000]
+[2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08
08:07:08.000000, 2012-03-08 08:07:08.000000, 2012-03-08 08:07:08.000000]
+[2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09
09:08:09.000000, 2012-03-09 09:08:09.000000, 2012-03-09 09:08:09.000000]
+[2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10
10:09:10.000000, 2012-03-10 10:09:10.000000, 2012-03-10 10:09:10.000000]
+[2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11
11:10:11.000000, 2012-03-11 11:10:11.000000, 2012-03-11 11:10:11.000000]
+[2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12
12:11:12.000000, 2012-03-12 12:11:12.000000, 2012-03-12 12:11:12.000000]
+
+-- !sql_array_pushfront_DateV2 --
+\N
+[2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12]
+
+-- !sql_array_pushfront_DateV2_notnull --
+[2012-03-01, 2012-03-01, 2012-03-01]
+[2012-03-02, 2012-03-02, 2012-03-02]
+[2012-03-03, 2012-03-03, 2012-03-03]
+[2012-03-04, 2012-03-04, 2012-03-04]
+[2012-03-05, 2012-03-05, 2012-03-05]
+[2012-03-06, 2012-03-06, 2012-03-06]
+[2012-03-07, 2012-03-07, 2012-03-07]
+[2012-03-08, 2012-03-08, 2012-03-08]
+[2012-03-09, 2012-03-09, 2012-03-09]
+[2012-03-10, 2012-03-10, 2012-03-10]
+[2012-03-11, 2012-03-11, 2012-03-11]
+[2012-03-12, 2012-03-12, 2012-03-12]
+
-- !sql_array_range_one_param --
\N
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
@@ -13008,12 +14226,12 @@ true
-- !array_repeat1 --
["hello", "hello"]
--- !array_repeat1 --
+-- !array_repeat2 --
[123, 123]
--- !array_repeat1 --
+-- !array_repeat3 --
[NULL, NULL]
--- !array_repeat1 --
+-- !array_repeat4 --
[]
diff --git
a/regression-test/data/query_p0/sql_functions/array_functions/test_array_with_scale_type.out
b/regression-test/data/query_p0/sql_functions/array_functions/test_array_with_scale_type.out
index 70feafa910b..c643331e2a4 100644
---
a/regression-test/data/query_p0/sql_functions/array_functions/test_array_with_scale_type.out
+++
b/regression-test/data/query_p0/sql_functions/array_functions/test_array_with_scale_type.out
@@ -111,16 +111,16 @@
\N
-- !select --
-[2022-12-02 22:23:24.999, 2022-12-02 22:23:23.997]
-[2022-12-02 22:23:24.999, 2022-12-02 22:23:23.997]
+[2022-12-02 22:23:24.123, 2022-12-02 22:23:23.123]
+[2022-12-02 22:23:24.123, 2022-12-02 22:23:23.123]
-- !select --
[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
[2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000]
-- !select --
-[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000, 2022-12-02 22:23:24.999,
2022-12-02 22:23:23.997]
-[2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000, 2022-12-02 22:23:24.999,
2022-12-02 22:23:23.997]
+[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000, 2022-12-02 22:23:24.123,
2022-12-02 22:23:23.123]
+[2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000, 2022-12-02 22:23:24.123,
2022-12-02 22:23:23.123]
-- !select --
[22.679, 33.679, 22.679, 33.679, 22.679, 33.679]
@@ -131,24 +131,24 @@
[{23.679, 23.679, 2022-12-02 22:23:25.000, 23.679}, {34.679, 34.679,
2022-12-02 23:23:25.000, 34.679}]
-- !select --
-[{2022-12-02 22:23:24.999}, {2022-12-02 22:23:23.997}]
-[{2022-12-02 22:23:24.999}, {2022-12-02 22:23:23.997}]
+[{2022-12-02 22:23:24.123}, {2022-12-02 22:23:23.123}]
+[{2022-12-02 22:23:24.123}, {2022-12-02 22:23:23.123}]
-- !select --
[{2022-12-01 22:23:25.000}, {2022-12-01 23:23:25.000}]
[{2022-12-02 22:23:25.000}, {2022-12-02 23:23:25.000}]
-- !select --
-[{2022-12-01 22:23:25.000, 2022-12-02 22:23:24.999}, {2022-12-01 23:23:25.000,
2022-12-02 22:23:23.997}]
-[{2022-12-02 22:23:25.000, 2022-12-02 22:23:24.999}, {2022-12-02 23:23:25.000,
2022-12-02 22:23:23.997}]
+[{2022-12-01 22:23:25.000, 2022-12-02 22:23:24.123}, {2022-12-01 23:23:25.000,
2022-12-02 22:23:23.123}]
+[{2022-12-02 22:23:25.000, 2022-12-02 22:23:24.123}, {2022-12-02 23:23:25.000,
2022-12-02 22:23:23.123}]
-- !select --
-[2022-12-02 22:23:23.997, 2022-12-02 22:23:24.999]
-[2022-12-02 22:23:23.997, 2022-12-02 22:23:24.999]
+[2022-12-02 22:23:23.123, 2022-12-02 22:23:24.123]
+[2022-12-02 22:23:23.123, 2022-12-02 22:23:24.123]
-- !select --
-[2023-03-08 23:23:23.997, 2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
-[2023-03-08 23:23:23.997, 2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000]
+[2023-03-08 23:23:23.123, 2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
+[2023-03-08 23:23:23.123, 2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000]
-- !select --
2022-12-01T22:23:25 [2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
[2022-12-01 22:23:25.000, 2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
@@ -163,12 +163,12 @@
23.679 [23.679, 34.679] [23.679, 23.679, 34.679]
-- !select --
-[2022-12-02 22:23:24.999, 2022-12-02 22:23:23.997]
-[2022-12-02 22:23:24.999, 2022-12-02 22:23:23.997]
+[2022-12-02 22:23:24.123, 2022-12-02 22:23:23.123]
+[2022-12-02 22:23:24.123, 2022-12-02 22:23:23.123]
-- !select --
-[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000, 2023-03-08 23:23:23.997]
-[2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000, 2023-03-08 23:23:23.997]
+[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000, 2023-03-08 23:23:23.123]
+[2022-12-02 22:23:25.000, 2022-12-02 23:23:25.000, 2023-03-08 23:23:23.123]
-- !select --
2022-12-01T22:23:25 [2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000]
[2022-12-01 22:23:25.000, 2022-12-01 23:23:25.000, 2022-12-01 22:23:25.000]
diff --git
a/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
b/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
index 3ea27c11c12..42b5cf8525c 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
@@ -71,6 +71,39 @@ suite("nereids_scalar_fn_Array") {
order_qt_sql_array_compact_DateV2 "select array_compact(kadtv2) from
fn_test"
order_qt_sql_array_compact_DateV2_notnull "select array_compact(kadtv2)
from fn_test_not_nullable"
+ // array_concat
+ order_qt_sql_array_concat_Double "select array_concat(kadbl, kadbl) from
fn_test"
+ order_qt_sql_array_concat_Double_notnull "select array_concat(kadbl,
kadbl) from fn_test_not_nullable"
+ order_qt_sql_array_concat_Float "select array_concat(kafloat, kafloat)
from fn_test"
+ order_qt_sql_array_concat_Float_notnull "select array_concat(kafloat,
kafloat) from fn_test_not_nullable"
+ order_qt_sql_array_concat_LargeInt "select array_concat(kalint, kalint)
from fn_test"
+ order_qt_sql_array_concat_LargeInt_notnull "select array_concat(kalint,
kalint) from fn_test_not_nullable"
+ order_qt_sql_array_concat_BigInt "select array_concat(kabint, kabint) from
fn_test"
+ order_qt_sql_array_concat_BigInt_notnull "select array_concat(kabint,
kabint) from fn_test_not_nullable"
+ order_qt_sql_array_concat_SmallInt "select array_concat(kasint, kasint)
from fn_test"
+ order_qt_sql_array_concat_SmallInt_notnull "select array_concat(kasint,
kasint) from fn_test_not_nullable"
+ order_qt_sql_array_concat_Integer "select array_concat(kaint, kaint) from
fn_test"
+ order_qt_sql_array_concat_Integer_notnull "select array_concat(kaint,
kaint) from fn_test_not_nullable"
+ order_qt_sql_array_concat_TinyInt "select array_concat(katint, katint)
from fn_test"
+ order_qt_sql_array_concat_TinyInt_notnull "select array_concat(katint,
katint) from fn_test_not_nullable"
+ order_qt_sql_array_concat_DecimalV3 "select array_concat(kadcml, kadcml)
from fn_test"
+ order_qt_sql_array_concat_DecimalV3_notnull "select array_concat(kadcml,
kadcml) from fn_test_not_nullable"
+
+ order_qt_sql_array_concat_Boolean "select array_concat(kabool, kabool)
from fn_test"
+ order_qt_sql_array_concat_Boolean_notnull "select array_concat(kabool,
kabool) from fn_test_not_nullable"
+
+ order_qt_sql_array_concat_Char "select array_concat(kachr, kachr) from
fn_test"
+ order_qt_sql_array_concat_Char_notnull "select array_concat(kachr, kachr)
from fn_test_not_nullable"
+ order_qt_sql_array_concat_Varchar "select array_concat(kavchr, kavchr)
from fn_test"
+ order_qt_sql_array_concat_Varchar_notnull "select array_concat(kavchr,
kavchr) from fn_test_not_nullable"
+ order_qt_sql_array_concat_String "select array_concat(kastr, kastr) from
fn_test"
+ order_qt_sql_array_concat_String_notnull "select array_concat(kastr,
kastr) from fn_test_not_nullable"
+
+ order_qt_sql_array_concat_DatetimeV2 "select array_concat(kadtmv2,
kadtmv2) from fn_test"
+ order_qt_sql_array_concat_DatetimeV2_notnull "select array_concat(kadtmv2,
kadtmv2) from fn_test_not_nullable"
+ order_qt_sql_array_concat_DateV2 "select array_concat(kadtv2, kadtv2) from
fn_test"
+ order_qt_sql_array_concat_DateV2_notnull "select array_concat(kadtv2,
kadtv2) from fn_test_not_nullable"
+
// array_difference
order_qt_sql_array_difference_Double "select array_difference(kadbl) from
fn_test"
order_qt_sql_array_difference_Double_notnull "select
array_difference(kadbl) from fn_test_not_nullable"
@@ -517,6 +550,72 @@ suite("nereids_scalar_fn_Array") {
order_qt_sql_array_product_DecimalV3 "select array_product(kadcml) from
fn_test"
order_qt_sql_array_product_DecimalV3_notnull "select array_product(kadcml)
from fn_test_not_nullable"
+ // array_pushback
+ order_qt_sql_array_pushback_Double "select array_pushback(kadbl, kdbl)
from fn_test"
+ order_qt_sql_array_pushback_Double_notnull "select array_pushback(kadbl,
kdbl) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_Float "select array_pushback(kafloat, kfloat)
from fn_test"
+ order_qt_sql_array_pushback_Float_notnull "select array_pushback(kafloat,
kfloat) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_LargeInt "select array_pushback(kalint, klint)
from fn_test"
+ order_qt_sql_array_pushback_LargeInt_notnull "select
array_pushback(kalint, klint) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_BigInt "select array_pushback(kabint, kbint)
from fn_test"
+ order_qt_sql_array_pushback_BigInt_notnull "select array_pushback(kabint,
kbint) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_SmallInt "select array_pushback(kasint, ksint)
from fn_test"
+ order_qt_sql_array_pushback_SmallInt_notnull "select
array_pushback(kasint, ksint) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_Integer "select array_pushback(kaint, kint)
from fn_test"
+ order_qt_sql_array_pushback_Integer_notnull "select array_pushback(kaint,
kint) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_TinyInt "select array_pushback(katint, ktint)
from fn_test"
+ order_qt_sql_array_pushback_TinyInt_notnull "select array_pushback(katint,
ktint) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_DecimalV3 "select array_pushback(kadcml,
kdcmls1) from fn_test"
+ order_qt_sql_array_pushback_DecimalV3_notnull "select
array_pushback(kadcml, kdcmls1) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushback_Boolean "select array_pushback(kabool, kbool)
from fn_test"
+ order_qt_sql_array_pushback_Boolean_notnull "select array_pushback(kabool,
kbool) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushback_Char "select array_pushback(kachr, kchrs1)
from fn_test"
+ order_qt_sql_array_pushback_Char_notnull "select array_pushback(kachr,
kchrs1) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_Varchar "select array_pushback(kavchr,
kvchrs1) from fn_test"
+ order_qt_sql_array_pushback_Varchar_notnull "select array_pushback(kavchr,
kvchrs1) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_String "select array_pushback(kastr, kstr)
from fn_test"
+ order_qt_sql_array_pushback_String_notnull "select array_pushback(kastr,
kstr) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushback_DatetimeV2 "select array_pushback(kadtmv2,
kdtmv2s1) from fn_test"
+ order_qt_sql_array_pushback_DatetimeV2_notnull "select
array_pushback(kadtmv2, kdtmv2s1) from fn_test_not_nullable"
+ order_qt_sql_array_pushback_DateV2 "select array_pushback(kadtv2, kdtv2)
from fn_test"
+ order_qt_sql_array_pushback_DateV2_notnull "select array_pushback(kadtv2,
kdtv2) from fn_test_not_nullable"
+
+ // array_pushfront
+ order_qt_sql_array_pushfront_Double "select array_pushfront(kadbl, kdbl)
from fn_test"
+ order_qt_sql_array_pushfront_Double_notnull "select array_pushfront(kadbl,
kdbl) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_Float "select array_pushfront(kafloat,
kfloat) from fn_test"
+ order_qt_sql_array_pushfront_Float_notnull "select
array_pushfront(kafloat, kfloat) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_LargeInt "select array_pushfront(kalint,
klint) from fn_test"
+ order_qt_sql_array_pushfront_LargeInt_notnull "select
array_pushfront(kalint, klint) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_BigInt "select array_pushfront(kabint, kbint)
from fn_test"
+ order_qt_sql_array_pushfront_BigInt_notnull "select
array_pushfront(kabint, kbint) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_SmallInt "select array_pushfront(kasint,
ksint) from fn_test"
+ order_qt_sql_array_pushfront_SmallInt_notnull "select
array_pushfront(kasint, ksint) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_Integer "select array_pushfront(kaint, kint)
from fn_test"
+ order_qt_sql_array_pushfront_Integer_notnull "select
array_pushfront(kaint, kint) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_TinyInt "select array_pushfront(katint,
ktint) from fn_test"
+ order_qt_sql_array_pushfront_TinyInt_notnull "select
array_pushfront(katint, ktint) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_DecimalV3 "select array_pushfront(kadcml,
kdcmls1) from fn_test"
+ order_qt_sql_array_pushfront_DecimalV3_notnull "select
array_pushfront(kadcml, kdcmls1) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushfront_Boolean "select array_pushfront(kabool,
kbool) from fn_test"
+ order_qt_sql_array_pushfront_Boolean_notnull "select
array_pushfront(kabool, kbool) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushfront_Char "select array_pushfront(kachr, kchrs1)
from fn_test"
+ order_qt_sql_array_pushfront_Char_notnull "select array_pushfront(kachr,
kchrs1) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_Varchar "select array_pushfront(kavchr,
kvchrs1) from fn_test"
+ order_qt_sql_array_pushfront_Varchar_notnull "select
array_pushfront(kavchr, kvchrs1) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_String "select array_pushfront(kastr, kstr)
from fn_test"
+ order_qt_sql_array_pushfront_String_notnull "select array_pushfront(kastr,
kstr) from fn_test_not_nullable"
+
+ order_qt_sql_array_pushfront_DatetimeV2 "select array_pushfront(kadtmv2,
kdtmv2s1) from fn_test"
+ order_qt_sql_array_pushfront_DatetimeV2_notnull "select
array_pushfront(kadtmv2, kdtmv2s1) from fn_test_not_nullable"
+ order_qt_sql_array_pushfront_DateV2 "select array_pushfront(kadtv2, kdtv2)
from fn_test"
+ order_qt_sql_array_pushfront_DateV2_notnull "select
array_pushfront(kadtv2, kdtv2) from fn_test_not_nullable"
+
// array_range
order_qt_sql_array_range_one_param "select array_range(kint) from fn_test"
order_qt_sql_array_range_one_param_notnull "select array_range(kint) from
fn_test_not_nullable"
@@ -1154,8 +1253,11 @@ suite("nereids_scalar_fn_Array") {
// array_repeat
qt_array_repeat1 """select array_repeat("hello", 2)"""
- qt_array_repeat1 """select array_repeat(123, 2)"""
- qt_array_repeat1 """select array_repeat(null, 2)"""
- qt_array_repeat1 """select array_repeat(3, null)"""
+ qt_array_repeat2 """select array_repeat(123, 2)"""
+ qt_array_repeat3 """select array_repeat(null, 2)"""
+ qt_array_repeat4 """select array_repeat(3, null)"""
+
+ // array_zip
+ sql "select array_zip([1], ['1'], [1.0])"
}
\ No newline at end of file
diff --git
a/regression-test/suites/query_p0/sql_functions/array_functions/test_array_with_scale_type.groovy
b/regression-test/suites/query_p0/sql_functions/array_functions/test_array_with_scale_type.groovy
index 53a37100f0e..6cd4312b14e 100644
---
a/regression-test/suites/query_p0/sql_functions/array_functions/test_array_with_scale_type.groovy
+++
b/regression-test/suites/query_p0/sql_functions/array_functions/test_array_with_scale_type.groovy
@@ -78,24 +78,24 @@ suite("test_array_with_scale_type") {
qt_select """select array_apply(c_array_decimal, ">=", 22.1) from
${tableName}"""
qt_select """select array_apply(c_array_decimal, ">=", null) from
${tableName}"""
- qt_select """select array_concat(array(cast ('2022-12-02
22:23:24.999999' as datetimev2(3)),cast ('2022-12-02 22:23:23.997799' as
datetimev2(3)))) from ${tableName}"""
+ qt_select """select array_concat(array(cast ('2022-12-02
22:23:24.123123' as datetimev2(3)),cast ('2022-12-02 22:23:23.123123' as
datetimev2(3)))) from ${tableName}"""
qt_select """select array_concat(c_array_datetimev2) from
${tableName}"""
- qt_select """select array_concat(c_array_datetimev2, array(cast
('2022-12-02 22:23:24.999999' as datetimev2(3)),cast ('2022-12-02
22:23:23.997799' as datetimev2(3)))) from ${tableName}"""
+ qt_select """select array_concat(c_array_datetimev2, array(cast
('2022-12-02 22:23:24.123123' as datetimev2(3)),cast ('2022-12-02
22:23:23.123123' as datetimev2(3)))) from ${tableName}"""
qt_select """select array_concat(c_array_decimal, c_array_decimal,
c_array_decimal) from ${tableName}"""
qt_select """select array_zip(c_array_decimal, c_array_decimal,
c_array_datetimev2, c_array_decimal) from ${tableName}"""
- qt_select """select array_zip(array(cast ('2022-12-02 22:23:24.999999'
as datetimev2(3)),cast ('2022-12-02 22:23:23.997799' as datetimev2(3)))) from
${tableName}"""
+ qt_select """select array_zip(array(cast ('2022-12-02 22:23:24.123123'
as datetimev2(3)),cast ('2022-12-02 22:23:23.123123' as datetimev2(3)))) from
${tableName}"""
qt_select """select array_zip(c_array_datetimev2) from ${tableName}"""
- qt_select """select array_zip(c_array_datetimev2, array(cast
('2022-12-02 22:23:24.999999' as datetimev2(3)),cast ('2022-12-02
22:23:23.997799' as datetimev2(3)))) from ${tableName}"""
+ qt_select """select array_zip(c_array_datetimev2, array(cast
('2022-12-02 22:23:24.123123' as datetimev2(3)),cast ('2022-12-02
22:23:23.123123' as datetimev2(3)))) from ${tableName}"""
- qt_select "select array_pushfront(array(cast ('2022-12-02
22:23:24.999999' as datetimev2(3))),cast ('2022-12-02 22:23:23.997799' as
datetimev2(3))) from ${tableName}"
- qt_select "select array_pushfront(c_array_datetimev2, cast
('2023-03-08 23:23:23.997799' as datetimev2(3))) from ${tableName}"
+ qt_select "select array_pushfront(array(cast ('2022-12-02
22:23:24.123123' as datetimev2(3))),cast ('2022-12-02 22:23:23.123123' as
datetimev2(3))) from ${tableName}"
+ qt_select "select array_pushfront(c_array_datetimev2, cast
('2023-03-08 23:23:23.123123' as datetimev2(3))) from ${tableName}"
qt_select "select c_datetimev2, c_array_datetimev2,
array_pushfront(c_array_datetimev2, c_datetimev2) from ${tableName}"
qt_select "select array_pushfront(c_array_decimal, cast (25.99 as
decimalv3(10,3))) from ${tableName}"
qt_select "select c_decimal, c_array_decimal,
array_pushfront(c_array_decimal, c_decimal) from ${tableName}"
- qt_select "select array_pushback(array(cast ('2022-12-02
22:23:24.999999' as datetimev2(3))),cast ('2022-12-02 22:23:23.997799' as
datetimev2(3))) from ${tableName}"
- qt_select "select array_pushback(c_array_datetimev2, cast ('2023-03-08
23:23:23.997799' as datetimev2(3))) from ${tableName}"
+ qt_select "select array_pushback(array(cast ('2022-12-02
22:23:24.123123' as datetimev2(3))),cast ('2022-12-02 22:23:23.123123' as
datetimev2(3))) from ${tableName}"
+ qt_select "select array_pushback(c_array_datetimev2, cast ('2023-03-08
23:23:23.123123' as datetimev2(3))) from ${tableName}"
qt_select "select c_datetimev2, c_array_datetimev2,
array_pushback(c_array_datetimev2, c_datetimev2) from ${tableName}"
qt_select "select array_pushback(c_array_decimal, cast (25.99 as
decimalv3(10,3))) from ${tableName}"
qt_select "select c_decimal, c_array_decimal,
array_pushback(c_array_decimal, c_decimal) from ${tableName}"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]