diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 73c52e970f6c..14ac0ef9507b 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -3906,3 +3906,13 @@ find_in_paths(const char *basename, List *paths) return NULL; } + +Datum +pg_creating_extension(PG_FUNCTION_ARGS) +{ + if (creating_extension) + { + PG_RETURN_OID(CurrentExtensionObject); + } + PG_RETURN_NULL(); +} diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 62beb71da288..c75cc39f5fe4 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -10727,6 +10727,11 @@ proname => 'pg_extension_config_dump', provolatile => 'v', proparallel => 'u', prorettype => 'void', proargtypes => 'regclass text', prosrc => 'pg_extension_config_dump' }, +{ oid => '3814', + descr => 'determine if an extension is currently being created', + proname => 'pg_creating_extension', provolatile => 'v', proparallel => 'u', + prorettype => 'oid', proargtypes => '', + prosrc => 'pg_creating_extension' }, # SQL-spec window functions { oid => '3100', descr => 'row number within partition',