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 <odiache...@pivotal.io>
Authored: Thu Sep 22 11:43:19 2016 -0700
Committer: Oleksandr Diachenko <odiache...@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;
                        }

Reply via email to