Thread: SQL function to access to `creating_extension`
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
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.
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.
Attachment
On 19 Apr 2025, at 4:18 AM, Yurii Rashkovskii <yrashk@omnigres.com> wrote:Hi,<v1-0001-pg_creating_extension-to-inspect-if-an-extension-is-.patch>
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.
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.