• Konstantin Osipov's avatar
    Backport of: · 30235272
    Konstantin Osipov authored
    ----------------------------------------------------------
    revno: 2617.69.24
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: 5.4-42546
    timestamp: Fri 2009-08-14 19:22:05 +0400
    message:
      A pre-requisite for a fix for Bug#42546 "Backup: RESTORE fails, thinking it
      finds an existing table"
      Back-port from WL 148 "Foreign keys" feature tree a patch
      that introduced Prelocking_strategy class -- a way to parameterize
      open_tables() behaviour, implemented by Dmitry Lenev.
    
    (Part of WL#4284).
    
    sql/sql_base.cc:
      Implement different prelocking strategies. Use an instance of
      prelocking_strategy in open_tables().
    sql/sql_class.h:
      Add declarations for class Prelocking_strategy.
    sql/sql_lex.h:
      Add a helper method to access last table of the global table list
      (lex->query_tables).
    sql/sql_parse.cc:
      Use a special prelocking strategy when locking tables for LOCK TABLES.
    sql/sql_table.cc:
      Use normal open_and_lock_tables_derived() in ALTER TABLE.
    sql/sql_yacc.yy:
      Modify the grammar to not pollute the global table list with tables
      that should not be opened.
    30235272
sql_lex.h 61.9 KB