Class | Sequel::JDBC::AS400::Dataset |
In: |
lib/sequel/adapters/jdbc/as400.rb
|
Parent: | JDBC::Dataset |
WILDCARD | = | Sequel::LiteralString.new('*').freeze |
AS400 needs to use a couple of subselects for all limits and offsets.
# File lib/sequel/adapters/jdbc/as400.rb, line 28 28: def select_sql 29: return super unless l = @opts[:limit] 30: o = @opts[:offset] || 0 31: order = @opts[:order] 32: dsa1 = dataset_alias(1) 33: dsa2 = dataset_alias(2) 34: rn = row_number_column 35: irn = Sequel::SQL::Identifier.new(rn).qualify(dsa2) 36: subselect_sql(unlimited. 37: from_self(:alias=>dsa1). 38: select_more(Sequel::SQL::QualifiedIdentifier.new(dsa1, WILDCARD), 39: Sequel::SQL::WindowFunction.new(SQL::Function.new(:ROW_NUMBER), Sequel::SQL::Window.new(:order=>order)).as(rn)). 40: from_self(:alias=>dsa2). 41: select(Sequel::SQL::QualifiedIdentifier.new(dsa2, WILDCARD)). 42: where((irn > o) & (irn <= l + o))) 43: end