class Scenic::Adapters::Oracle
Public Class Methods
new(connectable = ActiveRecord::Base)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 10 def initialize(connectable = ActiveRecord::Base) @connectable = connectable end
Public Instance Methods
create_materialized_view(name, definition, no_data: false)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 35 def create_materialized_view(name, definition, no_data: false) execute("create materialized view #{quote_table_name(name)} #{'build deferred' if no_data} as #{definition}") end
create_view(name, definition)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 18 def create_view(name, definition) execute("create view #{quote_table_name(name)} as #{definition}") end
drop_materialized_view(name)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 46 def drop_materialized_view(name) execute("drop materialized view #{quote_table_name(name)}") end
drop_view(name)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 22 def drop_view(name) execute("drop view #{quote_table_name(name)}") end
refresh_materialized_view(name, concurrently: false, cascade: false)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 50 def refresh_materialized_view(name, concurrently: false, cascade: false) refresh_dependencies_for(name) if cascade atomic_refresh = concurrently.to_s.upcase execute(<<~EOSQL) begin dbms_mview.refresh('#{name}', method => '?', atomic_refresh => #{atomic_refresh}); end; EOSQL end
replace_view(name, definition)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 26 def replace_view(name, definition) execute("create or replace view #{quote_table_name(name)} as #{definition}") end
update_materialized_view(name, definition)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 39 def update_materialized_view(name, definition) IndexReapplication.new(connection: connection).on(name) do drop_materialized_view(name) create_materialized_view(name, definition) end end
update_view(name, definition)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 30 def update_view(name, definition) drop_view(name) create_view(name, definition) end
views()
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 14 def views all_views + all_mviews end
Private Instance Methods
all_mviews()
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 72 def all_mviews select_all("select lower(mview_name) as name, query as definition from user_mviews").map do |view| Scenic::View.new(name: view["name"], definition: view["definition"], materialized: true) end end
all_views()
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 66 def all_views select_all("select lower(view_name) name, text definition from user_views").map do |view| Scenic::View.new(name: view["name"], definition: view["definition"], materialized: false) end end
refresh_dependencies_for(name)
click to toggle source
# File lib/scenic/adapters/oracle.rb, line 78 def refresh_dependencies_for(name) Scenic::Adapters::Oracle::RefreshDependencies.call(name, self, connection) end