176 lines
4.4 KiB
Plaintext
176 lines
4.4 KiB
Plaintext
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;
|
|
cartodb_id | c=u | u<1s | the_geom | the_geom_webmercator | i
|
|
------------+-----+------+----------+----------------------+---
|
|
1 | t | t | | | 1
|
|
(1 row)
|
|
|
|
select
|
|
tabname::text,
|
|
round(extract('secs' from now() - updated_at)) as age
|
|
FROM CDB_TableMetadata;
|
|
tabname | age
|
|
---------+-----
|
|
c.t3 | 0
|
|
(1 row)
|
|
|
|
----------------------------
|
|
-- ALTER TABLE RENAME COLUMN
|
|
----------------------------
|
|
select pg_sleep(1);
|
|
pg_sleep
|
|
----------
|
|
|
|
(1 row)
|
|
|
|
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;
|
|
cartodb_id | c=u | u<1s | the_geom | the_geom_webmercator | i | webmerc
|
|
------------+-----+------+----------+----------------------+---+---------
|
|
1 | t | f | | | 1 |
|
|
(1 row)
|
|
|
|
select
|
|
tabname::text,
|
|
round(extract('secs' from now() - updated_at)) as age
|
|
FROM CDB_TableMetadata;
|
|
tabname | age
|
|
---------+-----
|
|
c.t3 | 0
|
|
(1 row)
|
|
|
|
select pg_sleep(1);
|
|
pg_sleep
|
|
----------
|
|
|
|
(1 row)
|
|
|
|
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;
|
|
cartodb_id | c=u | u<1s | the_geom | the_geom_webmercator | i | webmerc | webmerc2
|
|
------------+-----+------+----------+----------------------+---+---------+----------
|
|
1 | t | f | | | 1 | |
|
|
(1 row)
|
|
|
|
select
|
|
tabname::text,
|
|
round(extract('secs' from now() - updated_at)) as age
|
|
FROM CDB_TableMetadata;
|
|
tabname | age
|
|
---------+-----
|
|
c.t3 | 0
|
|
(1 row)
|
|
|
|
----------------------------
|
|
-- ALTER TABLE DROP COLUMN
|
|
----------------------------
|
|
select pg_sleep(1);
|
|
pg_sleep
|
|
----------
|
|
|
|
(1 row)
|
|
|
|
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;
|
|
cartodb_id | c=u | u<1s | the_geom | the_geom_webmercator | i | webmerc | webmerc2
|
|
------------+-----+------+----------+----------------------+---+---------+----------
|
|
1 | t | f | | | 1 | |
|
|
(1 row)
|
|
|
|
select
|
|
tabname::text,
|
|
round(extract('secs' from now() - updated_at)) as age
|
|
FROM CDB_TableMetadata;
|
|
tabname | age
|
|
---------+-----
|
|
c.t3 | 0
|
|
(1 row)
|
|
|
|
----------------------------
|
|
-- ALTER TABLE ADD COLUMN
|
|
----------------------------
|
|
select pg_sleep(1);
|
|
pg_sleep
|
|
----------
|
|
|
|
(1 row)
|
|
|
|
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;
|
|
cartodb_id | c=u | u<1s | the_geom | the_geom_webmercator | i | webmerc | webmerc2 | id2
|
|
------------+-----+------+----------+----------------------+---+---------+----------+-----
|
|
1 | t | f | | | 1 | | |
|
|
(1 row)
|
|
|
|
select
|
|
tabname::text,
|
|
round(extract('secs' from now() - updated_at)) as age
|
|
FROM CDB_TableMetadata;
|
|
tabname | age
|
|
---------+-----
|
|
c.t3 | 0
|
|
(1 row)
|
|
|
|
----------------------------
|
|
-- DROP TABLE
|
|
----------------------------
|
|
RESET SESSION AUTHORIZATION;
|
|
drop schema c cascade;
|
|
select count(*) from CDB_TableMetadata;
|
|
count
|
|
-------
|
|
0
|
|
(1 row)
|
|
|
|
DROP USER cartodb_postgresql_unpriv_user;
|