v12-0008-fixup-Add-PERIODs.patch.nocfbot
text/plain
Filename: v12-0008-fixup-Add-PERIODs.patch.nocfbot
Type: text/plain
Part: 2
Message:
Re: SQL:2011 application time
From a831c9d79bb979a1360e90db00adddb156dd582a Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
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 @@ <title>Description</title>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry id="sql-altertable-desc-drop-period">
<term><literal>DROP PERIOD FOR</literal></term>
<listitem>
<para>
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