Sha256: c7354beb632cb00996ec4177e0f052eefd4e9c3b75af7271b1dc1625d6391294
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
module SchemaPlus::Views module ActiveRecord module ConnectionAdapters module PostgresqlAdapter 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 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 end end end end
Version data entries
2 entries across 2 versions & 1 rubygems