From: Alvaro Herrera Date: Mon, 20 Jul 2015 09:20:40 +0000 (+0200) Subject: Add some comments to test_ddl_deparse and a README X-Git-Tag: REL9_5_ALPHA2~91 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f1f3434f210450af2e3dab08fbc05a9edd0b67a4;p=postgresql Add some comments to test_ddl_deparse and a README Per comments from Heikki Linnakangas. Backpatch to 9.5, where this module was introduced. --- diff --git a/src/test/modules/test_ddl_deparse/README b/src/test/modules/test_ddl_deparse/README new file mode 100644 index 0000000000..f02640731e --- /dev/null +++ b/src/test/modules/test_ddl_deparse/README @@ -0,0 +1,8 @@ +test_ddl_deparse is an example of how to use the pg_ddl_command datatype. +It is not intended to do anything useful on its own; rather, it is a +demonstration of how to use the datatype, and to provide some unit tests for +it. + +The functions in this extension are intended to be able to process some +part of the struct and produce some readable output, preferrably handling +all possible cases so that SQL test code can be written. diff --git a/src/test/modules/test_ddl_deparse/test_ddl_deparse.c b/src/test/modules/test_ddl_deparse/test_ddl_deparse.c index a216e422e9..5ae17f866e 100644 --- a/src/test/modules/test_ddl_deparse/test_ddl_deparse.c +++ b/src/test/modules/test_ddl_deparse/test_ddl_deparse.c @@ -1,3 +1,13 @@ +/*---------------------------------------------------------------------- + * test_ddl_deparse.c + * Support functions for the test_ddl_deparse module + * + * Copyright (C) 2014-2015, PostgreSQL Global Development Group + * + * IDENTIFICATION + * src/test/modules/test_ddl_deparse/test_ddl_deparse.c + *---------------------------------------------------------------------- + */ #include "postgres.h" #include "catalog/pg_type.h" @@ -11,6 +21,10 @@ PG_FUNCTION_INFO_V1(get_command_type); PG_FUNCTION_INFO_V1(get_command_tag); PG_FUNCTION_INFO_V1(get_altertable_subcmdtypes); +/* + * Return the textual representation of the struct type used to represent a + * command in struct CollectedCommand format. + */ Datum get_command_type(PG_FUNCTION_ARGS) { @@ -48,6 +62,10 @@ get_command_type(PG_FUNCTION_ARGS) PG_RETURN_TEXT_P(cstring_to_text(type)); } +/* + * Return the command tag corresponding to a parse node contained in a + * CollectedCommand struct. + */ Datum get_command_tag(PG_FUNCTION_ARGS) { @@ -59,6 +77,10 @@ get_command_tag(PG_FUNCTION_ARGS) PG_RETURN_TEXT_P(cstring_to_text(CreateCommandTag(cmd->parsetree))); } +/* + * Return a text array representation of the subcommands of an ALTER TABLE + * command. + */ Datum get_altertable_subcmdtypes(PG_FUNCTION_ARGS) { @@ -130,6 +152,9 @@ get_altertable_subcmdtypes(PG_FUNCTION_ARGS) case AT_ReAddConstraint: strtype = "(re) ADD CONSTRAINT"; break; + case AT_ReAddComment: + strtype = "(re) ADD COMMENT"; + break; case AT_AlterConstraint: strtype = "ALTER CONSTRAINT"; break; @@ -258,6 +283,7 @@ get_altertable_subcmdtypes(PG_FUNCTION_ARGS) break; default: strtype = "unrecognized"; + break; } astate =