Fix automated test
This commit is contained in:
@@ -20,4 +20,5 @@ include $(PGXS)
|
|||||||
|
|
||||||
$(EXTENSION)--$(EXTVERSION).sql: $(CDBSCRIPTS) cartodb_hooks.sql Makefile
|
$(EXTENSION)--$(EXTVERSION).sql: $(CDBSCRIPTS) cartodb_hooks.sql Makefile
|
||||||
cat $(CDBSCRIPTS) | sed 's/\<public\./cartodb./g' > $@
|
cat $(CDBSCRIPTS) | sed 's/\<public\./cartodb./g' > $@
|
||||||
|
echo "GRANT USAGE ON SCHEMA cartodb TO public;" >> $@
|
||||||
cat cartodb_hooks.sql >> $@
|
cat cartodb_hooks.sql >> $@
|
||||||
|
|||||||
+9
-9
@@ -49,12 +49,6 @@ BEGIN
|
|||||||
RAISE DEBUG 'Relation % of kind % dropped from namespace oid %',
|
RAISE DEBUG 'Relation % of kind % dropped from namespace oid %',
|
||||||
event_info.old_relation_oid, (event_info.old).relkind, (event_info.old).relnamespace;
|
event_info.old_relation_oid, (event_info.old).relkind, (event_info.old).relnamespace;
|
||||||
|
|
||||||
-- We don't want to react to alters triggered by superuser,
|
|
||||||
IF current_setting('is_superuser') = 'on' THEN
|
|
||||||
RAISE DEBUG 'no ddl trigger for superuser';
|
|
||||||
RETURN;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- delete record from CDB_TableMetadata (should invalidate varnish)
|
-- delete record from CDB_TableMetadata (should invalidate varnish)
|
||||||
DELETE FROM cartodb.CDB_TableMetadata WHERE tabname = event_info.old_relation_oid;
|
DELETE FROM cartodb.CDB_TableMetadata WHERE tabname = event_info.old_relation_oid;
|
||||||
|
|
||||||
@@ -91,7 +85,9 @@ BEGIN
|
|||||||
|
|
||||||
PERFORM cartodb.cdb_enable_ddl_hooks();
|
PERFORM cartodb.cdb_enable_ddl_hooks();
|
||||||
|
|
||||||
-- TODO: update CDB_TableMetadata.updated_at (should invalidate varnish)
|
-- update CDB_TableMetadata.updated_at (should invalidate varnish)
|
||||||
|
UPDATE cartodb.CDB_TableMetadata SET updated_at = NOW()
|
||||||
|
WHERE tabname = event_info.relation;
|
||||||
|
|
||||||
END; $$;
|
END; $$;
|
||||||
-- }
|
-- }
|
||||||
@@ -126,7 +122,9 @@ BEGIN
|
|||||||
|
|
||||||
PERFORM cartodb.cdb_enable_ddl_hooks();
|
PERFORM cartodb.cdb_enable_ddl_hooks();
|
||||||
|
|
||||||
-- TODO: update CDB_TableMetadata.updated_at (should invalidate varnish)
|
-- update CDB_TableMetadata.updated_at (should invalidate varnish)
|
||||||
|
UPDATE cartodb.CDB_TableMetadata SET updated_at = NOW()
|
||||||
|
WHERE tabname = event_info.relation;
|
||||||
|
|
||||||
END; $$;
|
END; $$;
|
||||||
-- }
|
-- }
|
||||||
@@ -155,7 +153,9 @@ BEGIN
|
|||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- TODO: update CDB_TableMetadata.updated_at (should invalidate varnish)
|
-- update CDB_TableMetadata.updated_at (should invalidate varnish)
|
||||||
|
UPDATE cartodb.CDB_TableMetadata SET updated_at = NOW()
|
||||||
|
WHERE tabname = event_info.relation;
|
||||||
|
|
||||||
END; $$;
|
END; $$;
|
||||||
-- }
|
-- }
|
||||||
|
|||||||
+89
-21
@@ -13,7 +13,7 @@ BEGIN
|
|||||||
PERFORM cdb_invalidate_varnish(0);
|
PERFORM cdb_invalidate_varnish(0);
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN undefined_function THEN
|
WHEN undefined_function THEN
|
||||||
CREATE OR REPLACE FUNCTION cartodb.cdb_invalidate_varnish(tabname regclass)
|
CREATE OR REPLACE FUNCTION cartodb.cdb_invalidate_varnish(tabname text)
|
||||||
RETURNS void AS '' LANGUAGE 'sql';
|
RETURNS void AS '' LANGUAGE 'sql';
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql';
|
$$ LANGUAGE 'plpgsql';
|
||||||
@@ -23,39 +23,107 @@ $$ LANGUAGE 'plpgsql';
|
|||||||
|
|
||||||
create schema c;
|
create schema c;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS
|
|
||||||
public.CDB_TableMetadata (
|
|
||||||
tabname regclass not null primary key,
|
|
||||||
updated_at timestamp with time zone not null default now()
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE USER cartodb_postgresql_unpriv_user;
|
CREATE USER cartodb_postgresql_unpriv_user;
|
||||||
GRANT ALL ON SCHEMA c to cartodb_postgresql_unpriv_user;
|
GRANT ALL ON SCHEMA c to cartodb_postgresql_unpriv_user;
|
||||||
GRANT SELECT ON public.CDB_TableMetadata to cartodb_postgresql_unpriv_user;
|
|
||||||
SET SESSION AUTHORIZATION 'cartodb_postgresql_unpriv_user';
|
SET SESSION AUTHORIZATION 'cartodb_postgresql_unpriv_user';
|
||||||
--SELECT session_user, current_user;
|
--SELECT session_user, current_user;
|
||||||
|
|
||||||
|
----------------------
|
||||||
|
-- CREATE TABLE
|
||||||
|
----------------------
|
||||||
|
|
||||||
--create table c.t3(a int);
|
|
||||||
select 1 as i INTO c.t3;
|
select 1 as i INTO c.t3;
|
||||||
select * from c.t3;
|
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select
|
||||||
|
cartodb_id, created_at=updated_at as "c=u",
|
||||||
|
NOW() - updated_at < '1 secs' as "u<1s",
|
||||||
|
the_geom, the_geom_webmercator,
|
||||||
|
i
|
||||||
|
from c.t3;
|
||||||
|
|
||||||
|
select
|
||||||
|
tabname::text,
|
||||||
|
round(extract('secs' from now() - updated_at)) as age
|
||||||
|
FROM CDB_TableMetadata;
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
-- ALTER TABLE RENAME COLUMN
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
select pg_sleep(1);
|
||||||
alter table c.t3 rename column the_geom_webmercator to webmerc;
|
alter table c.t3 rename column the_geom_webmercator to webmerc;
|
||||||
select * from c.t3;
|
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select
|
||||||
|
cartodb_id, created_at=updated_at as "c=u",
|
||||||
|
NOW() - updated_at < '1 secs' as "u<1s",
|
||||||
|
the_geom, the_geom_webmercator,
|
||||||
|
i, webmerc
|
||||||
|
from c.t3;
|
||||||
|
|
||||||
|
select
|
||||||
|
tabname::text,
|
||||||
|
round(extract('secs' from now() - updated_at)) as age
|
||||||
|
FROM CDB_TableMetadata;
|
||||||
|
|
||||||
|
select pg_sleep(1);
|
||||||
alter table c.t3 rename column the_geom_webmercator to webmerc2;
|
alter table c.t3 rename column the_geom_webmercator to webmerc2;
|
||||||
select * from c.t3;
|
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select
|
||||||
|
cartodb_id, created_at=updated_at as "c=u",
|
||||||
|
NOW() - updated_at < '1 secs' as "u<1s",
|
||||||
|
the_geom, the_geom_webmercator,
|
||||||
|
i, webmerc, webmerc2
|
||||||
|
from c.t3;
|
||||||
|
|
||||||
|
select
|
||||||
|
tabname::text,
|
||||||
|
round(extract('secs' from now() - updated_at)) as age
|
||||||
|
FROM CDB_TableMetadata;
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
-- ALTER TABLE DROP COLUMN
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
select pg_sleep(1);
|
||||||
alter table c.t3 drop column the_geom_webmercator;
|
alter table c.t3 drop column the_geom_webmercator;
|
||||||
select * from c.t3;
|
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select
|
||||||
|
cartodb_id, created_at=updated_at as "c=u",
|
||||||
|
NOW() - updated_at < '1 secs' as "u<1s",
|
||||||
|
the_geom, the_geom_webmercator,
|
||||||
|
i, webmerc, webmerc2
|
||||||
|
from c.t3;
|
||||||
|
|
||||||
|
select
|
||||||
|
tabname::text,
|
||||||
|
round(extract('secs' from now() - updated_at)) as age
|
||||||
|
FROM CDB_TableMetadata;
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
-- ALTER TABLE ADD COLUMN
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
select pg_sleep(1);
|
||||||
alter table c.t3 add column id2 int;
|
alter table c.t3 add column id2 int;
|
||||||
select * from c.t3;
|
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select
|
||||||
|
cartodb_id, created_at=updated_at as "c=u",
|
||||||
|
NOW() - updated_at < '1 secs' as "u<1s",
|
||||||
|
the_geom, the_geom_webmercator,
|
||||||
|
i, webmerc, webmerc2, id2
|
||||||
|
from c.t3;
|
||||||
|
|
||||||
|
select
|
||||||
|
tabname::text,
|
||||||
|
round(extract('secs' from now() - updated_at)) as age
|
||||||
|
FROM CDB_TableMetadata;
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
-- DROP TABLE
|
||||||
|
----------------------------
|
||||||
|
|
||||||
RESET SESSION AUTHORIZATION;
|
RESET SESSION AUTHORIZATION;
|
||||||
drop schema c cascade;
|
drop schema c cascade;
|
||||||
select tabname::text, updated_at from CDB_TableMetadata;
|
select count(*) from CDB_TableMetadata;
|
||||||
|
|
||||||
DROP TABLE public.CDB_TableMetadata;
|
|
||||||
DROP USER cartodb_postgresql_unpriv_user;
|
DROP USER cartodb_postgresql_unpriv_user;
|
||||||
|
|||||||
Reference in New Issue
Block a user