module RailsSqlViews4::ConnectionAdapters::PostgreSQLAdapter
Public Class Methods
included(base)
click to toggle source
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 4 def self.included(base) base.alias_method_chain :tables, :views_included end
Public Instance Methods
base_tables(name = nil)
click to toggle source
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 34 def base_tables(name = nil) q = <<-SQL SELECT table_name, table_type FROM information_schema.tables WHERE table_schema IN (#{schemas}) AND table_type = 'BASE TABLE' SQL query(q, name).map { |row| row[0] } end
Also aliased as: nonview_tables
supports_views?()
click to toggle source
Returns true as this adapter supports views.
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 8 def supports_views? true end
tables_with_views_included(name = nil)
click to toggle source
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 12 def tables_with_views_included(name = nil) q = <<-SQL SELECT table_name, table_type FROM information_schema.tables WHERE table_schema IN (#{schemas}) AND table_type IN ('BASE TABLE', 'VIEW') SQL query(q, name).map { |row| row[0] } end
view_select_statement(view, name = nil)
click to toggle source
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 57 def view_select_statement(view, name = nil) q = <<-SQL SELECT view_definition FROM information_schema.views WHERE table_catalog = (SELECT catalog_name FROM information_schema.information_schema_catalog_name) AND table_schema IN (#{schemas}) AND table_name = '#{view}' SQL # TODO # puts in postgres adapter ??? not in SQLITE ? # select_value(q, name) or raise "No view called #{view} found" select_value(q, name).gsub("CREATE VIEW #{view} AS ", "") or raise "No view called #{view} found" end
Private Instance Methods
schemas()
click to toggle source
# File lib/rails_sql_views4/connection_adapters/postgresql_adapter.rb, line 75 def schemas schema_search_path.split(/,/).map { |p| quote(p) }.join(',') end