mirror of
https://github.com/postgres/postgres.git
synced 2025-06-11 20:28:21 +03:00
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.
This commit is contained in:
@ -1672,6 +1672,7 @@ transformSubLink(ParseState *pstate, SubLink *sublink)
|
||||
case EXPR_KIND_FROM_SUBSELECT:
|
||||
case EXPR_KIND_FROM_FUNCTION:
|
||||
case EXPR_KIND_WHERE:
|
||||
case EXPR_KIND_POLICY:
|
||||
case EXPR_KIND_HAVING:
|
||||
case EXPR_KIND_FILTER:
|
||||
case EXPR_KIND_WINDOW_PARTITION:
|
||||
@ -3173,6 +3174,8 @@ ParseExprKindName(ParseExprKind exprKind)
|
||||
return "function in FROM";
|
||||
case EXPR_KIND_WHERE:
|
||||
return "WHERE";
|
||||
case EXPR_KIND_POLICY:
|
||||
return "POLICY";
|
||||
case EXPR_KIND_HAVING:
|
||||
return "HAVING";
|
||||
case EXPR_KIND_FILTER:
|
||||
|
Reference in New Issue
Block a user