diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java index 6a00220f6d..85a42f9456 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java @@ -782,7 +782,7 @@ private boolean determineRgsToRead(int rowIndexStride, sargApp = new RecordReaderImpl.SargApplier(sarg, rowIndexStride, evolution, OrcFile.WriterVersion.from(OrcFile.WriterImplementation.ORC_JAVA, fileMetadata.getWriterVersionNum()), - false); + true); } boolean hasAnyData = false; // stripeRgs should have been initialized by this time with an empty array. diff --git a/pom.xml b/pom.xml index 7649af10a7..4c956c412e 100644 --- a/pom.xml +++ b/pom.xml @@ -187,7 +187,7 @@ 0.9.3 2.10.0 2.3 - 1.5.4 + 1.5.6 1.10.19 1.7.4 2.0.0-M5 diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java index 707e38c321..f350f1b5a5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java @@ -2313,7 +2313,7 @@ private static boolean isStripeSatisfyPredicate( } PredicateLeaf leaf = predLeaves.get(pred); try { - truthValues[pred] = RecordReaderImpl.evaluatePredicate(stats, leaf, null); + truthValues[pred] = RecordReaderImpl.evaluatePredicate(stats, leaf, null, true); } catch (NoDynamicValuesException dve) { LOG.debug("Dynamic values are not available here {}", dve.getMessage()); boolean hasNulls = stats.hasNull() || leaf.getOperator() != Operator.NULL_SAFE_EQUALS; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java b/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java index 27fe828b75..bfabdce736 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java @@ -204,6 +204,9 @@ private static Object boxLiteral(ExprNodeConstantDesc constantDesc, } return fl.doubleValue(); case TIMESTAMP: + if (lit instanceof org.apache.hadoop.hive.common.type.Timestamp) { + return ((org.apache.hadoop.hive.common.type.Timestamp) lit).toSqlTimestamp(); + } return Timestamp.valueOf(lit.toString()); case DATE: return Date.valueOf(lit.toString()); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/FixedBucketPruningOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/FixedBucketPruningOptimizer.java index 35053e3ca6..3a40b319a4 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/FixedBucketPruningOptimizer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/FixedBucketPruningOptimizer.java @@ -251,7 +251,8 @@ private Object convertLiteral(Object o) { if (o instanceof java.sql.Date) { return Date.valueOf(o.toString()); } else if (o instanceof java.sql.Timestamp) { - return Timestamp.valueOf(o.toString()); + java.sql.Timestamp sqlTimestamp = (java.sql.Timestamp)o; + return Timestamp.ofEpochMilli(sqlTimestamp.getTime(), sqlTimestamp.getNanos()); } return o; } diff --git a/ql/src/test/queries/clientpositive/change_allowincompatible_vectorization_false_date.q b/ql/src/test/queries/clientpositive/change_allowincompatible_vectorization_false_date.q index e750c59ded..02d923b322 100644 --- a/ql/src/test/queries/clientpositive/change_allowincompatible_vectorization_false_date.q +++ b/ql/src/test/queries/clientpositive/change_allowincompatible_vectorization_false_date.q @@ -27,3 +27,5 @@ insert into table change_allowincompatible_vectorization_false_date partition (s select ts from change_allowincompatible_vectorization_false_date where ts='2038-03-22 07:26:48.0' and s='aaa'; +set hive.vectorized.execution.enabled=true; +select ts from change_allowincompatible_vectorization_false_date where ts='2038-03-22 07:26:48.0' and s='aaa'; diff --git a/ql/src/test/results/clientpositive/llap/change_allowincompatible_vectorization_false_date.q.out b/ql/src/test/results/clientpositive/llap/change_allowincompatible_vectorization_false_date.q.out index 4661a03571..f3716b1e8c 100644 --- a/ql/src/test/results/clientpositive/llap/change_allowincompatible_vectorization_false_date.q.out +++ b/ql/src/test/results/clientpositive/llap/change_allowincompatible_vectorization_false_date.q.out @@ -84,3 +84,14 @@ POSTHOOK: Input: default@change_allowincompatible_vectorization_false_date POSTHOOK: Input: default@change_allowincompatible_vectorization_false_date@s=aaa #### A masked pattern was here #### 2038-03-22 07:26:48 +PREHOOK: query: select ts from change_allowincompatible_vectorization_false_date where ts='2038-03-22 07:26:48.0' and s='aaa' +PREHOOK: type: QUERY +PREHOOK: Input: default@change_allowincompatible_vectorization_false_date +PREHOOK: Input: default@change_allowincompatible_vectorization_false_date@s=aaa +#### A masked pattern was here #### +POSTHOOK: query: select ts from change_allowincompatible_vectorization_false_date where ts='2038-03-22 07:26:48.0' and s='aaa' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@change_allowincompatible_vectorization_false_date +POSTHOOK: Input: default@change_allowincompatible_vectorization_false_date@s=aaa +#### A masked pattern was here #### +2038-03-22 07:26:48