Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> On 2019-05-09 04:37, Tom Lane wrote:
>> But, if what we want is the definition that "information_schema is
>> excluded from publishable tables", I'm not satisfied with this
>> implementation of that rule.
> ... It would also make sense to integrate both of these concepts more
> consistently with the user_catalog_table feature. Perhaps the
> information_schema tables could be made user catalogs. Really we should
> just have a single flag in pg_class that says "I'm a catalog",
> applicable both to built-in catalogs and to user-defined catalogs.
I do not want to go there because (a) it means that you can't tell a
catalog from a non-catalog without a catalog lookup, which has got
obvious circularity problems, and (b) the idea that a user can add
a catalog without hacking the C code is silly on its face. I would
say that the actual important functional distinction between a catalog
and a user table is whether the C code knows about it.
Perhaps, for replication purposes, there's some value in having a
third category of tables that are treated more nearly like catalogs
than user tables in whether-to-replicate decisions. But let's not
fuzz the issue by calling them catalogs. I think just calling it
a "NO REPLICATE" property would be less confusing.
> I think we can get rid of the ability to reload the information_schema
> after initdb. That was interesting in the early phase of its
> development, but now it just creates complications.
We've relied on that more than once to allow minor-release updates of
information_schema views, so I think losing the ability to do it is
a bad idea.
regards, tom lane