Обсуждение: pg_dump: Refactor code that constructs ALTER ... OWNER TO commands

Поиск
Список
Период
Сортировка

pg_dump: Refactor code that constructs ALTER ... OWNER TO commands

От
Peter Eisentraut
Дата:
Avoid having to list all the possible object types twice.  Instead, only 
_getObjectDescription() needs to know about specific object types.  It 
communicates back to _printTocEntry() whether an owner is to be set.

In passing, remove the logic to use ALTER TABLE to set the owner of 
views and sequences.  This is no longer necessary.  Furthermore, if 
pg_dump doesn't recognize the object type, this is now a fatal error, 
not a warning.
Вложения

Re: pg_dump: Refactor code that constructs ALTER ... OWNER TO commands

От
Corey Huinker
Дата:
On Mon, Oct 24, 2022 at 5:54 AM Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
Avoid having to list all the possible object types twice.  Instead, only
_getObjectDescription() needs to know about specific object types.  It
communicates back to _printTocEntry() whether an owner is to be set.

In passing, remove the logic to use ALTER TABLE to set the owner of
views and sequences.  This is no longer necessary.  Furthermore, if
pg_dump doesn't recognize the object type, this is now a fatal error,
not a warning.

Makes sense, passes all tests.

It's clearly out of scope for this very focused patch, but would it make sense for the TocEntry struct to be populated with an type enumeration integer as well as the type string to make for clearer and faster sifting later?


 

Re: pg_dump: Refactor code that constructs ALTER ... OWNER TO commands

От
Peter Eisentraut
Дата:
On 01.11.22 13:59, Corey Huinker wrote:
> On Mon, Oct 24, 2022 at 5:54 AM Peter Eisentraut 
> <peter.eisentraut@enterprisedb.com 
> <mailto:peter.eisentraut@enterprisedb.com>> wrote:
> 
>     Avoid having to list all the possible object types twice.  Instead,
>     only
>     _getObjectDescription() needs to know about specific object types.  It
>     communicates back to _printTocEntry() whether an owner is to be set.
> 
>     In passing, remove the logic to use ALTER TABLE to set the owner of
>     views and sequences.  This is no longer necessary.  Furthermore, if
>     pg_dump doesn't recognize the object type, this is now a fatal error,
>     not a warning.
> 
> 
> Makes sense, passes all tests.

Committed.

> It's clearly out of scope for this very focused patch, but would it make 
> sense for the TocEntry struct to be populated with an type enumeration 
> integer as well as the type string to make for clearer and faster 
> sifting later?

That could be better, but wouldn't that mean a change of the format of 
pg_dump archives?



Re: pg_dump: Refactor code that constructs ALTER ... OWNER TO commands

От
Corey Huinker
Дата:
On Wed, Nov 2, 2022 at 5:30 PM Peter Eisentraut <peter.eisentraut@enterprisedb.com> wrote:
On 01.11.22 13:59, Corey Huinker wrote:
> On Mon, Oct 24, 2022 at 5:54 AM Peter Eisentraut
> <peter.eisentraut@enterprisedb.com
> <mailto:peter.eisentraut@enterprisedb.com>> wrote:
>
>     Avoid having to list all the possible object types twice.  Instead,
>     only
>     _getObjectDescription() needs to know about specific object types.  It
>     communicates back to _printTocEntry() whether an owner is to be set.
>
>     In passing, remove the logic to use ALTER TABLE to set the owner of
>     views and sequences.  This is no longer necessary.  Furthermore, if
>     pg_dump doesn't recognize the object type, this is now a fatal error,
>     not a warning.
>
>
> Makes sense, passes all tests.

Committed.

> It's clearly out of scope for this very focused patch, but would it make
> sense for the TocEntry struct to be populated with an type enumeration
> integer as well as the type string to make for clearer and faster
> sifting later?

That could be better, but wouldn't that mean a change of the format of
pg_dump archives?

Sorry for the confusion, I was thinking strictly of the in memory representation after it is extracted from the dictionary.