Create new ParseExprKind for use by policy expressions.
authorJoe Conway <mail@joeconway.com>
Wed, 29 Jul 2015 22:41:00 +0000 (15:41 -0700)
committerJoe Conway <mail@joeconway.com>
Wed, 29 Jul 2015 22:41:00 +0000 (15:41 -0700)
commit43797ed42a7c0365c9143ad6efdc566ac9d93fd8
treefc04f3dc24120507a592fbf859b97d7eebdfc3c5
parent3ef1a682d5e4a919dcaddc8256ea65de91654d1c
Create new ParseExprKind for use by policy expressions.

Policy USING and WITH CHECK expressions were using EXPR_KIND_WHERE for
parse analysis, which results in inappropriate ERROR messages when
the expression contains unsupported constructs such as aggregates.
Create a new ParseExprKind called EXPR_KIND_POLICY and tailor the
related messages to fit.

Reported by Noah Misch. Reviewed by Dean Rasheed, Alvaro Herrera,
and Robert Haas. Back-patch to 9.5 where RLS was introduced.
src/backend/commands/policy.c
src/backend/parser/parse_agg.c
src/backend/parser/parse_expr.c
src/include/parser/parse_node.h
src/test/modules/test_rls_hooks/test_rls_hooks.c
src/test/regress/expected/rowsecurity.out
src/test/regress/sql/rowsecurity.sql