• unknown's avatar
    Implement MySQL framework to support consistent read views in · ec55fec9
    unknown authored
    cursors. This should fix Bug#11813 when InnoDB part is in 
    (tested with a draft patch).
    The idea of the patch is that if a storage engine supports
    consistent read views, we open one when open a cursor,
    set is as the active view when fetch from the cursor, and close
    together with cursor close.
    
    
    sql/examples/ha_archive.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/examples/ha_example.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/examples/ha_tina.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_berkeley.cc:
      - extend handlerton with cursors methods
    sql/ha_blackhole.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_federated.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_heap.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_innodb.cc:
      - extend handlerton with cursors methods
    sql/ha_myisam.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_myisammrg.cc:
      - extend handlerton with cursors methods; fix coding style
    sql/ha_ndbcluster.cc:
      - extend handlerton with cursors methods
    sql/handler.h:
      - extend handlerton with cursors methods
    sql/sql_select.cc:
      - create a consistent read view when we open a cursor,
        set it for a fetch, and free when we closing the cursor.
    sql/sql_select.h:
      - add Cursor::ht_info to remember read views used in a cursor.
    tests/mysql_client_test.c:
      Disable an assert that will be no longer valid when consistent
      read views in InnoDB are used.
    ec55fec9
sql_select.cc 423 KB