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
|
CREATE OR REPLACE VIEW public.CDB_TableMetadata_Text AS
|
||||||
SELECT FORMAT('%I.%I', n.nspname::text, c.relname::text) tabname, updated_at
|
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;
|
LEFT JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid;
|
||||||
|
|
||||||
-- No one can see this
|
-- No one can see this
|
||||||
|
|||||||
Reference in New Issue
Block a user