Github user lavjain commented on a diff in the pull request:
https://github.com/apache/incubator-hawq/pull/1287#discussion_r141147551
--- Diff:
pxf/pxf-hive/src/main/java/org/apache/hawq/pxf/plugins/hive/HiveDataFragmenter.java
---
@@ -418,8 +427,15 @@ private boolean buildSingleFilter(Object filter,
return false;
}
- if
(!partitionkeyTypes.get(filterColumnName).equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME))
{
- LOG.debug("Filter type is not string type , ignore this filter
for hive: "
+ /*
+ * HAWQ-1527 - Filtering only supported for partition columns of
type string or
+ * intgeral datatype. Integral datatypes include - TINYINT,
SMALLINT, INT, BIGINT.
+ * Note that with integral data types only equals("=") and not
equals("!=") operators
+ * are supported. There are no operator restrictions with String.
+ */
+ if (!colType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME)
+ && (!isIntegralSupported ||
!serdeConstants.IntegralTypes.contains(colType))) {
--- End diff --
Should the above be an OR condition?
---