Module: SchemaPlus::Views::ActiveRecord::ConnectionAdapters::PostgresqlAdapter
- Defined in:
- lib/schema_plus/views/active_record/connection_adapters/postgresql_adapter.rb
Instance Method Summary collapse
-
#view_definition(view_name, name = nil) ⇒ Object
:nodoc:.
-
#views(name = nil) ⇒ Object
:nodoc:.
Instance Method Details
#view_definition(view_name, name = nil) ⇒ Object
:nodoc:
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/schema_plus/views/active_record/connection_adapters/postgresql_adapter.rb', line 19 def view_definition(view_name, name = nil) #:nodoc: SchemaMonkey::Middleware::Schema::ViewDefinition.start(connection: self, view_name: view_name, query_name: name) { |env| result = env.connection.query(<<-SQL, name) SELECT pg_get_viewdef(oid) FROM pg_class WHERE relkind = 'v' AND relname = '#{env.view_name}' SQL row = result.first env.definition = row.first.chomp(';').strip unless row.nil? }.definition end |
#views(name = nil) ⇒ Object
:nodoc:
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/schema_plus/views/active_record/connection_adapters/postgresql_adapter.rb', line 6 def views(name = nil) #:nodoc: SchemaMonkey::Middleware::Schema::Views.start(connection: self, query_name: name, views: []) { |env| sql = <<-SQL SELECT viewname FROM pg_views WHERE schemaname = ANY (current_schemas(false)) AND viewname NOT LIKE 'pg\_%' SQL sql += " AND schemaname != 'postgis'" if adapter_name == 'PostGIS' env.views += env.connection.query(sql, env.query_name).map { |row| row[0] } }.views end |