You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2014/11/11 22:08:58 UTC
svn commit: r1638402 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/ test/queries/clientnegative/
test/queries/clientpositive/ test/results/clientnegative/
test/results/clientpositive/
Author: jdere
Date: Tue Nov 11 21:08:56 2014
New Revision: 1638402
URL: http://svn.apache.org/r1638402
Log:
HIVE-3187: support ISO-2012 timestamp literals (Navis via Jason Dere)
Added:
hive/trunk/ql/src/test/queries/clientnegative/timestamp_literal.q
hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp.q
hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp2.q
hive/trunk/ql/src/test/queries/clientpositive/timestamp_literal.q
hive/trunk/ql/src/test/results/clientnegative/timestamp_literal.q.out
hive/trunk/ql/src/test/results/clientpositive/partition_timestamp.q.out
hive/trunk/ql/src/test/results/clientpositive/partition_timestamp2.q.out
hive/trunk/ql/src/test/results/clientpositive/timestamp_literal.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
hive/trunk/ql/src/test/results/clientnegative/date_literal2.q.out
hive/trunk/ql/src/test/results/clientnegative/date_literal3.q.out
hive/trunk/ql/src/test/results/clientnegative/illegal_partition_type4.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g Tue Nov 11 21:08:56 2014
@@ -109,6 +109,7 @@ TOK_DATE;
TOK_DATELITERAL;
TOK_DATETIME;
TOK_TIMESTAMP;
+TOK_TIMESTAMPLITERAL;
TOK_STRING;
TOK_CHAR;
TOK_VARCHAR;
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g Tue Nov 11 21:08:56 2014
@@ -218,6 +218,7 @@ constant
:
Number
| dateLiteral
+ | timestampLiteral
| StringLiteral
| stringLiteralSequence
| BigintLiteral
@@ -250,6 +251,14 @@ dateLiteral
}
;
+timestampLiteral
+ :
+ KW_TIMESTAMP StringLiteral ->
+ {
+ adaptor.create(TOK_TIMESTAMPLITERAL, $StringLiteral.text)
+ }
+ ;
+
expression
@init { gParent.pushMsg("expression specification", state); }
@after { gParent.popMsg(state); }
@@ -260,7 +269,6 @@ expression
atomExpression
:
KW_NULL -> TOK_NULL
- | dateLiteral
| constant
| castExpression
| caseExpression
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java Tue Nov 11 21:08:56 2014
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.parse;
import java.sql.Date;
+import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -170,7 +171,8 @@ public class TypeCheckProcFactory {
tf.getStrExprProcessor());
opRules.put(new RuleRegExp("R4", HiveParser.KW_TRUE + "%|"
+ HiveParser.KW_FALSE + "%"), tf.getBoolExprProcessor());
- opRules.put(new RuleRegExp("R5", HiveParser.TOK_DATELITERAL + "%"), tf.getDateExprProcessor());
+ opRules.put(new RuleRegExp("R5", HiveParser.TOK_DATELITERAL + "%|"
+ + HiveParser.TOK_TIMESTAMPLITERAL + "%"), tf.getDateTimeExprProcessor());
opRules.put(new RuleRegExp("R6", HiveParser.TOK_TABLE_OR_COL + "%"),
tf.getColumnExprProcessor());
opRules.put(new RuleRegExp("R7", HiveParser.TOK_SUBQUERY_OP + "%"),
@@ -420,7 +422,7 @@ public class TypeCheckProcFactory {
/**
* Processor for date constants.
*/
- public static class DateExprProcessor implements NodeProcessor {
+ public static class DateTimeExprProcessor implements NodeProcessor {
@Override
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx,
@@ -437,14 +439,24 @@ public class TypeCheckProcFactory {
}
ASTNode expr = (ASTNode) nd;
+ String timeString = BaseSemanticAnalyzer.stripQuotes(expr.getText());
// Get the string value and convert to a Date value.
try {
- String dateString = BaseSemanticAnalyzer.stripQuotes(expr.getText());
- Date date = Date.valueOf(dateString);
- return new ExprNodeConstantDesc(TypeInfoFactory.dateTypeInfo, date);
- } catch (IllegalArgumentException err) {
- throw new SemanticException("Unable to convert date literal string to date value.", err);
+ // todo replace below with joda-time, which supports timezone
+ if (expr.getType() == HiveParser.TOK_DATELITERAL) {
+ PrimitiveTypeInfo typeInfo = TypeInfoFactory.dateTypeInfo;
+ return new ExprNodeConstantDesc(typeInfo,
+ Date.valueOf(timeString));
+ }
+ if (expr.getType() == HiveParser.TOK_TIMESTAMPLITERAL) {
+ return new ExprNodeConstantDesc(TypeInfoFactory.timestampTypeInfo,
+ Timestamp.valueOf(timeString));
+ }
+ throw new IllegalArgumentException("Invalid time literal type " + expr.getType());
+ } catch (Exception err) {
+ throw new SemanticException(
+ "Unable to convert time literal '" + timeString + "' to time value.", err);
}
}
}
@@ -454,8 +466,8 @@ public class TypeCheckProcFactory {
*
* @return DateExprProcessor.
*/
- public DateExprProcessor getDateExprProcessor() {
- return new DateExprProcessor();
+ public DateTimeExprProcessor getDateTimeExprProcessor() {
+ return new DateTimeExprProcessor();
}
/**
Added: hive/trunk/ql/src/test/queries/clientnegative/timestamp_literal.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/timestamp_literal.q?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/timestamp_literal.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/timestamp_literal.q Tue Nov 11 21:08:56 2014
@@ -0,0 +1,2 @@
+-- TimeZone is not yet supported
+SELECT TIMESTAMP '2012-12-29 20:01:00 +03:00';
Added: hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp.q?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp.q Tue Nov 11 21:08:56 2014
@@ -0,0 +1,57 @@
+drop table partition_timestamp_1;
+
+create table partition_timestamp_1 (key string, value string) partitioned by (dt timestamp, region string);
+
+insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 01:00:00', region= '1')
+ select * from src tablesample (10 rows);
+insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 02:00:00', region= '2')
+ select * from src tablesample (5 rows);
+insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 01:00:00', region= '2020-20-20')
+ select * from src tablesample (5 rows);
+insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 02:00:00', region= '1')
+ select * from src tablesample (20 rows);
+insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 03:00:00', region= '10')
+ select * from src tablesample (11 rows);
+
+select distinct dt from partition_timestamp_1;
+select * from partition_timestamp_1 where dt = '2000-01-01 01:00:00' and region = '2' order by key,value;
+
+-- 10
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00';
+-- 10. Also try with string value in predicate
+select count(*) from partition_timestamp_1 where dt = '2000-01-01 01:00:00';
+-- 5
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 02:00:00' and region = '2';
+-- 11
+select count(*) from partition_timestamp_1 where dt = timestamp '2001-01-01 03:00:00' and region = '10';
+-- 30
+select count(*) from partition_timestamp_1 where region = '1';
+-- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00' and region = '3';
+-- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '1999-01-01 01:00:00';
+
+-- Try other comparison operations
+
+-- 20
+select count(*) from partition_timestamp_1 where dt > timestamp '2000-01-01 01:00:00' and region = '1';
+-- 10
+select count(*) from partition_timestamp_1 where dt < timestamp '2000-01-02 01:00:00' and region = '1';
+-- 20
+select count(*) from partition_timestamp_1 where dt >= timestamp '2000-01-02 01:00:00' and region = '1';
+-- 10
+select count(*) from partition_timestamp_1 where dt <= timestamp '2000-01-01 01:00:00' and region = '1';
+-- 20
+select count(*) from partition_timestamp_1 where dt <> timestamp '2000-01-01 01:00:00' and region = '1';
+-- 10
+select count(*) from partition_timestamp_1 where dt between timestamp '1999-12-30 12:00:00' and timestamp '2000-01-03 12:00:00' and region = '1';
+
+
+-- Try a string key with timestamp-like strings
+
+-- 5
+select count(*) from partition_timestamp_1 where region = '2020-20-20';
+-- 5
+select count(*) from partition_timestamp_1 where region > '2010-01-01';
+
+drop table partition_timestamp_1;
Added: hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp2.q?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp2.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/partition_timestamp2.q Tue Nov 11 21:08:56 2014
@@ -0,0 +1,56 @@
+drop table partition_timestamp2_1;
+
+create table partition_timestamp2_1 (key string, value string) partitioned by (dt timestamp, region int);
+
+-- test timestamp literal syntax
+from (select * from src tablesample (1 rows)) x
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 01:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 00:00:00', region=2) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 01:00:00', region=2) select *;
+
+select distinct dt from partition_timestamp2_1;
+select * from partition_timestamp2_1;
+
+-- insert overwrite
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1)
+ select 'changed_key', 'changed_value' from src tablesample (2 rows);
+select * from partition_timestamp2_1;
+
+-- truncate
+truncate table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1);
+select distinct dt from partition_timestamp2_1;
+select * from partition_timestamp2_1;
+
+-- alter table add partition
+alter table partition_timestamp2_1 add partition (dt=timestamp '1980-01-02 00:00:00', region=3);
+select distinct dt from partition_timestamp2_1;
+select * from partition_timestamp2_1;
+
+-- alter table drop
+alter table partition_timestamp2_1 drop partition (dt=timestamp '1999-01-01 01:00:00', region=2);
+select distinct dt from partition_timestamp2_1;
+select * from partition_timestamp2_1;
+
+-- alter table set serde
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set serde 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe';
+
+-- alter table set fileformat
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set fileformat rcfile;
+describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3);
+
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ select * from src tablesample (2 rows);
+select * from partition_timestamp2_1 order by key,value,dt,region;
+
+-- alter table set location
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set location "file:///tmp/partition_timestamp2_1";
+describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3);
+
+-- alter table touch
+alter table partition_timestamp2_1 touch partition(dt=timestamp '1980-01-02 00:00:00', region=3);
+
+drop table partition_timestamp2_1;
Added: hive/trunk/ql/src/test/queries/clientpositive/timestamp_literal.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/timestamp_literal.q?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/timestamp_literal.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/timestamp_literal.q Tue Nov 11 21:08:56 2014
@@ -0,0 +1,12 @@
+explain
+select timestamp '2011-01-01 01:01:01';
+select timestamp '2011-01-01 01:01:01';
+
+explain
+select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100';
+select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100';
+
+explain
+select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100';
+select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100';
+
Modified: hive/trunk/ql/src/test/results/clientnegative/date_literal2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/date_literal2.q.out?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/date_literal2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientnegative/date_literal2.q.out Tue Nov 11 21:08:56 2014
@@ -1 +1 @@
-FAILED: SemanticException Unable to convert date literal string to date value.
+FAILED: SemanticException Unable to convert time literal '2001/01/01' to time value.
Modified: hive/trunk/ql/src/test/results/clientnegative/date_literal3.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/date_literal3.q.out?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/date_literal3.q.out (original)
+++ hive/trunk/ql/src/test/results/clientnegative/date_literal3.q.out Tue Nov 11 21:08:56 2014
@@ -1 +1 @@
-FAILED: SemanticException Unable to convert date literal string to date value.
+FAILED: SemanticException Unable to convert time literal '2001-01-32' to time value.
Modified: hive/trunk/ql/src/test/results/clientnegative/illegal_partition_type4.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/illegal_partition_type4.q.out?rev=1638402&r1=1638401&r2=1638402&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/illegal_partition_type4.q.out (original)
+++ hive/trunk/ql/src/test/results/clientnegative/illegal_partition_type4.q.out Tue Nov 11 21:08:56 2014
@@ -6,4 +6,4 @@ POSTHOOK: query: create table tab1(s str
POSTHOOK: type: CREATETABLE
POSTHOOK: Output: database:default
POSTHOOK: Output: default@tab1
-FAILED: SemanticException Unable to convert date literal string to date value.
+FAILED: SemanticException Unable to convert time literal 'foo' to time value.
Added: hive/trunk/ql/src/test/results/clientnegative/timestamp_literal.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/timestamp_literal.q.out?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/timestamp_literal.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/timestamp_literal.q.out Tue Nov 11 21:08:56 2014
@@ -0,0 +1 @@
+FAILED: SemanticException Unable to convert time literal '2012-12-29 20:01:00 +03:00' to time value.
Added: hive/trunk/ql/src/test/results/clientpositive/partition_timestamp.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/partition_timestamp.q.out?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/partition_timestamp.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/partition_timestamp.q.out Tue Nov 11 21:08:56 2014
@@ -0,0 +1,312 @@
+PREHOOK: query: drop table partition_timestamp_1
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table partition_timestamp_1
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table partition_timestamp_1 (key string, value string) partitioned by (dt timestamp, region string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@partition_timestamp_1
+POSTHOOK: query: create table partition_timestamp_1 (key string, value string) partitioned by (dt timestamp, region string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@partition_timestamp_1
+PREHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 01:00:00', region= '1')
+ select * from src tablesample (10 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 01:00:00', region= '1')
+ select * from src tablesample (10 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2000-01-01 01:00:00,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2000-01-01 01:00:00,region=1).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 02:00:00', region= '2')
+ select * from src tablesample (5 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+POSTHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2000-01-01 02:00:00', region= '2')
+ select * from src tablesample (5 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2000-01-01 02:00:00,region=2).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2000-01-01 02:00:00,region=2).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 01:00:00', region= '2020-20-20')
+ select * from src tablesample (5 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+POSTHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 01:00:00', region= '2020-20-20')
+ select * from src tablesample (5 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 01:00:00,region=2020-20-20).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 01:00:00,region=2020-20-20).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 02:00:00', region= '1')
+ select * from src tablesample (20 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+POSTHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 02:00:00', region= '1')
+ select * from src tablesample (20 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 02:00:00,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 02:00:00,region=1).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 03:00:00', region= '10')
+ select * from src tablesample (11 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+POSTHOOK: query: insert overwrite table partition_timestamp_1 partition(dt='2001-01-01 03:00:00', region= '10')
+ select * from src tablesample (11 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 03:00:00,region=10).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp_1 PARTITION(dt=2001-01-01 03:00:00,region=10).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: select distinct dt from partition_timestamp_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct dt from partition_timestamp_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+#### A masked pattern was here ####
+2000-01-01 01:00:00
+2000-01-01 02:00:00
+2001-01-01 01:00:00
+2001-01-01 02:00:00
+2001-01-01 03:00:00
+PREHOOK: query: select * from partition_timestamp_1 where dt = '2000-01-01 01:00:00' and region = '2' order by key,value
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp_1 where dt = '2000-01-01 01:00:00' and region = '2' order by key,value
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+PREHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+10
+PREHOOK: query: -- 10. Also try with string value in predicate
+select count(*) from partition_timestamp_1 where dt = '2000-01-01 01:00:00'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 10. Also try with string value in predicate
+select count(*) from partition_timestamp_1 where dt = '2000-01-01 01:00:00'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+10
+PREHOOK: query: -- 5
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 02:00:00' and region = '2'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+#### A masked pattern was here ####
+POSTHOOK: query: -- 5
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 02:00:00' and region = '2'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 02%3A00%3A00/region=2
+#### A masked pattern was here ####
+5
+PREHOOK: query: -- 11
+select count(*) from partition_timestamp_1 where dt = timestamp '2001-01-01 03:00:00' and region = '10'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+#### A masked pattern was here ####
+POSTHOOK: query: -- 11
+select count(*) from partition_timestamp_1 where dt = timestamp '2001-01-01 03:00:00' and region = '10'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 03%3A00%3A00/region=10
+#### A masked pattern was here ####
+11
+PREHOOK: query: -- 30
+select count(*) from partition_timestamp_1 where region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 30
+select count(*) from partition_timestamp_1 where region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+30
+PREHOOK: query: -- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00' and region = '3'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '2000-01-01 01:00:00' and region = '3'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+0
+PREHOOK: query: -- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '1999-01-01 01:00:00'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 0
+select count(*) from partition_timestamp_1 where dt = timestamp '1999-01-01 01:00:00'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+#### A masked pattern was here ####
+0
+PREHOOK: query: -- Try other comparison operations
+
+-- 20
+select count(*) from partition_timestamp_1 where dt > timestamp '2000-01-01 01:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- Try other comparison operations
+
+-- 20
+select count(*) from partition_timestamp_1 where dt > timestamp '2000-01-01 01:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+20
+PREHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt < timestamp '2000-01-02 01:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt < timestamp '2000-01-02 01:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+10
+PREHOOK: query: -- 20
+select count(*) from partition_timestamp_1 where dt >= timestamp '2000-01-02 01:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 20
+select count(*) from partition_timestamp_1 where dt >= timestamp '2000-01-02 01:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+20
+PREHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt <= timestamp '2000-01-01 01:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt <= timestamp '2000-01-01 01:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+10
+PREHOOK: query: -- 20
+select count(*) from partition_timestamp_1 where dt <> timestamp '2000-01-01 01:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 20
+select count(*) from partition_timestamp_1 where dt <> timestamp '2000-01-01 01:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 02%3A00%3A00/region=1
+#### A masked pattern was here ####
+20
+PREHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt between timestamp '1999-12-30 12:00:00' and timestamp '2000-01-03 12:00:00' and region = '1'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: -- 10
+select count(*) from partition_timestamp_1 where dt between timestamp '1999-12-30 12:00:00' and timestamp '2000-01-03 12:00:00' and region = '1'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+10
+PREHOOK: query: -- Try a string key with timestamp-like strings
+
+-- 5
+select count(*) from partition_timestamp_1 where region = '2020-20-20'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+#### A masked pattern was here ####
+POSTHOOK: query: -- Try a string key with timestamp-like strings
+
+-- 5
+select count(*) from partition_timestamp_1 where region = '2020-20-20'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+#### A masked pattern was here ####
+5
+PREHOOK: query: -- 5
+select count(*) from partition_timestamp_1 where region > '2010-01-01'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+#### A masked pattern was here ####
+POSTHOOK: query: -- 5
+select count(*) from partition_timestamp_1 where region > '2010-01-01'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Input: default@partition_timestamp_1@dt=2001-01-01 01%3A00%3A00/region=2020-20-20
+#### A masked pattern was here ####
+5
+PREHOOK: query: drop table partition_timestamp_1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@partition_timestamp_1
+PREHOOK: Output: default@partition_timestamp_1
+POSTHOOK: query: drop table partition_timestamp_1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@partition_timestamp_1
+POSTHOOK: Output: default@partition_timestamp_1
Added: hive/trunk/ql/src/test/results/clientpositive/partition_timestamp2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/partition_timestamp2.q.out?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/partition_timestamp2.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/partition_timestamp2.q.out Tue Nov 11 21:08:56 2014
@@ -0,0 +1,395 @@
+PREHOOK: query: drop table partition_timestamp2_1
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table partition_timestamp2_1
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table partition_timestamp2_1 (key string, value string) partitioned by (dt timestamp, region int)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@partition_timestamp2_1
+POSTHOOK: query: create table partition_timestamp2_1 (key string, value string) partitioned by (dt timestamp, region int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@partition_timestamp2_1
+PREHOOK: query: -- test timestamp literal syntax
+from (select * from src tablesample (1 rows)) x
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 01:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 00:00:00', region=2) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 01:00:00', region=2) select *
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: query: -- test timestamp literal syntax
+from (select * from src tablesample (1 rows)) x
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 01:00:00', region=1) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 00:00:00', region=2) select *
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1999-01-01 01:00:00', region=2) select *
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1999-01-01 00:00:00,region=2).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1999-01-01 00:00:00,region=2).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1999-01-01 01:00:00,region=2).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1999-01-01 01:00:00,region=2).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 00:00:00,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 00:00:00,region=1).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 01:00:00,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 01:00:00,region=1).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: select distinct dt from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct dt from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+1999-01-01 00:00:00
+1999-01-01 01:00:00
+2000-01-01 00:00:00
+2000-01-01 01:00:00
+PREHOOK: query: select * from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 1999-01-01 01:00:00 2
+238 val_238 2000-01-01 00:00:00 1
+238 val_238 2000-01-01 01:00:00 1
+PREHOOK: query: -- insert overwrite
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1)
+ select 'changed_key', 'changed_value' from src tablesample (2 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: query: -- insert overwrite
+insert overwrite table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1)
+ select 'changed_key', 'changed_value' from src tablesample (2 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 00:00:00,region=1).key SIMPLE []
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=2000-01-01 00:00:00,region=1).value SIMPLE []
+PREHOOK: query: select * from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 1999-01-01 01:00:00 2
+changed_key changed_value 2000-01-01 00:00:00 1
+changed_key changed_value 2000-01-01 00:00:00 1
+238 val_238 2000-01-01 01:00:00 1
+PREHOOK: query: -- truncate
+truncate table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1)
+PREHOOK: type: TRUNCATETABLE
+PREHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: query: -- truncate
+truncate table partition_timestamp2_1 partition(dt=timestamp '2000-01-01 00:00:00', region=1)
+POSTHOOK: type: TRUNCATETABLE
+POSTHOOK: Output: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: query: select distinct dt from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct dt from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+1999-01-01 00:00:00
+1999-01-01 01:00:00
+2000-01-01 00:00:00
+2000-01-01 01:00:00
+PREHOOK: query: select * from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 1999-01-01 01:00:00 2
+238 val_238 2000-01-01 01:00:00 1
+PREHOOK: query: -- alter table add partition
+alter table partition_timestamp2_1 add partition (dt=timestamp '1980-01-02 00:00:00', region=3)
+PREHOOK: type: ALTERTABLE_ADDPARTS
+PREHOOK: Output: default@partition_timestamp2_1
+POSTHOOK: query: -- alter table add partition
+alter table partition_timestamp2_1 add partition (dt=timestamp '1980-01-02 00:00:00', region=3)
+POSTHOOK: type: ALTERTABLE_ADDPARTS
+POSTHOOK: Output: default@partition_timestamp2_1
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: query: select distinct dt from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct dt from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+1980-01-02 00:00:00
+1999-01-01 00:00:00
+1999-01-01 01:00:00
+2000-01-01 00:00:00
+2000-01-01 01:00:00
+PREHOOK: query: select * from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 1999-01-01 01:00:00 2
+238 val_238 2000-01-01 01:00:00 1
+PREHOOK: query: -- alter table drop
+alter table partition_timestamp2_1 drop partition (dt=timestamp '1999-01-01 01:00:00', region=2)
+PREHOOK: type: ALTERTABLE_DROPPARTS
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+POSTHOOK: query: -- alter table drop
+alter table partition_timestamp2_1 drop partition (dt=timestamp '1999-01-01 01:00:00', region=2)
+POSTHOOK: type: ALTERTABLE_DROPPARTS
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1999-01-01 01%3A00%3A00/region=2
+PREHOOK: query: select distinct dt from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select distinct dt from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+1980-01-02 00:00:00
+1999-01-01 00:00:00
+2000-01-01 00:00:00
+2000-01-01 01:00:00
+PREHOOK: query: select * from partition_timestamp2_1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 2000-01-01 01:00:00 1
+PREHOOK: query: -- alter table set serde
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set serde 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
+PREHOOK: type: ALTERPARTITION_SERIALIZER
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: query: -- alter table set serde
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set serde 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
+POSTHOOK: type: ALTERPARTITION_SERIALIZER
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: query: -- alter table set fileformat
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set fileformat rcfile
+PREHOOK: type: ALTERPARTITION_FILEFORMAT
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: query: -- alter table set fileformat
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ set fileformat rcfile
+POSTHOOK: type: ALTERPARTITION_FILEFORMAT
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: query: describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: query: describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@partition_timestamp2_1
+key string
+value string
+dt timestamp
+region int
+
+# Partition Information
+# col_name data_type comment
+
+dt timestamp
+region int
+
+#### A masked pattern was here ####
+PREHOOK: query: insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ select * from src tablesample (2 rows)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: query: insert overwrite table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+ select * from src tablesample (2 rows)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1980-01-02 00:00:00,region=3).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_timestamp2_1 PARTITION(dt=1980-01-02 00:00:00,region=3).value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+PREHOOK: query: select * from partition_timestamp2_1 order by key,value,dt,region
+PREHOOK: type: QUERY
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+PREHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+POSTHOOK: query: select * from partition_timestamp2_1 order by key,value,dt,region
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1999-01-01 00%3A00%3A00/region=2
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 00%3A00%3A00/region=1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=2000-01-01 01%3A00%3A00/region=1
+#### A masked pattern was here ####
+238 val_238 1980-01-02 00:00:00 3
+238 val_238 1999-01-01 00:00:00 2
+238 val_238 2000-01-01 01:00:00 1
+86 val_86 1980-01-02 00:00:00 3
+PREHOOK: query: -- alter table set location
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+#### A masked pattern was here ####
+PREHOOK: type: ALTERPARTITION_LOCATION
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+#### A masked pattern was here ####
+POSTHOOK: query: -- alter table set location
+alter table partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+#### A masked pattern was here ####
+POSTHOOK: type: ALTERPARTITION_LOCATION
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+#### A masked pattern was here ####
+PREHOOK: query: describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: query: describe extended partition_timestamp2_1 partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@partition_timestamp2_1
+key string
+value string
+dt timestamp
+region int
+
+# Partition Information
+# col_name data_type comment
+
+dt timestamp
+region int
+
+#### A masked pattern was here ####
+PREHOOK: query: -- alter table touch
+alter table partition_timestamp2_1 touch partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+PREHOOK: type: ALTERTABLE_TOUCH
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: query: -- alter table touch
+alter table partition_timestamp2_1 touch partition(dt=timestamp '1980-01-02 00:00:00', region=3)
+POSTHOOK: type: ALTERTABLE_TOUCH
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Input: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+POSTHOOK: Output: default@partition_timestamp2_1@dt=1980-01-02 00%3A00%3A00/region=3
+PREHOOK: query: drop table partition_timestamp2_1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@partition_timestamp2_1
+PREHOOK: Output: default@partition_timestamp2_1
+POSTHOOK: query: drop table partition_timestamp2_1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@partition_timestamp2_1
+POSTHOOK: Output: default@partition_timestamp2_1
Added: hive/trunk/ql/src/test/results/clientpositive/timestamp_literal.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/timestamp_literal.q.out?rev=1638402&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/timestamp_literal.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/timestamp_literal.q.out Tue Nov 11 21:08:56 2014
@@ -0,0 +1,99 @@
+PREHOOK: query: explain
+select timestamp '2011-01-01 01:01:01'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select timestamp '2011-01-01 01:01:01'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ Select Operator
+ expressions: 2011-01-01 01:01:01.0 (type: timestamp)
+ outputColumnNames: _col0
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select timestamp '2011-01-01 01:01:01'
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select timestamp '2011-01-01 01:01:01'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+2011-01-01 01:01:01
+PREHOOK: query: explain
+select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ Select Operator
+ expressions: true (type: boolean)
+ outputColumnNames: _col0
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+true
+PREHOOK: query: explain
+select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-0 is a root stage
+
+STAGE PLANS:
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ TableScan
+ alias: _dummy_table
+ Row Limit Per Split: 1
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ Select Operator
+ expressions: 1 (type: int)
+ outputColumnNames: _col0
+ Statistics: Num rows: 0 Data size: 1 Basic stats: PARTIAL Column stats: COMPLETE
+ ListSink
+
+PREHOOK: query: select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+POSTHOOK: query: select 1 where timestamp '2011-01-01 01:01:01.101' <> timestamp '2011-01-01 01:01:01.100'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+#### A masked pattern was here ####
+1