diff --git a/src/test/modules/test_ddl_deparse/README b/src/test/modules/test_ddl_deparse/README
new file mode 100644
index 0000000000000000000000000000000000000000..f02640731e8c26b389abd6e0a852fb08e98bddf7
--- /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 a216e422e9f0d23342515427e6b8183809ff45ae..5ae17f866ed8e6bd1764fe19fd90b29bf2007089 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 =