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

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


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 0d9f48657d5 [nereids](datetime) fix wrong result type of datetime add 
with interval as first arg (#26957) (#26987)
0d9f48657d5 is described below

commit 0d9f48657d5a712be93972e93a70a1fd36064f78
Author: TengJianPing <[email protected]>
AuthorDate: Tue Nov 14 22:46:26 2023 +0800

    [nereids](datetime) fix wrong result type of datetime add with interval as 
first arg (#26957) (#26987)
---
 .../doris/nereids/parser/LogicalPlanBuilder.java   |    4 +-
 .../trees/expressions/TimestampArithmetic.java     |   41 +-
 .../nereids/rules/expression/FoldConstantTest.java |    2 +-
 .../test_timestamp_arithmetic.out                  | 1400 +++++++++++++++++++-
 .../test_timestamp_arithmetic.sql                  |   90 ++
 5 files changed, 1460 insertions(+), 77 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index 03426ef4dc8..248bb2e6e2c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -905,7 +905,7 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
                     throw new ParseException("Only supported: " + 
Operator.ADD, ctx);
                 }
                 Interval interval = (Interval) left;
-                return new TimestampArithmetic(Operator.ADD, right, 
interval.value(), interval.timeUnit(), true);
+                return new TimestampArithmetic(Operator.ADD, right, 
interval.value(), interval.timeUnit());
             }
 
             if (right instanceof Interval) {
@@ -918,7 +918,7 @@ public class LogicalPlanBuilder extends 
DorisParserBaseVisitor<Object> {
                     throw new ParseException("Only supported: " + Operator.ADD 
+ " and " + Operator.SUBTRACT, ctx);
                 }
                 Interval interval = (Interval) right;
-                return new TimestampArithmetic(op, left, interval.value(), 
interval.timeUnit(), false);
+                return new TimestampArithmetic(op, left, interval.value(), 
interval.timeUnit());
             }
 
             return ParserUtils.withOrigin(ctx, () -> {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
index 9406d782f35..af5ca2dfcd2 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java
@@ -46,24 +46,21 @@ import java.util.Objects;
 public class TimestampArithmetic extends Expression implements 
BinaryExpression, PropagateNullableOnDateLikeV2Args {
 
     private final String funcName;
-    private final boolean intervalFirst;
     private final Operator op;
     private final TimeUnit timeUnit;
 
-    public TimestampArithmetic(Operator op, Expression e1, Expression e2, 
TimeUnit timeUnit, boolean intervalFirst) {
-        this(null, op, e1, e2, timeUnit, intervalFirst);
+    public TimestampArithmetic(Operator op, Expression e1, Expression e2, 
TimeUnit timeUnit) {
+        this(null, op, e1, e2, timeUnit);
     }
 
     /**
      * Full parameter constructor.
      */
-    public TimestampArithmetic(String funcName, Operator op, Expression e1, 
Expression e2, TimeUnit timeUnit,
-            boolean intervalFirst) {
+    public TimestampArithmetic(String funcName, Operator op, Expression e1, 
Expression e2, TimeUnit timeUnit) {
         super(ImmutableList.of(e1, e2));
         Preconditions.checkState(op == Operator.ADD || op == 
Operator.SUBTRACT);
         this.funcName = funcName;
         this.op = op;
-        this.intervalFirst = intervalFirst;
         this.timeUnit = timeUnit;
     }
 
@@ -76,21 +73,16 @@ public class TimestampArithmetic extends Expression 
implements BinaryExpression,
     public TimestampArithmetic withChildren(List<Expression> children) {
         Preconditions.checkArgument(children.size() == 2);
         return new TimestampArithmetic(this.funcName, this.op, 
children.get(0), children.get(1),
-                this.timeUnit, this.intervalFirst);
+                this.timeUnit);
     }
 
     public Expression withFuncName(String funcName) {
-        return new TimestampArithmetic(funcName, this.op, children.get(0), 
children.get(1), this.timeUnit,
-                this.intervalFirst);
+        return new TimestampArithmetic(funcName, this.op, children.get(0), 
children.get(1), this.timeUnit);
     }
 
     @Override
     public DataType getDataType() throws UnboundException {
-        int dateChildIndex = 0;
-        if (intervalFirst) {
-            dateChildIndex = 1;
-        }
-        DataType childType = child(dateChildIndex).getDataType();
+        DataType childType = child(0).getDataType();
         if (childType instanceof DateTimeV2Type) {
             return childType;
         }
@@ -137,21 +129,12 @@ public class TimestampArithmetic extends Expression 
implements BinaryExpression,
             strBuilder.append(")");
             return strBuilder.toString();
         }
-        if (intervalFirst) {
-            // Non-function-call like version with interval as first operand.
-            strBuilder.append("INTERVAL ");
-            strBuilder.append(child(1).toSql()).append(" ");
-            strBuilder.append(timeUnit);
-            strBuilder.append(" ").append(op.toString()).append(" ");
-            strBuilder.append(child(0).toSql());
-        } else {
-            // Non-function-call like version with interval as second operand.
-            strBuilder.append(child(0).toSql());
-            strBuilder.append(" ").append(op.toString()).append(" ");
-            strBuilder.append("INTERVAL ");
-            strBuilder.append(child(1).toSql()).append(" ");
-            strBuilder.append(timeUnit);
-        }
+        // Non-function-call like version with interval as second operand.
+        strBuilder.append(child(0).toSql());
+        strBuilder.append(" ").append(op.toString()).append(" ");
+        strBuilder.append("INTERVAL ");
+        strBuilder.append(child(1).toSql()).append(" ");
+        strBuilder.append(timeUnit);
         return strBuilder.toString();
     }
 
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/FoldConstantTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/FoldConstantTest.java
index e92841f5ead..882d1da81a4 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/FoldConstantTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/FoldConstantTest.java
@@ -285,7 +285,7 @@ public class FoldConstantTest extends 
ExpressionRewriteTestHelper {
 
         // a + interval 1 day
         Slot a = SlotReference.of("a", DateTimeV2Type.SYSTEM_DEFAULT);
-        TimestampArithmetic arithmetic = new TimestampArithmetic(Operator.ADD, 
a, Literal.of(1), TimeUnit.DAY, false);
+        TimestampArithmetic arithmetic = new TimestampArithmetic(Operator.ADD, 
a, Literal.of(1), TimeUnit.DAY);
         Expression process = process(arithmetic);
         assertRewrite(process, process);
     }
diff --git 
a/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out 
b/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out
index fd5f1478778..979c29e2d62 100644
--- a/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out
+++ b/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out
@@ -37,6 +37,36 @@
 
 -- !test_timestamp_arithmetic_5 --
 \N
+2012-03-02
+2012-03-03
+2012-03-04
+2012-03-05
+2012-03-06
+2012-03-07
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+
+-- !test_timestamp_arithmetic_6 --
+\N
+2012-03-01T00:00:01
+2012-03-02T00:00:01
+2012-03-03T00:00:01
+2012-03-04T00:00:01
+2012-03-05T00:00:01
+2012-03-06T00:00:01
+2012-03-07T00:00:01
+2012-03-08T00:00:01
+2012-03-09T00:00:01
+2012-03-10T00:00:01
+2012-03-11T00:00:01
+2012-03-12T00:00:01
+
+-- !test_timestamp_arithmetic_7 --
+\N
 2012-02-29
 2012-03-01
 2012-03-02
@@ -50,7 +80,7 @@
 2012-03-10
 2012-03-11
 
--- !test_timestamp_arithmetic_6 --
+-- !test_timestamp_arithmetic_8 --
 \N
 2012-02-29T23:59:59
 2012-03-01T23:59:59
@@ -65,7 +95,7 @@
 2012-03-10T23:59:59
 2012-03-11T23:59:59
 
--- !test_timestamp_arithmetic_7 --
+-- !test_timestamp_arithmetic_9 --
 2012-03-02
 2012-03-03
 2012-03-04
@@ -79,7 +109,7 @@
 2012-03-12
 2012-03-13
 
--- !test_timestamp_arithmetic_8 --
+-- !test_timestamp_arithmetic_10 --
 2012-03-01T00:00:01
 2012-03-02T00:00:01
 2012-03-03T00:00:01
@@ -93,7 +123,35 @@
 2012-03-11T00:00:01
 2012-03-12T00:00:01
 
--- !test_timestamp_arithmetic_9 --
+-- !test_timestamp_arithmetic_11 --
+2012-03-02
+2012-03-03
+2012-03-04
+2012-03-05
+2012-03-06
+2012-03-07
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+
+-- !test_timestamp_arithmetic_12 --
+2012-03-01T00:00:01
+2012-03-02T00:00:01
+2012-03-03T00:00:01
+2012-03-04T00:00:01
+2012-03-05T00:00:01
+2012-03-06T00:00:01
+2012-03-07T00:00:01
+2012-03-08T00:00:01
+2012-03-09T00:00:01
+2012-03-10T00:00:01
+2012-03-11T00:00:01
+2012-03-12T00:00:01
+
+-- !test_timestamp_arithmetic_13 --
 2012-02-29
 2012-03-01
 2012-03-02
@@ -107,7 +165,7 @@
 2012-03-10
 2012-03-11
 
--- !test_timestamp_arithmetic_10 --
+-- !test_timestamp_arithmetic_14 --
 2012-02-29T23:59:59
 2012-03-01T23:59:59
 2012-03-02T23:59:59
@@ -121,7 +179,52 @@
 2012-03-10T23:59:59
 2012-03-11T23:59:59
 
--- !test_timestamp_arithmetic_11 --
+-- !test_timestamp_arithmetic_15 --
+\N
+2013-03-01
+2013-03-02
+2013-03-03
+2013-03-04
+2013-03-05
+2013-03-06
+2013-03-07
+2013-03-08
+2013-03-09
+2013-03-10
+2013-03-11
+2013-03-12
+
+-- !test_timestamp_arithmetic_16 --
+\N
+2012-04-01
+2012-04-02
+2012-04-03
+2012-04-04
+2012-04-05
+2012-04-06
+2012-04-07
+2012-04-08
+2012-04-09
+2012-04-10
+2012-04-11
+2012-04-12
+
+-- !test_timestamp_arithmetic_17 --
+\N
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+2012-03-14
+2012-03-15
+2012-03-16
+2012-03-17
+2012-03-18
+2012-03-19
+
+-- !test_timestamp_arithmetic_18 --
 \N
 2012-03-02
 2012-03-03
@@ -136,7 +239,37 @@
 2012-03-12
 2012-03-13
 
--- !test_timestamp_arithmetic_12 --
+-- !test_timestamp_arithmetic_19 --
+\N
+2012-03-01T01:00
+2012-03-02T01:00
+2012-03-03T01:00
+2012-03-04T01:00
+2012-03-05T01:00
+2012-03-06T01:00
+2012-03-07T01:00
+2012-03-08T01:00
+2012-03-09T01:00
+2012-03-10T01:00
+2012-03-11T01:00
+2012-03-12T01:00
+
+-- !test_timestamp_arithmetic_20 --
+\N
+2012-03-01T00:01
+2012-03-02T00:01
+2012-03-03T00:01
+2012-03-04T00:01
+2012-03-05T00:01
+2012-03-06T00:01
+2012-03-07T00:01
+2012-03-08T00:01
+2012-03-09T00:01
+2012-03-10T00:01
+2012-03-11T00:01
+2012-03-12T00:01
+
+-- !test_timestamp_arithmetic_21 --
 \N
 2012-03-01T00:00:01
 2012-03-02T00:00:01
@@ -151,7 +284,112 @@
 2012-03-11T00:00:01
 2012-03-12T00:00:01
 
--- !test_timestamp_arithmetic_13 --
+-- !test_timestamp_arithmetic_22 --
+\N
+2013-03-01
+2013-03-02
+2013-03-03
+2013-03-04
+2013-03-05
+2013-03-06
+2013-03-07
+2013-03-08
+2013-03-09
+2013-03-10
+2013-03-11
+2013-03-12
+
+-- !test_timestamp_arithmetic_23 --
+\N
+2012-04-01
+2012-04-02
+2012-04-03
+2012-04-04
+2012-04-05
+2012-04-06
+2012-04-07
+2012-04-08
+2012-04-09
+2012-04-10
+2012-04-11
+2012-04-12
+
+-- !test_timestamp_arithmetic_24 --
+\N
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+2012-03-14
+2012-03-15
+2012-03-16
+2012-03-17
+2012-03-18
+2012-03-19
+
+-- !test_timestamp_arithmetic_25 --
+\N
+2012-03-02
+2012-03-03
+2012-03-04
+2012-03-05
+2012-03-06
+2012-03-07
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+
+-- !test_timestamp_arithmetic_26 --
+\N
+2012-03-01T01:00
+2012-03-02T01:00
+2012-03-03T01:00
+2012-03-04T01:00
+2012-03-05T01:00
+2012-03-06T01:00
+2012-03-07T01:00
+2012-03-08T01:00
+2012-03-09T01:00
+2012-03-10T01:00
+2012-03-11T01:00
+2012-03-12T01:00
+
+-- !test_timestamp_arithmetic_27 --
+\N
+2012-03-01T00:01
+2012-03-02T00:01
+2012-03-03T00:01
+2012-03-04T00:01
+2012-03-05T00:01
+2012-03-06T00:01
+2012-03-07T00:01
+2012-03-08T00:01
+2012-03-09T00:01
+2012-03-10T00:01
+2012-03-11T00:01
+2012-03-12T00:01
+
+-- !test_timestamp_arithmetic_28 --
+\N
+2012-03-01T00:00:01
+2012-03-02T00:00:01
+2012-03-03T00:00:01
+2012-03-04T00:00:01
+2012-03-05T00:00:01
+2012-03-06T00:00:01
+2012-03-07T00:00:01
+2012-03-08T00:00:01
+2012-03-09T00:00:01
+2012-03-10T00:00:01
+2012-03-11T00:00:01
+2012-03-12T00:00:01
+
+-- !test_timestamp_arithmetic_29 --
 \N
 2012-02-29
 2012-03-01
@@ -166,7 +404,7 @@
 2012-03-10
 2012-03-11
 
--- !test_timestamp_arithmetic_14 --
+-- !test_timestamp_arithmetic_30 --
 \N
 2012-02-29T23:59:59
 2012-03-01T23:59:59
@@ -181,7 +419,7 @@
 2012-03-10T23:59:59
 2012-03-11T23:59:59
 
--- !test_timestamp_arithmetic_15 --
+-- !test_timestamp_arithmetic_31 --
 2012-03-02
 2012-03-03
 2012-03-04
@@ -195,7 +433,7 @@
 2012-03-12
 2012-03-13
 
--- !test_timestamp_arithmetic_16 --
+-- !test_timestamp_arithmetic_32 --
 2012-03-01T00:00:01
 2012-03-02T00:00:01
 2012-03-03T00:00:01
@@ -209,7 +447,105 @@
 2012-03-11T00:00:01
 2012-03-12T00:00:01
 
--- !test_timestamp_arithmetic_17 --
+-- !test_timestamp_arithmetic_33 --
+2013-03-01
+2013-03-02
+2013-03-03
+2013-03-04
+2013-03-05
+2013-03-06
+2013-03-07
+2013-03-08
+2013-03-09
+2013-03-10
+2013-03-11
+2013-03-12
+
+-- !test_timestamp_arithmetic_34 --
+2012-04-01
+2012-04-02
+2012-04-03
+2012-04-04
+2012-04-05
+2012-04-06
+2012-04-07
+2012-04-08
+2012-04-09
+2012-04-10
+2012-04-11
+2012-04-12
+
+-- !test_timestamp_arithmetic_35 --
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+2012-03-14
+2012-03-15
+2012-03-16
+2012-03-17
+2012-03-18
+2012-03-19
+
+-- !test_timestamp_arithmetic_36 --
+2012-03-02
+2012-03-03
+2012-03-04
+2012-03-05
+2012-03-06
+2012-03-07
+2012-03-08
+2012-03-09
+2012-03-10
+2012-03-11
+2012-03-12
+2012-03-13
+
+-- !test_timestamp_arithmetic_37 --
+2012-03-01T01:00
+2012-03-02T01:00
+2012-03-03T01:00
+2012-03-04T01:00
+2012-03-05T01:00
+2012-03-06T01:00
+2012-03-07T01:00
+2012-03-08T01:00
+2012-03-09T01:00
+2012-03-10T01:00
+2012-03-11T01:00
+2012-03-12T01:00
+
+-- !test_timestamp_arithmetic_38 --
+2012-03-01T00:01
+2012-03-02T00:01
+2012-03-03T00:01
+2012-03-04T00:01
+2012-03-05T00:01
+2012-03-06T00:01
+2012-03-07T00:01
+2012-03-08T00:01
+2012-03-09T00:01
+2012-03-10T00:01
+2012-03-11T00:01
+2012-03-12T00:01
+
+-- !test_timestamp_arithmetic_39 --
+2012-03-01T00:00:01
+2012-03-02T00:00:01
+2012-03-03T00:00:01
+2012-03-04T00:00:01
+2012-03-05T00:00:01
+2012-03-06T00:00:01
+2012-03-07T00:00:01
+2012-03-08T00:00:01
+2012-03-09T00:00:01
+2012-03-10T00:00:01
+2012-03-11T00:00:01
+2012-03-12T00:00:01
+
+-- !test_timestamp_arithmetic_40 --
 2012-02-29
 2012-03-01
 2012-03-02
@@ -223,7 +559,7 @@
 2012-03-10
 2012-03-11
 
--- !test_timestamp_arithmetic_18 --
+-- !test_timestamp_arithmetic_41 --
 2012-02-29T23:59:59
 2012-03-01T23:59:59
 2012-03-02T23:59:59
@@ -237,7 +573,7 @@
 2012-03-10T23:59:59
 2012-03-11T23:59:59
 
--- !test_timestamp_arithmetic_19 --
+-- !test_timestamp_arithmetic_42 --
 \N
 2012-03-02T01:00:01
 2012-03-03T02:01:02
@@ -252,7 +588,7 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_20 --
+-- !test_timestamp_arithmetic_43 --
 \N
 2012-03-01T01:00:02
 2012-03-02T02:01:03
@@ -267,7 +603,7 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_21 --
+-- !test_timestamp_arithmetic_44 --
 \N
 2012-02-29T01:00:01
 2012-03-01T02:01:02
@@ -282,7 +618,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_22 --
+-- !test_timestamp_arithmetic_45 --
 \N
 2012-03-01T01:00
 2012-03-02T02:01:01
@@ -297,7 +633,7 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_23 --
+-- !test_timestamp_arithmetic_46 --
 2012-03-02T01:00:01
 2012-03-03T02:01:02
 2012-03-04T03:02:03
@@ -311,7 +647,7 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_24 --
+-- !test_timestamp_arithmetic_47 --
 2012-03-01T01:00:02
 2012-03-02T02:01:03
 2012-03-03T03:02:04
@@ -325,7 +661,7 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_25 --
+-- !test_timestamp_arithmetic_48 --
 2012-02-29T01:00:01
 2012-03-01T02:01:02
 2012-03-02T03:02:03
@@ -339,7 +675,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_26 --
+-- !test_timestamp_arithmetic_49 --
 2012-03-01T01:00
 2012-03-02T02:01:01
 2012-03-03T03:02:02
@@ -353,7 +689,52 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_27 --
+-- !test_timestamp_arithmetic_50 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_51 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_52 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_53 --
 \N
 2012-03-02T01:00:01
 2012-03-03T02:01:02
@@ -368,7 +749,37 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_28 --
+-- !test_timestamp_arithmetic_54 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_55 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_56 --
 \N
 2012-03-01T01:00:02
 2012-03-02T02:01:03
@@ -383,7 +794,112 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_29 --
+-- !test_timestamp_arithmetic_57 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_58 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_59 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_60 --
+\N
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_61 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_62 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_63 --
+\N
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_64 --
 \N
 2012-02-29T01:00:01
 2012-03-01T02:01:02
@@ -398,7 +914,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_30 --
+-- !test_timestamp_arithmetic_65 --
 \N
 2012-03-01T01:00
 2012-03-02T02:01:01
@@ -413,7 +929,7 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_31 --
+-- !test_timestamp_arithmetic_66 --
 2012-03-02T01:00:01
 2012-03-03T02:01:02
 2012-03-04T03:02:03
@@ -427,7 +943,7 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_32 --
+-- !test_timestamp_arithmetic_67 --
 2012-03-01T01:00:02
 2012-03-02T02:01:03
 2012-03-03T03:02:04
@@ -441,7 +957,105 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_33 --
+-- !test_timestamp_arithmetic_68 --
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_69 --
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_70 --
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_71 --
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_72 --
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_73 --
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_74 --
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_75 --
 2012-02-29T01:00:01
 2012-03-01T02:01:02
 2012-03-02T03:02:03
@@ -455,7 +1069,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_34 --
+-- !test_timestamp_arithmetic_76 --
 2012-03-01T01:00
 2012-03-02T02:01:01
 2012-03-03T03:02:02
@@ -469,7 +1083,52 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_35 --
+-- !test_timestamp_arithmetic_77 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_78 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_79 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_80 --
 \N
 2012-03-02T01:00:01
 2012-03-03T02:01:02
@@ -484,7 +1143,37 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_36 --
+-- !test_timestamp_arithmetic_81 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_82 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_83 --
 \N
 2012-03-01T01:00:02
 2012-03-02T02:01:03
@@ -499,7 +1188,112 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_37 --
+-- !test_timestamp_arithmetic_84 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_85 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_86 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_87 --
+\N
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_88 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_89 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_90 --
+\N
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_91 --
 \N
 2012-02-29T01:00:01
 2012-03-01T02:01:02
@@ -514,7 +1308,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_38 --
+-- !test_timestamp_arithmetic_92 --
 \N
 2012-03-01T01:00
 2012-03-02T02:01:01
@@ -529,7 +1323,49 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_39 --
+-- !test_timestamp_arithmetic_93 --
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_94 --
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_95 --
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_96 --
 2012-03-02T01:00:01
 2012-03-03T02:01:02
 2012-03-04T03:02:03
@@ -543,7 +1379,35 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_40 --
+-- !test_timestamp_arithmetic_97 --
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_98 --
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_99 --
 2012-03-01T01:00:02
 2012-03-02T02:01:03
 2012-03-03T03:02:04
@@ -557,7 +1421,105 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_41 --
+-- !test_timestamp_arithmetic_100 --
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_101 --
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_102 --
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_103 --
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_104 --
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_105 --
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_106 --
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_107 --
 2012-02-29T01:00:01
 2012-03-01T02:01:02
 2012-03-02T03:02:03
@@ -571,7 +1533,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_42 --
+-- !test_timestamp_arithmetic_108 --
 2012-03-01T01:00
 2012-03-02T02:01:01
 2012-03-03T03:02:02
@@ -585,7 +1547,52 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_43 --
+-- !test_timestamp_arithmetic_109 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_110 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_111 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_112 --
 \N
 2012-03-02T01:00:01
 2012-03-03T02:01:02
@@ -600,7 +1607,37 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_44 --
+-- !test_timestamp_arithmetic_113 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_114 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_115 --
 \N
 2012-03-01T01:00:02
 2012-03-02T02:01:03
@@ -615,7 +1652,112 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_45 --
+-- !test_timestamp_arithmetic_116 --
+\N
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_117 --
+\N
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_118 --
+\N
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_119 --
+\N
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_120 --
+\N
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_121 --
+\N
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_122 --
+\N
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_123 --
 \N
 2012-02-29T01:00:01
 2012-03-01T02:01:02
@@ -630,7 +1772,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_46 --
+-- !test_timestamp_arithmetic_124 --
 \N
 2012-03-01T01:00
 2012-03-02T02:01:01
@@ -645,7 +1787,49 @@
 2012-03-11T11:10:10
 2012-03-12T12:11:11
 
--- !test_timestamp_arithmetic_47 --
+-- !test_timestamp_arithmetic_125 --
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_126 --
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_127 --
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_128 --
 2012-03-02T01:00:01
 2012-03-03T02:01:02
 2012-03-04T03:02:03
@@ -659,7 +1843,35 @@
 2012-03-12T11:10:11
 2012-03-13T12:11:12
 
--- !test_timestamp_arithmetic_48 --
+-- !test_timestamp_arithmetic_129 --
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_130 --
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_131 --
 2012-03-01T01:00:02
 2012-03-02T02:01:03
 2012-03-03T03:02:04
@@ -673,7 +1885,105 @@
 2012-03-11T11:10:12
 2012-03-12T12:11:13
 
--- !test_timestamp_arithmetic_49 --
+-- !test_timestamp_arithmetic_132 --
+2013-03-01T01:00:01
+2013-03-02T02:01:02
+2013-03-03T03:02:03
+2013-03-04T04:03:04
+2013-03-05T05:04:05
+2013-03-06T06:05:06
+2013-03-07T07:06:07
+2013-03-08T08:07:08
+2013-03-09T09:08:09
+2013-03-10T10:09:10
+2013-03-11T11:10:11
+2013-03-12T12:11:12
+
+-- !test_timestamp_arithmetic_133 --
+2012-04-01T01:00:01
+2012-04-02T02:01:02
+2012-04-03T03:02:03
+2012-04-04T04:03:04
+2012-04-05T05:04:05
+2012-04-06T06:05:06
+2012-04-07T07:06:07
+2012-04-08T08:07:08
+2012-04-09T09:08:09
+2012-04-10T10:09:10
+2012-04-11T11:10:11
+2012-04-12T12:11:12
+
+-- !test_timestamp_arithmetic_134 --
+2012-03-08T01:00:01
+2012-03-09T02:01:02
+2012-03-10T03:02:03
+2012-03-11T04:03:04
+2012-03-12T05:04:05
+2012-03-13T06:05:06
+2012-03-14T07:06:07
+2012-03-15T08:07:08
+2012-03-16T09:08:09
+2012-03-17T10:09:10
+2012-03-18T11:10:11
+2012-03-19T12:11:12
+
+-- !test_timestamp_arithmetic_135 --
+2012-03-02T01:00:01
+2012-03-03T02:01:02
+2012-03-04T03:02:03
+2012-03-05T04:03:04
+2012-03-06T05:04:05
+2012-03-07T06:05:06
+2012-03-08T07:06:07
+2012-03-09T08:07:08
+2012-03-10T09:08:09
+2012-03-11T10:09:10
+2012-03-12T11:10:11
+2012-03-13T12:11:12
+
+-- !test_timestamp_arithmetic_136 --
+2012-03-01T02:00:01
+2012-03-02T03:01:02
+2012-03-03T04:02:03
+2012-03-04T05:03:04
+2012-03-05T06:04:05
+2012-03-06T07:05:06
+2012-03-07T08:06:07
+2012-03-08T09:07:08
+2012-03-09T10:08:09
+2012-03-10T11:09:10
+2012-03-11T12:10:11
+2012-03-12T13:11:12
+
+-- !test_timestamp_arithmetic_137 --
+2012-03-01T01:01:01
+2012-03-02T02:02:02
+2012-03-03T03:03:03
+2012-03-04T04:04:04
+2012-03-05T05:05:05
+2012-03-06T06:06:06
+2012-03-07T07:07:07
+2012-03-08T08:08:08
+2012-03-09T09:09:09
+2012-03-10T10:10:10
+2012-03-11T11:11:11
+2012-03-12T12:12:12
+
+-- !test_timestamp_arithmetic_138 --
+2012-03-01T01:00:02
+2012-03-02T02:01:03
+2012-03-03T03:02:04
+2012-03-04T04:03:05
+2012-03-05T05:04:06
+2012-03-06T06:05:07
+2012-03-07T07:06:08
+2012-03-08T08:07:09
+2012-03-09T09:08:10
+2012-03-10T10:09:11
+2012-03-11T11:10:12
+2012-03-12T12:11:13
+
+-- !test_timestamp_arithmetic_139 --
 2012-02-29T01:00:01
 2012-03-01T02:01:02
 2012-03-02T03:02:03
@@ -687,7 +1997,7 @@
 2012-03-10T11:10:11
 2012-03-11T12:11:12
 
--- !test_timestamp_arithmetic_50 --
+-- !test_timestamp_arithmetic_140 --
 2012-03-01T01:00
 2012-03-02T02:01:01
 2012-03-03T03:02:02
diff --git 
a/regression-test/suites/nereids_function_p0/test_timestamp_arithmetic.sql 
b/regression-test/suites/nereids_function_p0/test_timestamp_arithmetic.sql
index c702bf259af..98685479957 100644
--- a/regression-test/suites/nereids_function_p0/test_timestamp_arithmetic.sql
+++ b/regression-test/suites/nereids_function_p0/test_timestamp_arithmetic.sql
@@ -2,18 +2,41 @@ set enable_nereids_planner=true;
 set enable_fallback_to_original_planner=false;
 select kdt + interval 1 day from fn_test order by kdt;
 select kdt + interval 1 second from fn_test order by kdt;
+select interval 1 day + kdt from fn_test order by kdt;
+select interval 1 second + kdt from fn_test order by kdt;
 select kdt - interval 1 day from fn_test order by kdt;
 select kdt - interval 1 second from fn_test order by kdt;
 select kdt + interval 1 day from fn_test_not_nullable order by kdt;
 select kdt + interval 1 second from fn_test_not_nullable order by kdt;
+select interval 1 day + kdt from fn_test_not_nullable order by kdt;
+select interval 1 second + kdt from fn_test_not_nullable order by kdt;
 select kdt - interval 1 day from fn_test_not_nullable order by kdt;
 select kdt - interval 1 second from fn_test_not_nullable order by kdt;
+select kdtv2 + interval 1 year from fn_test order by kdt;
+select kdtv2 + interval 1 month from fn_test order by kdt;
+select kdtv2 + interval 1 week from fn_test order by kdt;
 select kdtv2 + interval 1 day from fn_test order by kdt;
+select kdtv2 + interval 1 hour from fn_test order by kdt;
+select kdtv2 + interval 1 minute from fn_test order by kdt;
 select kdtv2 + interval 1 second from fn_test order by kdt;
+select interval 1 year + kdtv2 from fn_test order by kdt;
+select interval 1 month + kdtv2 from fn_test order by kdt;
+select interval 1 week + kdtv2 from fn_test order by kdt;
+select interval 1 day + kdtv2 from fn_test order by kdt;
+select interval 1 hour + kdtv2 from fn_test order by kdt;
+select interval 1 minute + kdtv2 from fn_test order by kdt;
+select interval 1 second + kdtv2 from fn_test order by kdt;
 select kdtv2 - interval 1 day from fn_test order by kdt;
 select kdtv2 - interval 1 second from fn_test order by kdt;
 select kdtv2 + interval 1 day from fn_test_not_nullable order by kdt;
 select kdtv2 + interval 1 second from fn_test_not_nullable order by kdt;
+select interval 1 year + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 month + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 week + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 day + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 hour + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 minute + kdtv2 from fn_test_not_nullable order by kdt;
+select interval 1 second + kdtv2 from fn_test_not_nullable order by kdt;
 select kdtv2 - interval 1 day from fn_test_not_nullable order by kdt;
 select kdtv2 - interval 1 second from fn_test_not_nullable order by kdt;
 select kdtm + interval 1 day from fn_test order by kdt;
@@ -24,27 +47,94 @@ select kdtm + interval 1 day from fn_test_not_nullable 
order by kdt;
 select kdtm + interval 1 second from fn_test_not_nullable order by kdt;
 select kdtm - interval 1 day from fn_test_not_nullable order by kdt;
 select kdtm - interval 1 second from fn_test_not_nullable order by kdt;
+select kdtmv2s1 + interval 1 year from fn_test order by kdt;
+select kdtmv2s1 + interval 1 month from fn_test order by kdt;
+select kdtmv2s1 + interval 1 week from fn_test order by kdt;
 select kdtmv2s1 + interval 1 day from fn_test order by kdt;
+select kdtmv2s1 + interval 1 hour from fn_test order by kdt;
+select kdtmv2s1 + interval 1 minute from fn_test order by kdt;
 select kdtmv2s1 + interval 1 second from fn_test order by kdt;
+select interval 1 year + kdtmv2s1 from fn_test order by kdt;
+select interval 1 month + kdtmv2s1 from fn_test order by kdt;
+select interval 1 week + kdtmv2s1 from fn_test order by kdt;
+select interval 1 day + kdtmv2s1 from fn_test order by kdt;
+select interval 1 hour + kdtmv2s1 from fn_test order by kdt;
+select interval 1 minute + kdtmv2s1 from fn_test order by kdt;
+select interval 1 second + kdtmv2s1 from fn_test order by kdt;
 select kdtmv2s1 - interval 1 day from fn_test order by kdt;
 select kdtmv2s1 - interval 1 second from fn_test order by kdt;
 select kdtmv2s1 + interval 1 day from fn_test_not_nullable order by kdt;
 select kdtmv2s1 + interval 1 second from fn_test_not_nullable order by kdt;
+select interval 1 year + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 month + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 week + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 day + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 hour + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 minute + kdtmv2s1 from fn_test_not_nullable order by kdt;
+select interval 1 second + kdtmv2s1 from fn_test_not_nullable order by kdt;
 select kdtmv2s1 - interval 1 day from fn_test_not_nullable order by kdt;
 select kdtmv2s1 - interval 1 second from fn_test_not_nullable order by kdt;
+select kdtmv2s2 + interval 1 year from fn_test order by kdt;
+select kdtmv2s2 + interval 1 month from fn_test order by kdt;
+select kdtmv2s2 + interval 1 week from fn_test order by kdt;
 select kdtmv2s2 + interval 1 day from fn_test order by kdt;
+select kdtmv2s2 + interval 1 hour from fn_test order by kdt;
+select kdtmv2s2 + interval 1 minute from fn_test order by kdt;
 select kdtmv2s2 + interval 1 second from fn_test order by kdt;
+select interval 1 year + kdtmv2s2 from fn_test order by kdt;
+select interval 1 month + kdtmv2s2 from fn_test order by kdt;
+select interval 1 week + kdtmv2s2 from fn_test order by kdt;
+select interval 1 day + kdtmv2s2 from fn_test order by kdt;
+select interval 1 hour + kdtmv2s2 from fn_test order by kdt;
+select interval 1 minute + kdtmv2s2 from fn_test order by kdt;
+select interval 1 second + kdtmv2s2 from fn_test order by kdt;
 select kdtmv2s2 - interval 1 day from fn_test order by kdt;
 select kdtmv2s2 - interval 1 second from fn_test order by kdt;
+select kdtmv2s2 + interval 1 year from fn_test_not_nullable order by kdt;
+select kdtmv2s2 + interval 1 month from fn_test_not_nullable order by kdt;
+select kdtmv2s2 + interval 1 week from fn_test_not_nullable order by kdt;
 select kdtmv2s2 + interval 1 day from fn_test_not_nullable order by kdt;
+select kdtmv2s2 + interval 1 hour from fn_test_not_nullable order by kdt;
+select kdtmv2s2 + interval 1 minute from fn_test_not_nullable order by kdt;
 select kdtmv2s2 + interval 1 second from fn_test_not_nullable order by kdt;
+select interval 1 year + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 month + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 week + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 day + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 hour + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 minute + kdtmv2s2 from fn_test_not_nullable order by kdt;
+select interval 1 second + kdtmv2s2 from fn_test_not_nullable order by kdt;
 select kdtmv2s2 - interval 1 day from fn_test_not_nullable order by kdt;
 select kdtmv2s2 - interval 1 second from fn_test_not_nullable order by kdt;
+select kdtmv2s3 + interval 1 year from fn_test order by kdt;
+select kdtmv2s3 + interval 1 month from fn_test order by kdt;
+select kdtmv2s3 + interval 1 week from fn_test order by kdt;
 select kdtmv2s3 + interval 1 day from fn_test order by kdt;
+select kdtmv2s3 + interval 1 hour from fn_test order by kdt;
+select kdtmv2s3 + interval 1 minute from fn_test order by kdt;
 select kdtmv2s3 + interval 1 second from fn_test order by kdt;
+select interval 1 year + kdtmv2s3 from fn_test order by kdt;
+select interval 1 month + kdtmv2s3 from fn_test order by kdt;
+select interval 1 week + kdtmv2s3 from fn_test order by kdt;
+select interval 1 day + kdtmv2s3 from fn_test order by kdt;
+select interval 1 hour + kdtmv2s3 from fn_test order by kdt;
+select interval 1 minute + kdtmv2s3 from fn_test order by kdt;
+select interval 1 second + kdtmv2s3 from fn_test order by kdt;
 select kdtmv2s3 - interval 1 day from fn_test order by kdt;
 select kdtmv2s3 - interval 1 second from fn_test order by kdt;
+select kdtmv2s3 + interval 1 year from fn_test_not_nullable order by kdt;
+select kdtmv2s3 + interval 1 month from fn_test_not_nullable order by kdt;
+select kdtmv2s3 + interval 1 week from fn_test_not_nullable order by kdt;
 select kdtmv2s3 + interval 1 day from fn_test_not_nullable order by kdt;
+select kdtmv2s3 + interval 1 hour from fn_test_not_nullable order by kdt;
+select kdtmv2s3 + interval 1 minute from fn_test_not_nullable order by kdt;
 select kdtmv2s3 + interval 1 second from fn_test_not_nullable order by kdt;
+select interval 1 year + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 month + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 week + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 day + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 hour + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 minute + kdtmv2s3 from fn_test_not_nullable order by kdt;
+select interval 1 second + kdtmv2s3 from fn_test_not_nullable order by kdt;
 select kdtmv2s3 - interval 1 day from fn_test_not_nullable order by kdt;
 select kdtmv2s3 - interval 1 second from fn_test_not_nullable order by kdt;


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

Reply via email to