module Spectacles::SchemaStatements::AbstractAdapter
Public Instance Methods
create_materialized_view(view_name, *args)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 66 def create_materialized_view(view_name, *args) raise NotImplementedError, "Override create_materialized_view for your db adapter in #{self.class}" end
create_view(view_name, *args) { || ... }
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 4 def create_view(view_name, *args) options = args.extract_options! build_query = args.shift raise "#{self.class} requires a query or block" if build_query.nil? && !block_given? build_query = yield if block_given? build_query = build_query.to_sql if build_query.respond_to?(:to_sql) if options[:force] && view_exists?(view_name) drop_view(view_name) end query = create_view_statement(view_name, build_query) execute(query) end
create_view_statement(view_name, create_query)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 21 def create_view_statement(view_name, create_query) #query = "CREATE VIEW ? AS #{create_query}" #query_array = [query, view_name.to_s] #return ActiveRecord::Base.__send__(:sanitize_sql_array, query_array) "CREATE VIEW #{view_name} AS #{create_query}" end
drop_materialized_view(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 70 def drop_materialized_view(view_name) raise NotImplementedError, "Override drop_materialized_view for your db adapter in #{self.class}" end
drop_view(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 29 def drop_view(view_name) query = drop_view_statement(view_name) execute(query) end
drop_view_statement(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 34 def drop_view_statement(view_name) #query = "DROP VIEW IF EXISTS ? " #query_array = [query, view_name.to_s] #return ActiveRecord::Base.__send__(:sanitize_sql_array, query_array) "DROP VIEW IF EXISTS #{view_name} " end
materialized_view_build_query(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 62 def materialized_view_build_query(view_name) raise NotImplementedError, "Override materialized_view_build_query for your db adapter in #{self.class}" end
materialized_view_exists?(name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 54 def materialized_view_exists?(name) return materialized_views.include?(name.to_s) end
materialized_views()
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 58 def materialized_views raise NotImplementedError, "Override materialized_views for your db adapter in #{self.class}" end
refresh_materialized_view(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 74 def refresh_materialized_view(view_name) raise NotImplementedError, "Override refresh_materialized_view for your db adapter in #{self.class}" end
refresh_materialized_view_concurrently(view_name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 78 def refresh_materialized_view_concurrently(view_name) raise NotImplementedError, "Override refresh_materialized_view_concurrently for your db adapter in #{self.class}" end
supports_materialized_views?()
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 50 def supports_materialized_views? false end
view_exists?(name)
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 42 def view_exists?(name) return views.include?(name.to_s) end
views()
click to toggle source
# File lib/spectacles/schema_statements/abstract_adapter.rb, line 46 def views raise "Override view for your db adapter in #{self.class}" end