[PATCH 1/3] FIXUP 0001-catalog-support-for-session-variables

Julien Rouhaud <julien.rouhaud@free.fr>

From: Julien Rouhaud <julien.rouhaud@free.fr>
To:
Date: 2022-09-03T08:11:03Z
Lists: pgsql-hackers
---
 src/backend/commands/tablecmds.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index d7418e088e..65e1c1e670 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -6518,6 +6518,22 @@ find_composite_type_dependencies(Oid typeOid, Relation origRelation,
 								RelationGetRelationName(origRelation),
 								get_namespace_name(get_session_variable_namespace(varid)),
 								get_session_variable_name(varid))));
+			else if (origRelation->rd_rel->relkind == RELKIND_FOREIGN_TABLE)
+				ereport(ERROR,
+						(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+						 errmsg("cannot alter foreign table \"%s\" because session variable \"%s.%s\" uses it",
+								RelationGetRelationName(origRelation),
+								get_namespace_name(get_session_variable_namespace(varid)),
+								get_session_variable_name(varid))));
+			else if (origRelation->rd_rel->relkind == RELKIND_RELATION ||
+					origRelation->rd_rel->relkind == RELKIND_MATVIEW ||
+					origRelation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
+				ereport(ERROR,
+						(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+						 errmsg("cannot alter table \"%s\" because session variable \"%s.%s\" uses it",
+								RelationGetRelationName(origRelation),
+								get_namespace_name(get_session_variable_namespace(varid)),
+								get_session_variable_name(varid))));
 		}
 
 		/* Else, ignore dependees that aren't user columns of relations */
-- 
2.37.0


--vuzhuyepzhyurc52
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment;
	filename="0002-FIXUP-0002-session-variables.txt"