> On 20 May 2020, at 10:06, Guillaume Lelarge <guillaume@lelarge.info> wrote:
> I was wondering the reason behind this choice. If anyone knows, I'd be happy to hear about it.
Extensions were dumped unconditionally in the beginning, but it was changed to
match how procedural language definitions were dumped.
> * it's been overlooked, and we should dump all the extensions available in a schema if this schema has been selected
throughthe --schema flag.
For reference, --schema-only will include all the extensions, but not
--schema=foo and not "--schema-only --schema=foo".
Extensions don't belong to a schema per se, the namespace oid in pg_extension
marks where most of the objects are contained but not necessarily all of them.
Given that, it makes sense to not include extensions for --schema. However,
that can be considered sort of an implementation detail which may not be
entirely obvious to users (especially since you yourself is a power-user).
> * it's kind of like the large objects handling, and I'd pretty interested in adding a --extensions (as the same way
thereis a --blobs flag).
An object in a schema might have attributes that depend on an extension in
order to restore, so it makes sense to provide a way to include them for a
--schema dump. The question is what --extensions should do: only dump any
extensions that objects in the schema depend on; require a pattern and only
dump matching extensions; dump all extensions (probably not) or something else?
cheers ./daniel