CREATE EXTENSION postgis; CREATE EXTENSION schema_triggers; CREATE EXTENSION cartodb; set search_path to public,cartodb,schema_triggers; --set client_min_messages to debug; -- Create a stub cdb_invalidate_varnish function if not available --CREATE FUNCTION tmp() returns void AS $$ DO $$ BEGIN PERFORM cdb_invalidate_varnish(0); EXCEPTION WHEN undefined_function THEN CREATE OR REPLACE FUNCTION cartodb.cdb_invalidate_varnish(tabname text) RETURNS void AS '' LANGUAGE 'sql'; END; $$ LANGUAGE 'plpgsql'; --SELECT tmp(); create schema c; CREATE USER cartodb_postgresql_unpriv_user; GRANT ALL ON SCHEMA c to cartodb_postgresql_unpriv_user; SET SESSION AUTHORIZATION 'cartodb_postgresql_unpriv_user'; --SELECT session_user, current_user; ---------------------- -- CREATE TABLE ---------------------- select 1 as i INTO c.t3; 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; 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; 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; 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; 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; drop schema c cascade; select count(*) from CDB_TableMetadata; DROP USER cartodb_postgresql_unpriv_user;