Thread: SQL function to access to `creating_extension`

SQL function to access to `creating_extension`

From
Yurii Rashkovskii
Date:
Hi,

I propose to introduce `pg_creating_extension()` function that would return the OID of the extension being currently created (or `null` if none is).

The core motivation for it is to be able to establish data provenance in tables created by extensions to be used in `pg_extension_config_dump` configuration. This way, even if a secondary extension inserts data, it can still be excluded from the dump by tracking data provenance in a column with a default. Something like

```
create table my_config (
   --- ...
   extension_provenance oid default pg_creating_extension()
)
```

This would allow for a generalized exclusion in pg_extension_config_dump.

I've attached a draft patch for this simple function. I am happy to finalize it with tests and documentation if there is a consensus on the shape.

--
Founder at Omnigres
https://omnigres.com
Attachment

Re: SQL function to access to `creating_extension`

From
Florents Tselai
Date:


On 19 Apr 2025, at 4:18 AM, Yurii Rashkovskii <yrashk@omnigres.com> wrote:

Hi,

I propose to introduce `pg_creating_extension()` function that would return the OID of the extension being currently created (or `null` if none is).

The core motivation for it is to be able to establish data provenance in tables created by extensions to be used in `pg_extension_config_dump` configuration. This way, even if a secondary extension inserts data, it can still be excluded from the dump by tracking data provenance in a column with a default. Something like

```
create table my_config (
   --- ...
   extension_provenance oid default pg_creating_extension()
)
```

This would allow for a generalized exclusion in pg_extension_config_dump.

I've attached a draft patch for this simple function. I am happy to finalize it with tests and documentation if there is a consensus on the shape.

--
Founder at Omnigres
https://omnigres.com
<v1-0001-pg_creating_extension-to-inspect-if-an-extension-is-.patch>


Hi Yurii,  

+1 from me.  

I can see this being helpful, especially when dealing with shared tables or managing extension-specific data in configuration dumps.