Optimize internal funcion _cdb_unlimited_text_column

This commit is contained in:
Javier Goizueta
2016-04-18 18:50:37 +02:00
parent bd5ae84e90
commit 06ebb27160
+8 -9
View File
@@ -520,15 +520,14 @@ CREATE OR REPLACE FUNCTION _cdb_unlimited_text_column(reloid REGCLASS, col_name
RETURNS BOOLEAN RETURNS BOOLEAN
AS $$ AS $$
SELECT EXISTS ( SELECT EXISTS (
SELECT * SELECT a.attname
FROM information_schema.columns c, pg_class _tn, pg_namespace _sn FROM pg_class c
WHERE table_name = _tn.relname LEFT JOIN pg_catalog.pg_attribute a ON a.attrelid = c.oid
AND table_schema = _sn.nspname LEFT JOIN pg_catalog.pg_type t ON t.oid = a.atttypid
AND c.column_name = col_name WHERE c.oid = reloid
AND _tn.oid = reloid AND a.attname = col_name
AND _sn.oid = _tn.relnamespace AND pg_catalog.format_type(a.atttypid, NULL) IN ('text', 'character varying', 'character')
AND character_maximum_length IS NULL AND pg_catalog.format_type(a.atttypid, NULL) = pg_catalog.format_type(a.atttypid, a.atttypmod)
AND c.data_type IN ('text', 'character varying', 'character')
); );
$$ LANGUAGE SQL STABLE; $$ LANGUAGE SQL STABLE;