Re: Database-level collation version tracking

Поиск
Список
Период
Сортировка
От Julien Rouhaud
Тема Re: Database-level collation version tracking
Дата
Msg-id 20220211125110.d7yqs6y3keiv26xl@jrouhaud
обсуждение исходный текст
Ответ на Re: Database-level collation version tracking  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Ответы Re: Database-level collation version tracking  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Список pgsql-hackers
On Fri, Feb 11, 2022 at 12:07:02PM +0100, Peter Eisentraut wrote:
> On 10.02.22 12:08, Julien Rouhaud wrote:
> > > +                     errhint("Rebuild all objects affected by collation in the template database and run "
> > > +                             "ALTER DATABASE %s REFRESH COLLATION VERSION, "
> > > +                             "or build PostgreSQL with the right library version.",
> > > +                             quote_identifier(dbtemplate))));
> > 
> > After a second read I think the messages are slightly ambiguous.  What do you
> > think about specifying the problematic collation name and provider?
> > 
> > For now we only support libc default collation so users will probably have to
> > reindex almost everything on that database (not sure if the versioning is more
> > fine grained on Windows), but we should probably still specify "affected by
> > libc collation" in the errhint so they have a chance to avoid unnecessary
> > reindex.
> 
> I think accurate would be something like "objects using the default
> collation", since objects using a specific collation are not meant, even if
> they use the same provider.

Technically is the objects explicitly use the same collation as the default
collation they should be impacted the same way, but agreed.

> > > +/*
> > > + * ALTER DATABASE name REFRESH COLLATION VERSION
> > > + */
> > > +ObjectAddress
> > > +AlterDatabaseRefreshColl(AlterDatabaseRefreshCollStmt *stmt)
> > 
> > I'm wondering why you changed this function to return an ObjectAddress rather
> > than an Oid?  There's no event trigger support for ALTER DATABASE, and the rest
> > of similar utility commands also returns Oid.
> 
> Hmm, I was looking at RenameDatabase() and AlterDatabaseOwner(), which
> return ObjectAddress.

Apparently I managed to only check AlterDatabase and AlterDatabaseSet, which
both return an Oid.  Maybe we could also update those two to also return an
ObjectAddress, for consistency?



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Matthias van de Meent
Дата:
Сообщение: Re: [PoC] Improve dead tuple storage for lazy vacuum
Следующее
От: Bharath Rupireddy
Дата:
Сообщение: Re: Assertion failure in WaitForWALToBecomeAvailable state machine