HAWQ-1103. Added comments and test case for empty string.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/b2dd7de0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/b2dd7de0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/b2dd7de0 Branch: refs/heads/HAWQ-1103 Commit: b2dd7de0c332922f647309f58e6e4a3630d33418 Parents: 3544222 Author: Oleksandr Diachenko <[email protected]> Authored: Fri Oct 21 15:09:39 2016 -0700 Committer: Oleksandr Diachenko <[email protected]> Committed: Fri Oct 21 15:09:39 2016 -0700 ---------------------------------------------------------------------- src/backend/access/external/pxffilters.c | 22 +++++++++++++++++++- .../access/external/test/pxffilters_test.c | 4 +++- 2 files changed, 24 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b2dd7de0/src/backend/access/external/pxffilters.c ---------------------------------------------------------------------- diff --git a/src/backend/access/external/pxffilters.c b/src/backend/access/external/pxffilters.c index 0d13074..f06b07f 100644 --- a/src/backend/access/external/pxffilters.c +++ b/src/backend/access/external/pxffilters.c @@ -329,7 +329,27 @@ pxf_free_filter(PxfFilterDesc* filter) * * Yields the following serialized string: * - * a0c1o2a0c5o1o7a2c"third"o5o7 + * a0c23s1d1o2a1c23s1d5o1a2c25s5dthirdo5l0l0 + * + * Where: + * + * a0 - first column of table + * c23 - scalar constant with type oid 23(INT4) + * s1 - size of constant in bytes + * d1 - serialized constant value + * o2 - greater than operation + * a1 - second column of table + * c23 - scalar constant with type oid 23(INT4) + * s1 - size of constant in bytes + * d5 - serialized constant value + * o1 - less than operation + * a2 - third column of table + * c25 - scalar constant with type oid 25(TEXT) + * s5 - size of constant in bytes + * dthird - serialized constant value + * o5 - equals operation + * l0 - AND operator + * l0 - AND operator * */ static char * http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b2dd7de0/src/backend/access/external/test/pxffilters_test.c ---------------------------------------------------------------------- diff --git a/src/backend/access/external/test/pxffilters_test.c b/src/backend/access/external/test/pxffilters_test.c index 3679587..fa1db94 100644 --- a/src/backend/access/external/test/pxffilters_test.c +++ b/src/backend/access/external/test/pxffilters_test.c @@ -518,6 +518,7 @@ test__pxf_serialize_filter_list__manyFilters(void **state) ExpressionItem* expressionItem3 = build_expression_item(3, TEXTOID, "Winston", TEXTOID, TextEqualOperator); ExpressionItem* expressionItem4 = build_expression_item(4, TEXTOID, "Eric-%", TEXTOID, 1209); ExpressionItem* expressionItem5 = build_expression_item(5, TEXTOID, "\"Ugly\" string with quotes", TEXTOID, TextEqualOperator); + ExpressionItem* expressionItem6 = build_expression_item(6, TEXTOID, "", TEXTOID, TextEqualOperator); expressionItems = lappend(expressionItems, expressionItem1); @@ -525,9 +526,10 @@ test__pxf_serialize_filter_list__manyFilters(void **state) expressionItems = lappend(expressionItems, expressionItem3); expressionItems = lappend(expressionItems, expressionItem4); expressionItems = lappend(expressionItems, expressionItem5); + expressionItems = lappend(expressionItems, expressionItem6); result = pxf_serialize_filter_list(expressionItems); - assert_string_equal(result, "a0c25s4d1984o5a1c25s13dGeorge Orwello5a2c25s7dWinstono5a3c25s6dEric-%o7a4c25s25d\"Ugly\" string with quoteso5"); + assert_string_equal(result, "a0c25s4d1984o5a1c25s13dGeorge Orwello5a2c25s7dWinstono5a3c25s6dEric-%o7a4c25s25d\"Ugly\" string with quoteso5a5c25s0do5"); pfree(result); int trivialExpressionItems = expressionItems->length;
