git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 48c5c90)
In event triggers, use "pg_temp" only for our own temp schema.
2021年7月27日 16:08:20 +0000 (12:08 -0400)
2021年7月27日 16:08:20 +0000 (12:08 -0400)
pg_event_trigger_ddl_commands used "pg_temp" to refer to any
temp schema, not only that of the current backend. This seems
like overreach. It's somewhat unlikely that DDL commands would
refer to temp objects of other sessions to begin with, but if they
do, "pg_temp" would be a most misleading way to display the action.

While this seems like a bug, it's not quite out of the realm of
possibility that somebody out there is expecting the current
behavior. Hence, fix in HEAD, but don't back-patch.

Discussion: https://postgr.es/m/CAAJ_b97W=QaGmag9AhWNbmx3uEYsNkXWL+OVW1_E1D3BtgWvtw@mail.gmail.com


diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c
index 9c31c9e76372e6d0b542d35df28229c6bdd6012a..71612d577e911b4a84a0e270751e43164a61d649 100644 (file)
--- a/src/backend/commands/event_trigger.c
+++ b/src/backend/commands/event_trigger.c
@@ -1982,11 +1982,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
elog(ERROR,
"invalid null namespace in object %u/%u/%d",
addr.classId, addr.objectId, addr.objectSubId);
- /* XXX not quite get_namespace_name_or_temp */
- if (isAnyTempNamespace(schema_oid))
- schema = pstrdup("pg_temp");
- else
- schema = get_namespace_name(schema_oid);
+ schema = get_namespace_name_or_temp(schema_oid);
table_close(catalog, AccessShareLock);
}
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /