hawq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From odiache...@apache.org
Subject [12/18] incubator-hawq git commit: HAWQ-1048. Added filter-push down support for bpchar, bytea.
Date Wed, 05 Oct 2016 18:29:22 GMT
 HAWQ-1048. Added filter-push down support for bpchar, bytea.


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

Branch: refs/heads/HAWQ-964
Commit: d1873951dbca3928fef948044a948d5477ae7fe9
Parents: 98bc759
Author: Oleksandr Diachenko <odiachenko@pivotal.io>
Authored: Thu Sep 22 16:45:57 2016 -0700
Committer: Oleksandr Diachenko <odiachenko@pivotal.io>
Committed: Thu Sep 22 16:45:57 2016 -0700

----------------------------------------------------------------------
 src/backend/access/external/pxffilters.c | 32 +++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/d1873951/src/backend/access/external/pxffilters.c
----------------------------------------------------------------------
diff --git a/src/backend/access/external/pxffilters.c b/src/backend/access/external/pxffilters.c
index 20956bf..17e184a 100644
--- a/src/backend/access/external/pxffilters.c
+++ b/src/backend/access/external/pxffilters.c
@@ -142,7 +142,24 @@ dbop_pxfop_map pxf_supported_opr[] =
 	{674 /* float8gt */, PXFOP_GT},
 	{673 /* float8le */, PXFOP_LE},
 	{675 /* float8ge */, PXFOP_GE},
-	{671 /* float8ne */, PXFOP_NE}
+	{671 /* float8ne */, PXFOP_NE},
+
+	/* bpchar */
+	{BPCharEqualOperator  /* bpchareq */, PXFOP_EQ},
+	{1058  /* bpcharlt */, PXFOP_LT},
+	{1060 /* bpchargt */, PXFOP_GT},
+	{1059 /* bpcharle */, PXFOP_LE},
+	{1061 /* bpcharge */, PXFOP_GE},
+	{1057 /* bpcharne */, PXFOP_NE},
+
+	/* bytea */
+	{ByteaEqualOperator  /* byteaeq */, PXFOP_EQ},
+	{1957  /* bytealt */, PXFOP_LT},
+	{1959 /* byteagt */, PXFOP_GT},
+	{1958 /* byteale */, PXFOP_LE},
+	{1960 /* byteage */, PXFOP_GE},
+	{1956 /* byteane */, PXFOP_NE}
+
 };
 
 Oid pxf_supported_types[] =
@@ -159,7 +176,8 @@ Oid pxf_supported_types[] =
 	CHAROID,
 	BYTEAOID,
 	BOOLOID,
-	DATEOID
+	DATEOID,
+	TIMESTAMPOID
 };
 
 /*
@@ -310,7 +328,7 @@ pxf_serialize_filter_list(List *expressionItems)
 					pxf_free_filter(filter);
 				} 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.");
+					elog(DEBUG1, "Query will not be optimized to use filter push-down.");
 					pfree(filter);
 					pfree(resbuf->data);
 					return NULL;
@@ -411,6 +429,7 @@ opexpr_to_pxffilter(OpExpr *expr, PxfFilterDesc *filter)
 	}
 	else
 	{
+		elog(DEBUG1, "opexpr_to_pxffilter: expression is not a Var+Const");
 		return false;
 	}
 
@@ -426,9 +445,10 @@ opexpr_to_pxffilter(OpExpr *expr, PxfFilterDesc *filter)
 		}
 	}
 
+	elog(DEBUG1, "opexpr_to_pxffilter: operator is not supported, operator code: %d", expr->opno);
+
 	/* NOTE: if more validation needed, add it before the operators test
 	 * or alternatively change it to use a false flag and return true below */
-
 	return false;
 }
 
@@ -510,6 +530,9 @@ supported_filter_type(Oid type)
 		if (type == pxf_supported_types[i])
 			return true;
 	}
+
+	elog(DEBUG1, "supported_filter_type: filter pushdown is not supported for datatype oid:
%d", type);
+
 	return false;
 }
 
@@ -555,6 +578,7 @@ const_to_str(Const *constval, StringInfo buf)
 		case CHAROID:
 		case BYTEAOID:
 		case DATEOID:
+		case TIMESTAMPOID:
 			appendStringInfo(buf, "\\\"%s\\\"", extval);
 			break;
 


Mime
View raw message