mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
When we added the ability to have zero-element ARRAY[] constructs by adding an
explicit cast to show the intended array type, we forgot to teach ruleutils.c to print out such constructs properly. Found by noting bogus output from recent changes in polymorphism regression test.
This commit is contained in:
@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.289 2008/12/18 18:20:34 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.290 2008/12/19 05:04:35 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -4451,6 +4451,14 @@ get_rule_expr(Node *node, deparse_context *context,
|
||||
appendStringInfo(buf, "ARRAY[");
|
||||
get_rule_expr((Node *) arrayexpr->elements, context, true);
|
||||
appendStringInfoChar(buf, ']');
|
||||
/*
|
||||
* If the array isn't empty, we assume its elements are
|
||||
* coerced to the desired type. If it's empty, though, we
|
||||
* need an explicit coercion to the array type.
|
||||
*/
|
||||
if (arrayexpr->elements == NIL)
|
||||
appendStringInfo(buf, "::%s",
|
||||
format_type_with_typemod(arrayexpr->array_typeid, -1));
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user