From 6efbded6e4672c597a6f0dc0f09263e7db7369ff Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 22 Dec 2015 21:05:16 -0500 Subject: Allow omitting one or both boundaries in an array slice specifier. Omitted boundaries represent the upper or lower limit of the corresponding array subscript. This allows simpler specification of many common use-cases. (Revised version of commit 9246af6799819847faa33baf441251003acbb8fe) YUriy Zhuravlev --- src/backend/utils/adt/ruleutils.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/backend/utils/adt/ruleutils.c') diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 0ab839dc736..280808ae4f9 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -9372,10 +9372,12 @@ printSubscripts(ArrayRef *aref, deparse_context *context) appendStringInfoChar(buf, '['); if (lowlist_item) { + /* If subexpression is NULL, get_rule_expr prints nothing */ get_rule_expr((Node *) lfirst(lowlist_item), context, false); appendStringInfoChar(buf, ':'); lowlist_item = lnext(lowlist_item); } + /* If subexpression is NULL, get_rule_expr prints nothing */ get_rule_expr((Node *) lfirst(uplist_item), context, false); appendStringInfoChar(buf, ']'); } -- cgit v1.2.3