You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/03/26 19:22:41 UTC
[hive] 02/02: HIVE-21497: Direct SQL exception thrown by
PartitionManagementTask (Jesus Camacho Rodriguez,
reviewed by Prasanth Jayachandran)
This is an automated email from the ASF dual-hosted git repository.
jcamacho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
commit 866498ae0160e7475438a0b17bf3ee7b3d1a6a50
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Mon Mar 25 15:55:26 2019 -0700
HIVE-21497: Direct SQL exception thrown by PartitionManagementTask (Jesus Camacho Rodriguez, reviewed by Prasanth Jayachandran)
---
.../apache/hadoop/hive/metastore/MetaStoreDirectSql.java | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
index b0cbe01..45b89e0 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java
@@ -23,7 +23,6 @@ import static org.apache.commons.lang.StringUtils.normalizeSpace;
import static org.apache.commons.lang.StringUtils.repeat;
import static org.apache.hadoop.hive.metastore.Warehouse.DEFAULT_CATALOG_NAME;
-import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@@ -1173,6 +1172,7 @@ class MetaStoreDirectSql {
// Build the filter and add parameters linearly; we are traversing leaf nodes LTR.
String tableValue = "\"FILTER" + partColIndex + "\".\"PART_KEY_VAL\"";
+ String nodeValue0 = "?";
if (node.isReverseOrder) {
params.add(nodeValue);
}
@@ -1206,14 +1206,23 @@ class MetaStoreDirectSql {
params.add(table.getCatName().toLowerCase());
}
tableValue += " then " + tableValue0 + " else null end)";
+
+ if (valType == FilterType.Date) {
+ if (dbType == DatabaseProduct.ORACLE) {
+ // Oracle requires special treatment... as usual.
+ nodeValue0 = "TO_DATE(" + nodeValue0 + ", 'YYYY-MM-DD')";
+ } else {
+ nodeValue0 = "cast(" + nodeValue0 + " as date)";
+ }
+ }
}
if (!node.isReverseOrder) {
params.add(nodeValue);
}
filterBuffer.append(node.isReverseOrder
- ? "(? " + node.operator.getSqlOp() + " " + tableValue + ")"
- : "(" + tableValue + " " + node.operator.getSqlOp() + " ?)");
+ ? "(" + nodeValue0 + " " + node.operator.getSqlOp() + " " + tableValue + ")"
+ : "(" + tableValue + " " + node.operator.getSqlOp() + " " + nodeValue0 + ")");
}
}