On 01.01.26 14:43, Jeevan Chalke wrote:
Thanks for the feedback, Matthias; I agree with your assessment.
Currently, Postgres lacks a native mechanism for tracking dependencies
between a table and the specific rows of another table. While certain
extensions like PostGIS introduce these patterns, they remain non-
standard edge cases.
Implementing a fix in the core backend seems like overkill for this
scenario. Since the failure is specific to the upgrade path, targeting |
pg_dump| and |pg_upgrade| is a significantly less invasive approach.
Notably, this patch triggers an immediate dump of the referenced table
data -- an unconventional behavior that is better handled in the client
binaries than in the backend. Consequently, this approach would require
new options for these binaries to explicitly inject those dependency
details.
How about this: postgis should define its table spatial_ref_sys as
user_catalog_table, and we change pg_dump to dump the contents of user
catalog tables before other DDL.
There is still some work to do here, but at least this sounds like a
more principled approach.