You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by od...@apache.org on 2016/09/22 18:43:31 UTC

incubator-hawq git commit: HAWQ-1048. Discard whole filter if at least one operator is not supported.

Repository: incubator-hawq
Updated Branches:
  refs/heads/HAWQ-1048 0ff70373b -> 694ad0383


 HAWQ-1048. Discard whole filter if at least one operator is not supported.


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/694ad038
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/694ad038
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/694ad038

Branch: refs/heads/HAWQ-1048
Commit: 694ad0383cce829057636365a87b92056bb52e03
Parents: 0ff7037
Author: Oleksandr Diachenko <od...@pivotal.io>
Authored: Thu Sep 22 11:43:19 2016 -0700
Committer: Oleksandr Diachenko <od...@pivotal.io>
Committed: Thu Sep 22 11:43:19 2016 -0700

----------------------------------------------------------------------
 src/backend/access/external/pxffilters.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/694ad038/src/backend/access/external/pxffilters.c
----------------------------------------------------------------------
diff --git a/src/backend/access/external/pxffilters.c b/src/backend/access/external/pxffilters.c
index 8c3864d..847f120 100644
--- a/src/backend/access/external/pxffilters.c
+++ b/src/backend/access/external/pxffilters.c
@@ -301,8 +301,12 @@ pxf_serialize_filter_list(List *expressionItems)
 					}
 					appendStringInfo(resbuf, "%c%d", PXF_OPERATOR_CODE, o);
 					pxf_free_filter(filter);
-				} else{
+				} else {
+					/* if at least one expression item is not supported, whole filter doesn't make sense*/
+					elog(INFO, "Query will not be optimized to use filter push-down.");
 					pfree(filter);
+					pfree(resbuf->data);
+					return NULL;
 				}
 				break;
 			}