• Vicențiu Ciorbaru's avatar
    MDEV-23908: Implement SELECT ... OFFSET ... FETCH ... · 299b9353
    Vicențiu Ciorbaru authored
    This commit implements the standard SQL extension
    OFFSET start { ROW | ROWS }
    [FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }]
    
    To achieve this a reserved keyword OFFSET is introduced.
    
    The general logic for WITH TIES implies:
    1. The number of rows a query returns is no longer known during optimize
       phase. Adjust optimizations to no longer consider this.
    2. During end_send make use of an "order Cached_item"to compare if the
       ORDER BY columns changed. Keep returning rows until there is a
       change. This happens only after we reached the row limit.
    3. Within end_send_group, the order by clause was eliminated. It is
       still possible to keep the optimization of using end_send_group for
       producing the final result set.
    299b9353
system_mysql_db_fix40123.test 10.1 KB