From eb84dd04c9d842f6293a6c4381e20152b808f121 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Tue, 9 Feb 2016 13:30:00 +0100 Subject: [PATCH] Add func CDB_Last_Updated_Time --- scripts-available/CDB_QueryTables.sql | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts-available/CDB_QueryTables.sql b/scripts-available/CDB_QueryTables.sql index 0abeb59..80ef620 100644 --- a/scripts-available/CDB_QueryTables.sql +++ b/scripts-available/CDB_QueryTables.sql @@ -122,3 +122,22 @@ RETURNS TEXT AS $$ )) WHERE option_name='dbname'; $$ LANGUAGE SQL; + + +-- TODO: move to the right place +-- Return the last updated time of a set of tables +CREATE OR REPLACE FUNCTION CDB_Last_Updated_Time(tables text[]) +RETURNS timestamptz AS $$ + WITH t AS ( + SELECT unnest(tables) AS schema_table_name + ), t_oid AS ( + SELECT (t.schema_table_name)::regclass::oid as reloid FROM t + ), t_updated_at AS ( + SELECT + (CASE WHEN relkind = 'f' THEN CDB_Get_Foreign_Updated_At(reloid) + ELSE (SELECT md.updated_at FROM CDB_TableMetadata md WHERE md.tabname = reloid) + END) AS updated_at + FROM t_oid + LEFT JOIN pg_catalog.pg_class c ON c.oid = reloid + ) SELECT max(updated_at) FROM t_updated_at; +$$ LANGUAGE SQL;