module OracleSqlParser::Grammar::Select
grammar RowLimit rule row_limiting_clause fetch:fetch { def ast OracleSqlParser::Ast::RowLimitingClause[ :fetch => fetch.ast ] end } end rule offset offset_keyword space offset:number_literal space row:(row_keyword / rows_keyword) { def ast OracleSqlParser::Ast::Offset[ :offset_keyword => offset_keyword, :offset => offset, :row_keyword => row.try(:row_keyword), :rows_keyword => row.try(:rows_keyword), ] end } end rule fetch fetch_keyword space first:(first_keyword / next_keyword) space rowcount:(rowcount:integer / percentage:integer percentage_keyword) space rows:(row_keyword / rows_keyword) space only:(only_keyword:only_keyword / with_keyword:with_keyword space ties_keyword:ties_keyword) { def ast OracleSqlParser::Ast::Fetch[ fetch: fetch_keyword.ast, first: first.ast, rowcount: rowcount.try(:rowcount).ast, percentage: rowcount.try(:percentage).ast, percentage_keyword: rowcount.try(:percentage_keyword).ast, rows: rows.ast, only: only.try(:only_keyword).ast, with: only.try(:with_keyword).ast, ties: only.try(:ties_keyword).ast, ] end } end end
end