Class/Module Index [+]

Quicksearch

Sequel::Firebird::Database

Public Class Methods

new(*args) click to toggle source

Add the primary_keys and primary_key_sequences instance variables, so we can get the correct return values for inserted rows.

# File lib/sequel/adapters/firebird.rb, line 15
def initialize(*args)
  super
  @primary_keys = {}
  @primary_key_sequences = {}
end

Public Instance Methods

connect(server) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 21
def connect(server)
  opts = server_opts(server)

  db = Fb::Database.new(
    :database => "#{opts[:host]}:#{opts[:database]}",
    :username => opts[:user],
    :password => opts[:password])
  conn = db.connect
  conn.downcase_names = true
  conn
end
create_trigger(*args) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 33
def create_trigger(*args)
  self << create_trigger_sql(*args)
end
dataset(opts = nil) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 37
def dataset(opts = nil)
  Firebird::Dataset.new(self, opts)
end
drop_sequence(name) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 41
def drop_sequence(name)
  self << drop_sequence_sql(name)
end
execute(sql, opts={}) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 45
def execute(sql, opts={})
  begin
    synchronize(opts[:server]) do |conn|
      r = log_yield(sql){conn.execute(sql)}
      yield(r) if block_given?
      r
    end
  rescue => e
    raise_error(e, :classes=>[Fb::Error])
  end
end
primary_key(table, server=nil) click to toggle source

Return primary key for the given table.

# File lib/sequel/adapters/firebird.rb, line 58
def primary_key(table, server=nil)
  synchronize(server){|conn| primary_key_for_table(conn, table)}
end
primary_key_for_table(conn, table) click to toggle source

Returns primary key for the given table. This information is cached, and if the primary key for a table is changed, the @primary_keys instance variable should be reset manually.

# File lib/sequel/adapters/firebird.rb, line 65
def primary_key_for_table(conn, table)
  @primary_keys[quote_identifier(table)] ||= conn.table_primary_key(quote_identifier(table))
end
restart_sequence(*args) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 69
def restart_sequence(*args)
  self << restart_sequence_sql(*args)
end
sequences(opts={}) click to toggle source
# File lib/sequel/adapters/firebird.rb, line 73
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
# File lib/sequel/adapters/firebird.rb, line 78
def tables(opts={})
  ds = self[:"rdb$relations"].server(opts[:server]).filter(:"rdb$view_blr" => nil, Sequel::SQL::Function.new(:COALESCE, :"rdb$system_flag", 0) => 0).select(:"rdb$relation_name")
  block_given? ? yield(ds) : ds.map{|r| ds.send(:output_identifier, r[:"rdb$relation_name"])}
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.