On 08.02.22 13:55, Julien Rouhaud wrote:
> Apart from that I still think that we should check the collation version of the
> source database when creating a new database. It won't cost much but will give
> the DBA a chance to recreate the indexes before risking invalid index usage.
A question on this: In essence, this would be putting code into
createdb() similar to the code in postinit.c:CheckMyDatabase(). But
what should we make it do and say exactly?
After thinking about this for a bit, I suggest: If the actual collation
version of the newly created database does not match the recorded
collation version of the template database, we should error out and make
the user fix the template database (by reindexing there etc.).
The alternative is to warn, as it does now in postinit.c. But then the
phrasing of the message becomes complicated: Should we make the user fix
the new database or the template database or both? And if they don't
fix the template database, they will have the same problem again. So
making it a hard failure seems better to me.