Commit e34ee993 authored by Tom Lane's avatar Tom Lane

Improve commentary about hack in is_publishable_class().

The FirstNormalObjectId test here is a kluge that needs to go away,
but the only substitute we can think of is to add a column to pg_class,
which will take more work than can be handled right now.  Add some
commentary in the meanwhile.

Discussion: https://postgr.es/m/15150.1557257111@sss.pgh.pa.us
parent 9b42e713
...@@ -91,12 +91,17 @@ check_publication_add_relation(Relation targetrel) ...@@ -91,12 +91,17 @@ check_publication_add_relation(Relation targetrel)
* Does same checks as the above, but does not need relation to be opened * Does same checks as the above, but does not need relation to be opened
* and also does not throw errors. * and also does not throw errors.
* *
* Note this also excludes all tables with relid < FirstNormalObjectId, * XXX This also excludes all tables with relid < FirstNormalObjectId,
* ie all tables created during initdb. This mainly affects the preinstalled * ie all tables created during initdb. This mainly affects the preinstalled
* information_schema. (IsCatalogRelationOid() only excludes tables with * information_schema. IsCatalogRelationOid() only excludes tables with
* relid < FirstBootstrapObjectId, making that test rather redundant, but * relid < FirstBootstrapObjectId, making that test rather redundant,
* really we should get rid of the FirstNormalObjectId test not * but really we should get rid of the FirstNormalObjectId test not
* IsCatalogRelationOid.) * IsCatalogRelationOid. We can't do so today because we don't want
* information_schema tables to be considered publishable; but this test
* is really inadequate for that, since the information_schema could be
* dropped and reloaded and then it'll be considered publishable. The best
* long-term solution may be to add a "relispublishable" bool to pg_class,
* and depend on that instead of OID checks.
*/ */
static bool static bool
is_publishable_class(Oid relid, Form_pg_class reltuple) is_publishable_class(Oid relid, Form_pg_class reltuple)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment