From a831c9d79bb979a1360e90db00adddb156dd582a Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 12 Jul 2023 10:13:01 +0200 Subject: [PATCH v12] fixup! Add PERIODs --- doc/src/sgml/ref/alter_table.sgml | 2 +- src/backend/catalog/heap.c | 3 ++- src/backend/catalog/meson.build | 1 + src/backend/commands/tablecmds.c | 3 ++- src/include/catalog/meson.build | 1 + src/test/modules/test_ddl_deparse/test_ddl_deparse.c | 6 ++++++ 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 487f09f88a..d6aed3dff8 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -582,7 +582,7 @@ Description - + DROP PERIOD FOR diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 022a2ede4c..a31c22c6b7 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -2062,7 +2062,6 @@ Oid StorePeriod(Relation rel, const char *periodname, AttrNumber startnum, AttrNumber endnum, AttrNumber rangenum, Oid conoid) { - Assert(rangenum != InvalidAttrNumber); Datum values[Natts_pg_period]; bool nulls[Natts_pg_period]; Relation pg_period; @@ -2071,6 +2070,8 @@ StorePeriod(Relation rel, const char *periodname, AttrNumber startnum, NameData pername; ObjectAddress myself, referenced; + Assert(rangenum != InvalidAttrNumber); + namestrcpy(&pername, periodname); MemSet(values, 0, sizeof(values)); diff --git a/src/backend/catalog/meson.build b/src/backend/catalog/meson.build index fa6609e577..c499cd2f5d 100644 --- a/src/backend/catalog/meson.build +++ b/src/backend/catalog/meson.build @@ -26,6 +26,7 @@ backend_sources += files( 'pg_namespace.c', 'pg_operator.c', 'pg_parameter_acl.c', + 'pg_period.c', 'pg_proc.c', 'pg_publication.c', 'pg_range.c', diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index ef17b3e31e..d95f742b29 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8384,6 +8384,7 @@ ATExecAddPeriod(Relation rel, PeriodDef *period, AlterTableUtilityContext *conte Relation attrelation; ObjectAddress address = InvalidObjectAddress; Constraint *constr; + ColumnDef *rangecol; Oid conoid, periodoid; List *cmds = NIL; AlterTableCmd *cmd; @@ -8418,7 +8419,7 @@ ATExecAddPeriod(Relation rel, PeriodDef *period, AlterTableUtilityContext *conte conoid = get_relation_constraint_oid(RelationGetRelid(rel), period->constraintname, false); /* Make the range column */ - ColumnDef *rangecol = make_range_column_for_period(period); + rangecol = make_range_column_for_period(period); cmd = makeNode(AlterTableCmd); cmd->subtype = AT_AddColumn; cmd->def = (Node *) rangecol; diff --git a/src/include/catalog/meson.build b/src/include/catalog/meson.build index c3fd05d027..158496d19d 100644 --- a/src/include/catalog/meson.build +++ b/src/include/catalog/meson.build @@ -57,6 +57,7 @@ catalog_headers = [ 'pg_collation.h', 'pg_parameter_acl.h', 'pg_partitioned_table.h', + 'pg_period.h', 'pg_range.h', 'pg_transform.h', 'pg_sequence.h', 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 82f937fca4..2436996b1c 100644 --- a/src/test/modules/test_ddl_deparse/test_ddl_deparse.c +++ b/src/test/modules/test_ddl_deparse/test_ddl_deparse.c @@ -180,6 +180,12 @@ get_altertable_subcmdinfo(PG_FUNCTION_ARGS) case AT_DropConstraint: strtype = "DROP CONSTRAINT"; break; + case AT_AddPeriod: + strtype = "ADD PERIOD"; + break; + case AT_DropPeriod: + strtype = "DROP PERIOD"; + break; case AT_ReAddComment: strtype = "(re) ADD COMMENT"; break; -- 2.41.0