From 2c3ac56e714f8a3284cf1d42c350aefa36402271 Mon Sep 17 00:00:00 2001 From: Maxim Sadovsky Date: Wed, 27 Dec 2023 17:26:29 +0200 Subject: [PATCH] Add view_exists? --- lib/sequel/adapters/redshift.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/sequel/adapters/redshift.rb b/lib/sequel/adapters/redshift.rb index 92694f1..b2f23e5 100644 --- a/lib/sequel/adapters/redshift.rb +++ b/lib/sequel/adapters/redshift.rb @@ -31,13 +31,22 @@ def adapter_initialize end def table_exists?(name) + relation_exists?(name, 'r') + end + + def view_exists?(name) + relation_exists?(name, 'v') + end + + # @param [String] relkind 'r' for table, 'v' for view + def relation_exists?(name, relkind) sql = <<~SQL SELECT EXISTS ( SELECT * FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = 'public' AND c.relname = '#{name}' - AND c.relkind = 'r' + AND c.relkind = '#{relkind}' ); SQL fetch(sql).first.fetch(:"?column?")