~openerp-commiter/openobject-server/server-sa

« back to all changes in this revision

Viewing changes to bin/sql2sa/sql2sa.py

  • Committer: rpa (Open ERP)
  • Date: 2009-09-09 12:54:26 UTC
  • Revision ID: rpa@tinyerp.com-20090909125426-wi8xmoexe242ek2k
[ADD]: Modifications in sql2sa for adding offset in a query

Show diffs side-by-side

added added

removed removed

Lines of Context:
1213
1213
        numbers_.setParseAction(lambda toks: [[{'limit':toks}]])
1214
1214
        return numbers_
1215
1215
 
 
1216
    def offset_clause(self):
 
1217
        numbers_ = Word(nums)
 
1218
        numbers_.setParseAction(lambda toks: [[{'offset':toks}]])
 
1219
        return numbers_
 
1220
    
1216
1221
    def columns_clause(self):
1217
1222
        sql_keyword = self.sql_keyword
1218
1223
        dblquotes = Literal('"').suppress()
1573
1578
        groupbyToken = CaselessKeyword("group by")
1574
1579
        orderbyToken = CaselessKeyword("order by")
1575
1580
        limitToken = CaselessKeyword("limit")
 
1581
        offsetToken = CaselessKeyword("offset")
1576
1582
        self.select_stmt << (selectToken + Group(self.columns_clause()) + \
1577
1583
                 Optional(fromToken + Group(self.from_clause())) + \
1578
1584
                 Optional(whereToken + self.where_clause()) + \
1580
1586
                 Optional(havingToken + self.having_clause()) + \
1581
1587
                 Optional(orderbyToken + self.orderby_clause())+ \
1582
1588
                 Optional(limitToken  + self.limit_clause()) +  \
 
1589
                 Optional(offsetToken  + self.offset_clause()) +  \
1583
1590
                 Optional(self.union_intersect()))
1584
1591
 
1585
1592
        def make_select(toks):
1626
1633
                            sel.append_order_by(x)
1627
1634
                    elif t[0].has_key('limit'):
1628
1635
                        sel._limit = t[0]['limit'][0]
 
1636
                    elif t[0].has_key('offset'):
 
1637
                        sel._offset =t[0]['offset'][0] 
1629
1638
                    elif t[0].has_key('having_obj'):
1630
1639
                        sel.append_having(t[0]['having_obj'])
1631
1640
                    elif t[0].has_key('union'):