Removes ability to examine all relations for _CDB_Unique_Column_Identifier 173

This commit is contained in:
Guido Fioravantti
2015-10-26 16:17:25 +01:00
parent bb18d71995
commit 710a3c9672
+10 -20
View File
@@ -58,8 +58,8 @@ END;
$$ LANGUAGE 'plpgsql'; $$ LANGUAGE 'plpgsql';
-- UTF8 safe and lenght aware. Find a unique identifier for a column with a given prefix -- UTF8 safe and lenght aware. Find a unique identifier for a column with a given prefix
-- and/or suffix and withing a realtion. If no reloid is give, all relations are examined. -- and/or suffix and withing a realtion.
CREATE OR REPLACE FUNCTION cartodb._CDB_Unique_Column_Identifier(prefix TEXT, relname TEXT, suffix TEXT, reloid REGCLASS DEFAULT NULL) CREATE OR REPLACE FUNCTION cartodb._CDB_Unique_Column_Identifier(prefix TEXT, relname TEXT, suffix TEXT, reloid REGCLASS)
RETURNS TEXT RETURNS TEXT
AS $$ AS $$
DECLARE DECLARE
@@ -88,24 +88,14 @@ BEGIN
origident := ident; origident := ident;
WHILE i < 100 LOOP WHILE i < 100 LOOP
IF reloid IS NOT NULL THEN SELECT a.attname
SELECT a.attname INTO rec
INTO rec FROM pg_class c
FROM pg_class c JOIN pg_attribute a ON a.attrelid = c.oid
JOIN pg_attribute a ON a.attrelid = c.oid WHERE NOT a.attisdropped
WHERE NOT a.attisdropped AND a.attnum > 0
AND a.attnum > 0 AND c.oid = reloid
AND c.oid = reloid AND a.attname = ident;
AND a.attname = ident;
ELSE
SELECT a.attname
INTO rec
FROM pg_class c
JOIN pg_attribute a ON a.attrelid = c.oid
WHERE NOT a.attisdropped
AND a.attnum > 0
AND a.attname = ident;
END IF;
IF NOT FOUND THEN IF NOT FOUND THEN
RETURN ident; RETURN ident;