aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/test/modules/test_ddl_deparse/README8
-rw-r--r--src/test/modules/test_ddl_deparse/test_ddl_deparse.c26
2 files changed, 34 insertions, 0 deletions
diff --git a/src/test/modules/test_ddl_deparse/README b/src/test/modules/test_ddl_deparse/README
new file mode 100644
index 00000000000..f02640731e8
--- /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 a216e422e9f..5ae17f866ed 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 =