some grammar refactoring
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-05-19T06:43:27Z
Lists: pgsql-hackers
Attachments
- v1-0001-Remove-redundant-grammar-symbols.patch (text/plain) patch v1-0001
- v1-0002-Fold-AlterForeignTableStmt-into-AlterTableStmt.patch (text/plain) patch v1-0002
- v1-0003-Remove-deprecated-syntax-from-CREATE-DROP-LANGUAG.patch (text/plain) patch v1-0003
- v1-0004-Refactor-DROP-LANGUAGE-grammar.patch (text/plain) patch v1-0004
- v1-0005-Grammar-object-type-refactoring.patch (text/plain) patch v1-0005
- v1-0006-Refactor-AlterExtensionContentsStmt-grammar.patch (text/plain) patch v1-0006
Here is a series of patches to do some refactoring in the grammar around the commands COMMENT, DROP, SECURITY LABEL, and ALTER EXTENSION ... ADD/DROP. In the grammar, these commands (with some exceptions) basically just take a reference to an object and later look it up in C code. Some of that was already generalized individually for each command (drop_type_any_name, drop_type_name, etc.). This patch combines it into common lists for all these commands. Advantages: - Avoids having to list each object type at least four times. - Object types not supported by security labels or extensions are now explicitly listed and give a proper error message. Previously, this was just encoded in the grammar itself and specifying a non-supported object type would just give a parse error. - Reduces lines of code in gram.y. - Removes some old cruft. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Grammar object type refactoring
- a332b366d4fa 14.0 landed
-
Refactor AlterExtensionContentsStmt grammar
- 8f5b5967441f 14.0 landed
-
Refactor DROP LANGUAGE grammar
- 3fbd4bb6f494 14.0 landed
-
Remove deprecated syntax from CREATE/DROP LANGUAGE
- 5333e014ab94 14.0 landed
-
Fold AlterForeignTableStmt into AlterTableStmt
- c4325cefba51 14.0 landed
-
Remove redundant grammar symbols
- c2bd1fec32ab 14.0 landed