Index: openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 7 Jul 2011 10:46:02 -0000 1.7 +++ openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 27 Oct 2014 16:39:36 -0000 1.8 @@ -61,3 +61,78 @@ $$ LANGUAGE plpgsql immutable strict; +-- added +select define_function_args('util__table_exists','name'); + +-- +-- procedure util__table_exists/1 +-- +CREATE OR REPLACE FUNCTION util__table_exists( + name text +) RETURNS boolean AS $$ +DECLARE +BEGIN + return exists ( + select 1 from pg_class + where relname = name + and pg_table_is_visible(oid)); +END; +$$ LANGUAGE plpgsql; + + +-- added +select define_function_args('util__table_column_exists','t_name,c_name'); + +-- +-- procedure util__table_column_exists/1 +-- +CREATE OR REPLACE FUNCTION util__table_column_exists( + t_name text, + c_name text +) RETURNS boolean AS $$ +DECLARE +BEGIN + return exists ( + select 1 from information_schema.columns c + where c.table_name = t_name + and c.column_name = c_name); +END; +$$ LANGUAGE plpgsql; + + +-- added +select define_function_args('util__view_exists','name'); + +-- +-- procedure util__view_exists/1 +-- +CREATE OR REPLACE FUNCTION util__view_exists( + name text +) RETURNS boolean AS $$ +DECLARE +BEGIN + return exists ( + select 1 from pg_views where viewname = name); +END; +$$ LANGUAGE plpgsql; + + +-- added +select define_function_args('util__index_exists','name'); + +-- +-- procedure util__index_exists/1 +-- +CREATE OR REPLACE FUNCTION util__index_exists( + name text +) RETURNS boolean AS $$ +DECLARE +BEGIN + return exists ( + select 1 from pg_indexes where indexname = name); +END; +$$ LANGUAGE plpgsql; + + + +