lib/sequel/adapters/tinytds.rb in sequel-3.43.0 vs lib/sequel/adapters/tinytds.rb in sequel-3.44.0
- old
+ new
@@ -16,10 +16,11 @@
# Transfer the :user option to the :username option.
def connect(server)
opts = server_opts(server)
opts[:username] = opts[:user]
c = TinyTds::Client.new(opts)
+ c.query_options.merge!(:cache_rows=>false)
if (ts = opts[:textsize])
sql = "SET TEXTSIZE #{typecast_value_integer(ts)}"
log_yield(sql){c.execute(sql)}
end
@@ -213,43 +214,15 @@
# Yield hashes with symbol keys, attempting to optimize for
# various cases.
def fetch_rows(sql)
execute(sql) do |result|
- each_opts = {:cache_rows=>false}
- each_opts[:timezone] = :utc if db.timezone == :utc
- rn = row_number_column if offset = @opts[:offset]
- columns = cols = result.fields.map{|c| output_identifier(c)}
- if offset
- rn = row_number_column
- columns = columns.dup
- columns.delete(rn)
- end
- @columns = columns
- #if identifier_output_method
- each_opts[:as] = :array
- result.each(each_opts) do |r|
- h = {}
- cols.zip(r).each{|k, v| h[k] = v}
- h.delete(rn) if rn
- yield h
- end
-=begin
- # Temporarily disable this optimization, as tiny_tds uses string keys
- # if result.fields is called before result.each(:symbolize_keys=>true).
- # See https://github.com/rails-sqlserver/tiny_tds/issues/57
+ @columns = result.fields.map!{|c| output_identifier(c)}
+ if db.timezone == :utc
+ result.each(:timezone=>:utc){|r| yield r}
else
- each_opts[:symbolize_keys] = true
- if offset
- result.each(each_opts) do |r|
- r.delete(rn) if rn
- yield r
- end
- else
- result.each(each_opts, &Proc.new)
- end
+ result.each{|r| yield r}
end
-=end
end
self
end
# Create a named prepared statement that is stored in the