]> granicus.if.org Git - postgresql/commitdiff
Add some comments to test_ddl_deparse and a README
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 20 Jul 2015 09:20:40 +0000 (11:20 +0200)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 20 Jul 2015 09:20:40 +0000 (11:20 +0200)
Per comments from Heikki Linnakangas.

Backpatch to 9.5, where this module was introduced.

src/test/modules/test_ddl_deparse/README [new file with mode: 0644]
src/test/modules/test_ddl_deparse/test_ddl_deparse.c

diff --git a/src/test/modules/test_ddl_deparse/README b/src/test/modules/test_ddl_deparse/README
new file mode 100644 (file)
index 0000000..f026407
--- /dev/null
@@ -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.
index a216e422e9f0d23342515427e6b8183809ff45ae..5ae17f866ed8e6bd1764fe19fd90b29bf2007089 100644 (file)
@@ -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 =