module Procedural::Adapters::PostgreSQLAdapter
Public Instance Methods
create_procedure(*args) { || ... }
click to toggle source
# File lib/procedural/adapters/postgresql_adapter.rb, line 4 def create_procedure(*args) options = args.extract_options! procedure_name = args.shift language = options.fetch(:language) returns = options.fetch(:returns) sql = options.fetch(:sql) { yield } execute(<<-SQL) CREATE OR REPLACE FUNCTION #{quote_column_name(procedure_name)}() RETURNS #{returns} LANGUAGE #{language} AS $$ BEGIN #{sql} END $$ SQL end
create_trigger(*args)
click to toggle source
# File lib/procedural/adapters/postgresql_adapter.rb, line 30 def create_trigger(*args) options = args.extract_options! table_name = args.shift trigger_name = args.shift procedure_name = args.shift execute("CREATE TRIGGER #{quote_column_name(trigger_name)} BEFORE INSERT OR UPDATE ON #{quote_table_name(table_name)} FOR EACH ROW EXECUTE PROCEDURE #{quote_column_name(procedure_name)}()") end
drop_procedure(*args)
click to toggle source
# File lib/procedural/adapters/postgresql_adapter.rb, line 24 def drop_procedure(*args) procedure_name = args.shift execute("DROP FUNCTION IF EXISTS #{quote_column_name(procedure_name)}()") end
drop_trigger(*args)
click to toggle source
# File lib/procedural/adapters/postgresql_adapter.rb, line 40 def drop_trigger(*args) table_name = args.shift trigger_name = args.shift execute("DROP TRIGGER IF EXISTS #{quote_column_name(trigger_name)} ON #{quote_table_name(table_name)}") end