/usr/lib/ruby/vendor_ruby/sequel/adapters/informix.rb is in ruby-sequel 3.33.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | require 'informix'
Sequel.require 'adapters/shared/informix'
module Sequel
module Informix
class Database < Sequel::Database
include DatabaseMethods
set_adapter_scheme :informix
def connect(server)
opts = server_opts(server)
::Informix.connect(opts[:database], opts[:user], opts[:password])
end
# Returns number of rows affected
def execute_dui(sql, opts={})
synchronize(opts[:server]){|c| log_yield(sql){c.immediate(sql)}}
end
alias_method :do, :execute_dui
def execute(sql, opts={})
synchronize(opts[:server]){|c| yield log_yield(sql){c.cursor(sql)}}
end
alias_method :query, :execute
private
def disconnect_connection(c)
c.close
end
end
class Dataset < Sequel::Dataset
include DatasetMethods
Database::DatasetClass = self
def fetch_rows(sql)
execute(sql) do |cursor|
begin
col_map = nil
cursor.open.each_hash do |h|
unless col_map
col_map = {}
@columns = h.keys.map{|k| col_map[k] = output_identifier(k)}
end
h2 = {}
h.each{|k,v| h2[col_map[k]||k] = v}
yield h2
end
ensure
cursor.respond_to?(:free) ? cursor.free : cursor.drop
end
end
self
end
end
end
end
|