mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Update DB2 adapter. Closes #2206.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2546 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -92,8 +92,25 @@ begin
|
||||
end
|
||||
|
||||
def add_limit_offset!(sql, options)
|
||||
sql << " FETCH FIRST #{options[:limit]} ROWS ONLY" if options[:limit] and !options[:limit].nil?
|
||||
raise ArgumentError, 'add_limit_offset! not implemented.' if options[:offset] and !options[:offset].nil?
|
||||
if options[:limit] and !options[:limit].nil?
|
||||
# "FETCH FIRST 0 ROWS ONLY" is not allowed, so we have
|
||||
# to use a cheap trick.
|
||||
if options[:limit] == 0
|
||||
if sql =~ /WHERE/i
|
||||
sql.sub!(/WHERE/i, 'WHERE 1 = 2 AND ')
|
||||
elsif
|
||||
sql =~ /ORDER\s+BY/i
|
||||
sql.sub!(/ORDER\s+BY/i, 'WHERE 1 = 2 ORDER BY')
|
||||
else
|
||||
sql << 'WHERE 1 = 2'
|
||||
end
|
||||
else
|
||||
sql << " FETCH FIRST #{options[:limit]} ROWS ONLY"
|
||||
end
|
||||
end
|
||||
if options[:offset] and !options[:offset].nil?
|
||||
raise ArgumentError, ':offset option is not yet supported!'
|
||||
end
|
||||
end
|
||||
|
||||
def columns(table_name, name = nil)
|
||||
@@ -112,6 +129,22 @@ begin
|
||||
result
|
||||
end
|
||||
|
||||
def native_database_types
|
||||
{
|
||||
:primary_key => "int generated by default as identity primary key",
|
||||
:string => { :name => "varchar", :limit => 255 },
|
||||
:text => { :name => "clob", :limit => 32768 },
|
||||
:integer => { :name => "int" },
|
||||
:float => { :name => "float" },
|
||||
:datetime => { :name => "timestamp" },
|
||||
:timestamp => { :name => "timestamp" },
|
||||
:time => { :name => "time" },
|
||||
:date => { :name => "date" },
|
||||
:binary => { :name => "blob", :limit => 32768 },
|
||||
:boolean => { :name => "decimal", :limit => 1 }
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def last_insert_id
|
||||
|
||||
Reference in New Issue
Block a user