pgsql: Remove artificial restrictions on which node types have out/read
От | Tom Lane |
---|---|
Тема | pgsql: Remove artificial restrictions on which node types have out/read |
Дата | |
Msg-id | E1oBebB-002cG9-DT@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Remove artificial restrictions on which node types have out/read funcs. The initial version of gen_node_support.pl manually excluded most utility statement node types from having out/read support, and also some raw-parse-tree-only node types. That was mostly to keep the output comparable to the old hand-maintained code. We'd like to have out/read support for utility statements, for debugging purposes and so that they can be included in new-style SQL functions; so it's time to lift that restriction. Most if not all of the previously-excluded raw-parse-tree-only node types can appear in expression subtrees of utility statements, so they have to be handled too. We don't quite have full read support yet; certain custom_read_write node types need to have their handwritten read functions implemented before that will work. Doing this allows us to drop the previous hack in _outQuery to not dump the utilityStmt field in most cases, which means we no longer need manually-maintained out/read functions for Query, so get rid of those in favor of auto-generating them. Fix a couple of omissions in gen_node_support.pl that are exposed through having to handle more node types. catversion bump forced because somebody was sloppy about the field order in the manually-maintained Query out/read functions. (Committers should note that almost all changes in parsenodes.h are now grounds for a catversion bump.) Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/ff33a8c8874b43ec55d517ce0612ed79ad08a38a Modified Files -------------- src/backend/nodes/gen_node_support.pl | 39 ++++++------------- src/backend/nodes/outfuncs.c | 73 ----------------------------------- src/backend/nodes/readfuncs.c | 50 ------------------------ src/include/catalog/catversion.h | 6 ++- src/include/nodes/parsenodes.h | 10 ++--- 5 files changed, 19 insertions(+), 159 deletions(-)
В списке pgsql-committers по дате отправления: