clear_primary_key(*tables)
click to toggle source
def clear_primary_key(*tables)
tables.each{|t| @primary_keys.delete(dataset.send(:input_identifier, t))}
end
create_trigger(*args)
click to toggle source
def create_trigger(*args)
self << create_trigger_sql(*args)
end
database_type()
click to toggle source
def database_type
:firebird
end
drop_sequence(name)
click to toggle source
def drop_sequence(name)
self << drop_sequence_sql(name)
end
primary_key(table)
click to toggle source
Return primary key for the given table.
def primary_key(table)
t = dataset.send(:input_identifier, table)
@primary_keys.fetch(t) do
pk = fetch("SELECT RDB$FIELD_NAME FROM RDB$INDEX_SEGMENTS NATURAL JOIN RDB$RELATION_CONSTRAINTS WHERE RDB$CONSTRAINT_TYPE = 'PRIMARY KEY' AND RDB$RELATION_NAME = ?", t).single_value
@primary_keys[t] = dataset.send(:output_identifier, pk.rstrip) if pk
end
end
restart_sequence(*args)
click to toggle source
def restart_sequence(*args)
self << restart_sequence_sql(*args)
end
sequences(opts={})
click to toggle source
def sequences(opts={})
ds = self[:"rdb$generators"].server(opts[:server]).filter(:"rdb$system_flag" => 0).select(:"rdb$generator_name")
block_given? ? yield(ds) : ds.map{|r| ds.send(:output_identifier, r[:"rdb$generator_name"])}
end
tables(opts={})
click to toggle source
def tables(opts={})
tables_or_views(0, opts)
end
views(opts={})
click to toggle source
def views(opts={})
tables_or_views(1, opts)
end