Recover _CDB_check_prerequisites (sorry, my fault)
This commit is contained in:
@@ -6,6 +6,26 @@
|
|||||||
-- * _CDB_UserQuotaInBytes() function, installed by rails
|
-- * _CDB_UserQuotaInBytes() function, installed by rails
|
||||||
-- (user.rebuild_quota_trigger, called by rake task cartodb:db:update_test_quota_trigger)
|
-- (user.rebuild_quota_trigger, called by rake task cartodb:db:update_test_quota_trigger)
|
||||||
|
|
||||||
|
-- 1) Required checks before running cartodbfication
|
||||||
|
-- Either will pass silenty or raise an exception
|
||||||
|
CREATE OR REPLACE FUNCTION _CDB_check_prerequisites(schema_name TEXT, reloid REGCLASS)
|
||||||
|
RETURNS void
|
||||||
|
AS $$
|
||||||
|
DECLARE
|
||||||
|
sql TEXT;
|
||||||
|
BEGIN
|
||||||
|
IF cartodb.schema_exists(schema_name) = false THEN
|
||||||
|
RAISE EXCEPTION 'Invalid schema name "%"', schema_name;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- TODO: Check that user quota is set ?
|
||||||
|
BEGIN
|
||||||
|
EXECUTE FORMAT('SELECT %I._CDB_UserQuotaInBytes();', schema_name::text) INTO sql;
|
||||||
|
EXCEPTION WHEN undefined_function THEN
|
||||||
|
RAISE EXCEPTION 'Please set user quota before cartodbfying tables.';
|
||||||
|
END;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE PLPGSQL;
|
||||||
|
|
||||||
-- Drop cartodb triggers (might prevent changing columns)
|
-- Drop cartodb triggers (might prevent changing columns)
|
||||||
CREATE OR REPLACE FUNCTION _CDB_drop_triggers(reloid REGCLASS)
|
CREATE OR REPLACE FUNCTION _CDB_drop_triggers(reloid REGCLASS)
|
||||||
@@ -1119,6 +1139,8 @@ BEGIN
|
|||||||
FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid
|
FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid
|
||||||
WHERE c.oid = reloid;
|
WHERE c.oid = reloid;
|
||||||
|
|
||||||
|
PERFORM cartodb._CDB_check_prerequisites(destschema, reloid);
|
||||||
|
|
||||||
-- Check destination schema exists
|
-- Check destination schema exists
|
||||||
-- Throws an exception of there is no matching schema
|
-- Throws an exception of there is no matching schema
|
||||||
IF destschema IS NOT NULL THEN
|
IF destschema IS NOT NULL THEN
|
||||||
|
|||||||
@@ -125,8 +125,9 @@ $$
|
|||||||
LANGUAGE 'plpgsql';
|
LANGUAGE 'plpgsql';
|
||||||
|
|
||||||
-- table with single non-geometrical column
|
-- table with single non-geometrical column
|
||||||
SELECT CDB_SetUserQuotaInBytes(0); -- Set user quota to infinite
|
|
||||||
CREATE TABLE t AS SELECT 1::int as a;
|
CREATE TABLE t AS SELECT 1::int as a;
|
||||||
|
SELECT CDB_CartodbfyTable('public', 't'); -- should fail
|
||||||
|
SELECT CDB_SetUserQuotaInBytes(0); -- Set user quota to infinite
|
||||||
SELECT CDB_CartodbfyTableCheck('t', 'single non-geometrical column');
|
SELECT CDB_CartodbfyTableCheck('t', 'single non-geometrical column');
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ SET
|
|||||||
CREATE FUNCTION
|
CREATE FUNCTION
|
||||||
SELECT 1
|
SELECT 1
|
||||||
ERROR: Please set user quota before cartodbfying tables.
|
ERROR: Please set user quota before cartodbfying tables.
|
||||||
CONTEXT: SQL statement "SELECT cartodb._CDB_check_prerequisites(schema_name, reloid)"
|
CONTEXT: SQL statement "SELECT cartodb._CDB_check_prerequisites(destschema, reloid)"
|
||||||
PL/pgSQL function cdb_cartodbfytable(text,regclass) line 7 at PERFORM
|
PL/pgSQL function cdb_cartodbfytable(text,regclass) line 21 at PERFORM
|
||||||
0
|
0
|
||||||
single non-geometrical column cartodbfied fine
|
single non-geometrical column cartodbfied fine
|
||||||
DROP TABLE
|
DROP TABLE
|
||||||
|
|||||||
Reference in New Issue
Block a user