diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/sql_features.txt | 4 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 15 |
2 files changed, 12 insertions, 7 deletions
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt index aeb262a5b0e..bade0fe9aeb 100644 --- a/src/backend/catalog/sql_features.txt +++ b/src/backend/catalog/sql_features.txt @@ -635,8 +635,8 @@ X204 XMLQuery: initializing an XQuery variable NO X205 XMLQuery: EMPTY ON EMPTY option NO X206 XMLQuery: NULL ON EMPTY option NO X211 XML 1.1 support NO -X221 XML passing mechanism BY VALUE NO -X222 XML passing mechanism BY REF YES +X221 XML passing mechanism BY VALUE YES +X222 XML passing mechanism BY REF NO parser accepts BY REF but ignores it; passing is always BY VALUE X231 XML(CONTENT(UNTYPED)) type NO X232 XML(CONTENT(ANY)) type NO X241 RETURNING CONTENT in XML publishing NO diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 753af6073f3..e23e68fdb33 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -13951,20 +13951,25 @@ xmlexists_argument: { $$ = $2; } - | PASSING c_expr BY REF + | PASSING c_expr xml_passing_mech { $$ = $2; } - | PASSING BY REF c_expr + | PASSING xml_passing_mech c_expr { - $$ = $4; + $$ = $3; } - | PASSING BY REF c_expr BY REF + | PASSING xml_passing_mech c_expr xml_passing_mech { - $$ = $4; + $$ = $3; } ; +xml_passing_mech: + BY REF + | BY VALUE_P + ; + /* * Aggregate decoration clauses |