From 9a4fd5be7952618e1df083e016f954d6bedf4c27 Mon Sep 17 00:00:00 2001 From: TengJianPing <18241664+jacktengg@users.noreply.github.com> Date: Tue, 14 Nov 2023 20:28:41 +0800 Subject: [PATCH] [nereids](datetime) fix wrong result type of datetime add with interval as first arg (#26957) Incorrect result data type cause be cordump: drop table if exists testaaa; create table testaaa(k1 tinyint, k2 smallint, k3 int, k4 bigint, k5 decimal(9,3), k6 char(5), k10 date, k11 datetime, k7 varchar(20), k8 double max, k9 float sum) engine=olap distributed by hash(k1) buckets 5 properties("storage_type"="column","replication_num"="1") ; insert into testaaa values(1,1,1,1,9.3, "k6", "2023-11-14", "2023-11-14", "k7", 9.99, 9.99); select interval 10 year + k10 from testaaa; The plan result type is DATE: mysql [test]>explain verbose select interval 10 year + k10 from testaaa; +-------------------------------------------------------------------------------------------------------+ | Explain String(Nereids Planner) | +-------------------------------------------------------------------------------------------------------+ | PLAN FRAGMENT 0 | | OUTPUT EXPRS: | | years_add(k10, INTERVAL 10 YEAR)[#11] | | PARTITION: UNPARTITIONED | | | | HAS_COLO_PLAN_NODE: false | | | | VRESULT SINK | | MYSQL_PROTOCAL | | | | 64:VEXCHANGE | | offset: 0 | | tuple ids: 1N | | | | PLAN FRAGMENT 1 | | | | PARTITION: HASH_PARTITIONED: k1[#0] | | | | HAS_COLO_PLAN_NODE: false | | | | STREAM DATA SINK | | EXCHANGE ID: 64 | | UNPARTITIONED | | | | 58:VOlapScanNode | | TABLE: default_cluster:test.testaaa(testaaa), PREAGGREGATION: OFF. Reason: No aggregate on scan. | | partitions=1/1 (testaaa), tablets=5/5, tabletList=945025,945027,945029 ... | | cardinality=1, avgRowSize=9885.0, numNodes=1 | | pushAggOp=NONE | | projections: years_add(k10[#6], INTERVAL 10 YEAR) | | project output tuple id: 1 | | tuple ids: 0 | | | | Tuples: | | TupleDescriptor{id=0, tbl=testaaa, byteSize=8} | | SlotDescriptor{id=6, col=k10, colUniqueId=6, type=DATEV2, nullable=true, isAutoIncrement=false} | | | | TupleDescriptor{id=1, tbl=testaaa, byteSize=32} | | SlotDescriptor{id=11, col=null, colUniqueId=null, type=DATE, nullable=true, isAutoIncrement=false} | +-------------------------------------------------------------------------------------------------------+ 39 rows in set (1 min 31.50 sec) coredump stack: F1109 20:11:37.677680 323805 assert_cast.h:61] Bad cast from type:doris::vectorized::ColumnVector to doris::vectorized::ColumnVector *** Check failure stack trace: *** F1109 20:11:37.680608 323800 assert_cast.h:61] Bad cast from type:doris::vectorized::ColumnVector to doris::vectorized::ColumnVector *** Check failure stack trace: *** F1109 20:11:37.680608 323800 assert_cast.h:61] Bad cast from type:doris::vectorized::ColumnVector to doris::vectorized::ColumnVectorF1109 20:11:37.681102 323808 assert_cast.h:61] Bad cast from type:doris::vectorized::ColumnVector to doris::vectorized::ColumnVector *** Check failure stack trace: *** @ 0x56489d591d3d google::LogMessage::Fail() @ 0x56489d591d3d google::LogMessage::Fail() @ 0x56489d591d3d google::LogMessage::Fail() @ 0x56489d594279 google::LogMessage::SendToLog() @ 0x56489d594279 google::LogMessage::SendToLog() @ 0x56489d594279 google::LogMessage::SendToLog() @ 0x56489d5918a6 google::LogMessage::Flush() @ 0x56489d5918a6 google::LogMessage::Flush() @ 0x56489d5918a6 google::LogMessage::Flush() @ 0x56489d5948e9 google::LogMessageFatal::~LogMessageFatal() @ 0x56489d5948e9 google::LogMessageFatal::~LogMessageFatal() @ 0x56489d5948e9 google::LogMessageFatal::~LogMessageFatal() @ 0x56487a2a8a0c assert_cast<>() @ 0x56487a2a8a0c assert_cast<>() @ 0x56487a2a8a0c assert_cast<>() @ 0x5648893d8312 doris::vectorized::ColumnVector<>::insert_range_from() @ 0x5648893d8312 doris::vectorized::ColumnVector<>::insert_range_from() @ 0x5648893d8312 doris::vectorized::ColumnVector<>::insert_range_from() @ 0x56488924a670 doris::vectorized::ColumnNullable::insert_range_from() @ 0x56488924a670 doris::vectorized::ColumnNullable::insert_range_from() @ 0x56488924a670 doris::vectorized::ColumnNullable::insert_range_from() @ 0x56487a454475 doris::ExecNode::do_projections() @ 0x56487a454475 doris::ExecNode::do_projections() @ 0x56487a454475 doris::ExecNode::do_projections() @ 0x56487a454b89 doris::ExecNode::get_next_after_projects() @ 0x56487a454b89 doris::ExecNode::get_next_after_projects() *** Query id: a467995b35334741-b625042f56495aaf *** *** tablet id: 0 *** *** Aborted at 1699531898 (unix time) try "date -d @1699531898" if you are using GNU date *** *** Current BE git commitID: 0d83327a7c *** *** SIGABRT unknown detail explain (@0x190d64) received by PID 1641828 (TID 1642168 OR 0x7f6ff96c0700) from PID 1641828; stack trace: *** @ 0x556ca2a3ab8f std::_Function_handler<>::_M_invoke() @ 0x556c9f322787 std::function<>::operator()() @ 0x556ca29da0b0 doris::Thread::supervise_thread() @ 0x556c9f322787 std::function<>::operator()() @ 0x7f71b9c38609 start_thread @ 0x556ca29da0b0 doris::Thread::supervise_thread() @ 0x7f71b9c38609 start_thread 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/common/signal_handler.h:417 1# 0x00007F71B9E09090 in /lib/x86_64-linux-gnu/libc.so.6 2# raise at ../sysdeps/unix/sysv/linux/raise.c:51 3# abort at /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81 4# 0x0000556CC51F3729 in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 5# 0x0000556CC51E8D3D in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 6# google::LogMessage::SendToLog() in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 7# google::LogMessage::Flush() in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 8# google::LogMessageFatal::~LogMessageFatal() in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 9# doris::vectorized::ColumnVector const& assert_cast const&, doris::vectorized::IColumn const&>(doris::vectorized::IColumn const&) in /mnt/hdd01/ci/branch20-deploy/be/lib/doris_be 10# doris::vectorized::ColumnVector::insert_range_from(doris::vectorized::IColumn const&, unsigned long, unsigned long) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/vec/columns/column_vector.cpp:354 11# doris::vectorized::ColumnNullable::insert_range_from(doris::vectorized::IColumn const&, unsigned long, unsigned long) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/vec/columns/column_nullable.cpp:289 12# doris::ExecNode::do_projections(doris::vectorized::Block*, doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/exec/exec_node.cpp:573 13# doris::ExecNode::get_next_after_projects(doris::RuntimeState*, doris::vectorized::Block*, bool*, std::function const&, bool) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/exec/exec_node.cpp:592 14# doris::pipeline::SourceOperator::get_block(doris::RuntimeState*, doris::vectorized::Block*, doris::pipeline::SourceState&) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/pipeline/exec/operator.h:413 15# doris::pipeline::PipelineTask::execute(bool*) at /home/zcp/repo_center/doris_branch-2.0/doris/be/src/pipeline/pipeline_task.cpp:259 16# doris::pipeline::TaskScheduler::_do_work(unsigned --- .../nereids/parser/LogicalPlanBuilder.java | 4 +- .../expressions/TimestampArithmetic.java | 41 +- .../rules/expression/FoldConstantTest.java | 2 +- .../test_timestamp_arithmetic.out | 2088 ++++++++++++++--- .../test_timestamp_arithmetic.sql | 90 + 5 files changed, 1804 insertions(+), 421 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 18333878f4..33f11c4687 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 @@ -1334,7 +1334,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor { 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) { @@ -1347,7 +1347,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor { 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 0b2a75038f..888a1a0869 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 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; } @@ -149,21 +141,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 0358b3ea62..cae12700cc 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 @@ -286,7 +286,7 @@ 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 fd5f147877..979c29e2d6 100644 --- a/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out +++ b/regression-test/data/nereids_function_p0/test_timestamp_arithmetic.out @@ -37,35 +37,6 @@ -- !test_timestamp_arithmetic_5 -- \N -2012-02-29 -2012-03-01 -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 - --- !test_timestamp_arithmetic_6 -- -\N -2012-02-29T23:59:59 -2012-03-01T23:59:59 -2012-03-02T23:59:59 -2012-03-03T23:59:59 -2012-03-04T23:59:59 -2012-03-05T23:59:59 -2012-03-06T23:59:59 -2012-03-07T23:59:59 -2012-03-08T23:59:59 -2012-03-09T23:59:59 -2012-03-10T23:59:59 -2012-03-11T23:59:59 - --- !test_timestamp_arithmetic_7 -- 2012-03-02 2012-03-03 2012-03-04 @@ -79,7 +50,8 @@ 2012-03-12 2012-03-13 --- !test_timestamp_arithmetic_8 -- +-- !test_timestamp_arithmetic_6 -- +\N 2012-03-01T00:00:01 2012-03-02T00:00:01 2012-03-03T00:00:01 @@ -93,7 +65,8 @@ 2012-03-11T00:00:01 2012-03-12T00:00:01 --- !test_timestamp_arithmetic_9 -- +-- !test_timestamp_arithmetic_7 -- +\N 2012-02-29 2012-03-01 2012-03-02 @@ -107,7 +80,8 @@ 2012-03-10 2012-03-11 --- !test_timestamp_arithmetic_10 -- +-- !test_timestamp_arithmetic_8 -- +\N 2012-02-29T23:59:59 2012-03-01T23:59:59 2012-03-02T23:59:59 @@ -121,8 +95,35 @@ 2012-03-10T23:59:59 2012-03-11T23:59:59 +-- !test_timestamp_arithmetic_9 -- +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_10 -- +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_11 -- -\N 2012-03-02 2012-03-03 2012-03-04 @@ -137,7 +138,6 @@ 2012-03-13 -- !test_timestamp_arithmetic_12 -- -\N 2012-03-01T00:00:01 2012-03-02T00:00:01 2012-03-03T00:00:01 @@ -152,7 +152,6 @@ 2012-03-12T00:00:01 -- !test_timestamp_arithmetic_13 -- -\N 2012-02-29 2012-03-01 2012-03-02 @@ -167,7 +166,6 @@ 2012-03-11 -- !test_timestamp_arithmetic_14 -- -\N 2012-02-29T23:59:59 2012-03-01T23:59:59 2012-03-02T23:59:59 @@ -182,6 +180,52 @@ 2012-03-11T23:59:59 -- !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 2012-03-04 @@ -195,7 +239,38 @@ 2012-03-12 2012-03-13 --- !test_timestamp_arithmetic_16 -- +-- !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 2012-03-03T00:00:01 @@ -209,7 +284,113 @@ 2012-03-11T00:00:01 2012-03-12T00:00:01 --- !test_timestamp_arithmetic_17 -- +-- !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 2012-03-02 @@ -223,7 +404,8 @@ 2012-03-10 2012-03-11 --- !test_timestamp_arithmetic_18 -- +-- !test_timestamp_arithmetic_30 -- +\N 2012-02-29T23:59:59 2012-03-01T23:59:59 2012-03-02T23:59:59 @@ -237,299 +419,162 @@ 2012-03-10T23:59:59 2012-03-11T23:59:59 --- !test_timestamp_arithmetic_19 -- -\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_20 -- -\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_21 -- -\N -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 - --- !test_timestamp_arithmetic_22 -- -\N -2012-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 - --- !test_timestamp_arithmetic_23 -- -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_24 -- -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_25 -- -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 - --- !test_timestamp_arithmetic_26 -- -2012-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 - --- !test_timestamp_arithmetic_27 -- -\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_28 -- -\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_29 -- -\N -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 - --- !test_timestamp_arithmetic_30 -- -\N -2012-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 - -- !test_timestamp_arithmetic_31 -- -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 +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_32 -- -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 +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_33 -- -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 +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-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 +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 -- -\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 +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 -- -\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 +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 -- -\N -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 +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 -- -\N -2012-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 +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 +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 + +-- !test_timestamp_arithmetic_41 -- +2012-02-29T23:59:59 +2012-03-01T23:59:59 +2012-03-02T23:59:59 +2012-03-03T23:59:59 +2012-03-04T23:59:59 +2012-03-05T23:59:59 +2012-03-06T23:59:59 +2012-03-07T23:59:59 +2012-03-08T23:59:59 +2012-03-09T23:59:59 +2012-03-10T23:59:59 +2012-03-11T23:59:59 + +-- !test_timestamp_arithmetic_42 -- +\N 2012-03-02T01:00:01 2012-03-03T02:01:02 2012-03-04T03:02:03 @@ -543,80 +588,23 @@ 2012-03-12T11:10:11 2012-03-13T12:11:12 --- !test_timestamp_arithmetic_40 -- -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_41 -- -2012-02-29T01:00:01 -2012-03-01T02:01:02 -2012-03-02T03:02:03 -2012-03-03T04:03:04 -2012-03-04T05:04:05 -2012-03-05T06:05:06 -2012-03-06T07:06:07 -2012-03-07T08:07:08 -2012-03-08T09:08:09 -2012-03-09T10:09:10 -2012-03-10T11:10:11 -2012-03-11T12:11:12 - --- !test_timestamp_arithmetic_42 -- -2012-03-01T01:00 -2012-03-02T02:01:01 -2012-03-03T03:02:02 -2012-03-04T04:03:03 -2012-03-05T05:04:04 -2012-03-06T06:05:05 -2012-03-07T07:06:06 -2012-03-08T08:07:07 -2012-03-09T09:08:08 -2012-03-10T10:09:09 -2012-03-11T11:10:10 -2012-03-12T12:11:11 - -- !test_timestamp_arithmetic_43 -- \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 +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_44 -- \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_45 -- -\N 2012-02-29T01:00:01 2012-03-01T02:01:02 2012-03-02T03:02:03 @@ -630,7 +618,7 @@ 2012-03-10T11:10:11 2012-03-11T12:11:12 --- !test_timestamp_arithmetic_46 -- +-- !test_timestamp_arithmetic_45 -- \N 2012-03-01T01:00 2012-03-02T02:01:01 @@ -645,7 +633,7 @@ 2012-03-11T11:10:10 2012-03-12T12:11:11 --- !test_timestamp_arithmetic_47 -- +-- !test_timestamp_arithmetic_46 -- 2012-03-02T01:00:01 2012-03-03T02:01:02 2012-03-04T03:02:03 @@ -659,7 +647,7 @@ 2012-03-12T11:10:11 2012-03-13T12:11:12 --- !test_timestamp_arithmetic_48 -- +-- !test_timestamp_arithmetic_47 -- 2012-03-01T01:00:02 2012-03-02T02:01:03 2012-03-03T03:02:04 @@ -673,7 +661,7 @@ 2012-03-11T11:10:12 2012-03-12T12:11:13 --- !test_timestamp_arithmetic_49 -- +-- !test_timestamp_arithmetic_48 -- 2012-02-29T01:00:01 2012-03-01T02:01:02 2012-03-02T03:02:03 @@ -687,7 +675,1329 @@ 2012-03-10T11:10:11 2012-03-11T12:11:12 --- !test_timestamp_arithmetic_50 -- +-- !test_timestamp_arithmetic_49 -- +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !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 +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_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 +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_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 +2012-03-02T03:02:03 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !test_timestamp_arithmetic_65 -- +\N +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !test_timestamp_arithmetic_66 -- +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_67 -- +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_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 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !test_timestamp_arithmetic_76 -- +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !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 +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_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 +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_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 +2012-03-02T03:02:03 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !test_timestamp_arithmetic_92 -- +\N +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !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 +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_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 +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_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 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !test_timestamp_arithmetic_108 -- +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !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 +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_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 +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_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 +2012-03-02T03:02:03 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !test_timestamp_arithmetic_124 -- +\N +2012-03-01T01:00 +2012-03-02T02:01:01 +2012-03-03T03:02:02 +2012-03-04T04:03:03 +2012-03-05T05:04:04 +2012-03-06T06:05:05 +2012-03-07T07:06:06 +2012-03-08T08:07:07 +2012-03-09T09:08:08 +2012-03-10T10:09:09 +2012-03-11T11:10:10 +2012-03-12T12:11:11 + +-- !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 +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_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 +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_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 +2012-03-03T04:03:04 +2012-03-04T05:04:05 +2012-03-05T06:05:06 +2012-03-06T07:06:07 +2012-03-07T08:07:08 +2012-03-08T09:08:09 +2012-03-09T10:09:10 +2012-03-10T11:10:11 +2012-03-11T12:11:12 + +-- !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 c702bf259a..9868547995 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;