diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeConstantDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeConstantDesc.java index 3bafb81..d25b2e8 100755 --- ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeConstantDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeConstantDesc.java @@ -59,11 +59,11 @@ public Object getValue() { @Override public ConstantObjectInspector getWritableObjectInspector() { - PrimitiveCategory pc = ((PrimitiveTypeInfo)getTypeInfo()) - .getPrimitiveCategory(); + PrimitiveTypeInfo pti = (PrimitiveTypeInfo) getTypeInfo(); + PrimitiveCategory pc = pti.getPrimitiveCategory(); // Convert from Java to Writable Object writableValue = PrimitiveObjectInspectorFactory - .getPrimitiveJavaObjectInspector(pc).getPrimitiveWritableObject( + .getPrimitiveJavaObjectInspector(pti).getPrimitiveWritableObject( getValue()); return PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector((PrimitiveTypeInfo) getTypeInfo(), writableValue); diff --git ql/src/test/queries/clientpositive/partition_varchar2.q ql/src/test/queries/clientpositive/partition_varchar2.q new file mode 100644 index 0000000..92cb742 --- /dev/null +++ ql/src/test/queries/clientpositive/partition_varchar2.q @@ -0,0 +1,10 @@ +drop table partition_varchar_2; + +create table partition_varchar_2 (key string, value varchar(20)) partitioned by (dt varchar(15), region int); + +insert overwrite table partition_varchar_2 partition(dt='2000-01-01', region=1) + select * from src order by key limit 1; + +select * from partition_varchar_2 where cast(dt as varchar(10)) = '2000-01-01'; + +drop table partition_varchar_2; diff --git ql/src/test/results/clientpositive/partition_varchar2.q.out ql/src/test/results/clientpositive/partition_varchar2.q.out new file mode 100644 index 0000000..0625cf0 --- /dev/null +++ ql/src/test/results/clientpositive/partition_varchar2.q.out @@ -0,0 +1,44 @@ +PREHOOK: query: drop table partition_varchar_2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table partition_varchar_2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table partition_varchar_2 (key string, value varchar(20)) partitioned by (dt varchar(15), region int) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table partition_varchar_2 (key string, value varchar(20)) partitioned by (dt varchar(15), region int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@partition_varchar_2 +PREHOOK: query: insert overwrite table partition_varchar_2 partition(dt='2000-01-01', region=1) + select * from src order by key limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@partition_varchar_2@dt=2000-01-01/region=1 +POSTHOOK: query: insert overwrite table partition_varchar_2 partition(dt='2000-01-01', region=1) + select * from src order by key limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@partition_varchar_2@dt=2000-01-01/region=1 +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).value EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: select * from partition_varchar_2 where cast(dt as varchar(10)) = '2000-01-01' +PREHOOK: type: QUERY +PREHOOK: Input: default@partition_varchar_2 +PREHOOK: Input: default@partition_varchar_2@dt=2000-01-01/region=1 +#### A masked pattern was here #### +POSTHOOK: query: select * from partition_varchar_2 where cast(dt as varchar(10)) = '2000-01-01' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@partition_varchar_2 +POSTHOOK: Input: default@partition_varchar_2@dt=2000-01-01/region=1 +#### A masked pattern was here #### +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).value EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +0 val_0 2000-01-01 1 +PREHOOK: query: drop table partition_varchar_2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@partition_varchar_2 +PREHOOK: Output: default@partition_varchar_2 +POSTHOOK: query: drop table partition_varchar_2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@partition_varchar_2 +POSTHOOK: Output: default@partition_varchar_2 +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: partition_varchar_2 PARTITION(dt=2000-01-01,region=1).value EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]