From 808ea8fc7bb259ddd810353719cac66e85a608c8 Mon Sep 17 00:00:00 2001 From: Joe Conway Date: Sat, 11 Jul 2015 14:19:31 -0700 Subject: Add assign_expr_collations() to CreatePolicy() and AlterPolicy(). As noted by Noah Misch, CreatePolicy() and AlterPolicy() omit to call assign_expr_collations() on the node trees. Fix the omission and add his test case to the rowsecurity regression test. --- src/backend/commands/policy.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/backend/commands') diff --git a/src/backend/commands/policy.c b/src/backend/commands/policy.c index 11efc9f30f1..72329834a31 100644 --- a/src/backend/commands/policy.c +++ b/src/backend/commands/policy.c @@ -538,6 +538,10 @@ CreatePolicy(CreatePolicyStmt *stmt) EXPR_KIND_WHERE, "POLICY"); + /* Fix up collation information */ + assign_expr_collations(qual_pstate, qual); + assign_expr_collations(with_check_pstate, with_check_qual); + /* Open pg_policy catalog */ pg_policy_rel = heap_open(PolicyRelationId, RowExclusiveLock); @@ -681,6 +685,9 @@ AlterPolicy(AlterPolicyStmt *stmt) EXPR_KIND_WHERE, "POLICY"); + /* Fix up collation information */ + assign_expr_collations(qual_pstate, qual); + qual_parse_rtable = qual_pstate->p_rtable; free_parsestate(qual_pstate); } @@ -701,6 +708,9 @@ AlterPolicy(AlterPolicyStmt *stmt) EXPR_KIND_WHERE, "POLICY"); + /* Fix up collation information */ + assign_expr_collations(with_check_pstate, with_check_qual); + with_check_parse_rtable = with_check_pstate->p_rtable; free_parsestate(with_check_pstate); } -- cgit v1.2.3