Fix incorrect timestamps in CDB_TableMetadata_Text
Instead of performing a proper join on tabname, CDB_TableMetadata_Text joins cdb_tablemetadata against pg_catalog.pg_class (i.e. All postgres tables, views, indices, etc.) and gives a record for every possible tabname and updated_at combination. This results in the latest updated timestamp being chosen for any table in CDB_Get_Foreign_Updated_At, which leads to unnecessary and incorrect cache invalidation.
This commit is contained in:
@@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS
|
||||
|
||||
CREATE OR REPLACE VIEW public.CDB_TableMetadata_Text AS
|
||||
SELECT FORMAT('%I.%I', n.nspname::text, c.relname::text) tabname, updated_at
|
||||
FROM public.CDB_TableMetadata, pg_catalog.pg_class c
|
||||
FROM public.CDB_TableMetadata m JOIN pg_catalog.pg_class c ON m.tabname::oid = c.oid
|
||||
LEFT JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid;
|
||||
|
||||
-- No one can see this
|
||||
|
||||
Reference in New Issue
Block a user