An error occurred fetching the project authors.
  1. 10 Nov, 2005 1 commit
    • unknown's avatar
      Added handlerton flag to make storage engines invisable via flag. · fca8f01a
      unknown authored
      mysql-test/r/ps_1general.result:
        Remove binlog from visable engine list.
      sql/handler.h:
        Added documentation to HTON's
      sql/log.cc:
        binlog now has hidden flag show that it does now show up in show storage engine list.
      sql/sql_show.cc:
        Flag removes engines from view in show storage engines
      fca8f01a
  2. 03 Nov, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#14210 "Simple query with > operator on · 3fa0dd23
      unknown authored
      large table gives server crash": make sure that when a MyISAM temporary
      table is created for a cursor, it's created in its memory root,
      not the memory root of the current query.
      
      
      mysql-test/r/sp.result:
        Test results fixed: a test case for Bug#14210
      mysql-test/t/sp.test:
        A test case for Bug#14210 "Simple query with > operator on large table 
        gives server crash"
      sql/handler.cc:
        - rewrite get_new_handler to accept a memory root and use it for
      sql/handler.h:
        - get_new_handler declaration changed
      sql/opt_range.cc:
        - get_new_handler declaration changed
      sql/sql_base.cc:
        - get_new_handler declaration changed
      sql/sql_select.cc:
        - the actual fix for Bug#14210. In create_myisam_from_heap we should
        create the new table handler in TABLE::mem_root, not in THD::mem_root:
        the latter is freed shortly after cursor is open.
        - adjust create_tmp_table to explicitly supply &table->mem_root
        to get_new_handler when creating a handler for a new temporary table
      sql/sql_table.cc:
        - get_new_handler declaration changed
      sql/table.cc:
        - get_new_handler declaration changed
      sql/unireg.cc:
        - get_new_handler declaration changed
      tests/mysql_client_test.c:
        A test case for Bug#14210 "Simple query with > operator on large table
         gives server crash": a C API test case is worth adding because of different
        memory allocation/freeing patterns in handling of C API and SP cursors
      3fa0dd23
  3. 02 Nov, 2005 1 commit
    • unknown's avatar
      #view.test#: · 8a809365
      unknown authored
        new file
      sql_table.cc, handler.h:
        Fixed bug #14540.
        Added error mnemonic code HA_ADMIN_NOT_BASE_TABLE
        to report that an operation cannot be applied for views.
      view.test, view.result:
        Added a test case for bug #14540.
      errmsg.txt:
        Fixed bug #14540.
        Added error ER_CHECK_NOT_BASE_TABLE.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #14540.
      mysql-test/t/view.test:
        Added a test case for bug #14540.
      sql/handler.h:
        Fixed bug #14540.
        Added error mnemonic code HA_ADMIN_NOT_BASE_TABLE
        to report that an operation cannot be applied for views.
      sql/share/errmsg.txt:
        Added error ER_CHECK_NOT_BASE_TABLE.
      sql/sql_table.cc:
        Fixed bug #14540.
        Added error mnemonic code HA_ADMIN_NOT_BASE_TABLE
        to report that an operation cannot be applied for views.
      8a809365
  4. 10 Oct, 2005 1 commit
  5. 05 Oct, 2005 1 commit
  6. 04 Oct, 2005 1 commit
    • unknown's avatar
      Final patch for 5.0 for simplifying storage engine code. We now have just one... · ed35cecd
      unknown authored
      Final patch for 5.0 for simplifying storage engine code. We now have just one set of ifdefs. I may also remove the code for creating new handlers.
      May changes were to simplify storage engine setup and support for legacy call to show storage engines.
      
      
      mysql-test/r/ps_1general.result:
        Fixed test results for new listing order
      sql/examples/ha_tina.cc:
        Removed dead code
      sql/examples/ha_tina.h:
        Removed dead code
      sql/ha_archive.cc:
        Capitalized sotrage engine name and moved disabled code.
      sql/ha_berkeley.cc:
        Moved deisabled code
      sql/ha_federated.cc:
        Removed disabled code
      sql/ha_innodb.cc:
        Removed disabled message
      sql/ha_ndbcluster.cc:
        Removed disabled message
      sql/handler.cc:
        Added in legacy support for sotrage engine listing (ala Serg's request). Removed handlertons variables and we now have simplified ha_init code.
      sql/handler.h:
        No longer need handlertons array.
      ed35cecd
  7. 03 Oct, 2005 1 commit
    • unknown's avatar
      Next big patch for loadable storage engines! · 5655d31d
      unknown authored
      Handlerton array is now created instead of using sys_table_types_st. All storage engines can now have inits and giant ifdef's are now gone for startup. No compeltely clean yet, handlertons will next be merged with sys_table_types. Federated and archive now have real cleanup if their inits fail. 
      
      
      sql/examples/ha_archive.cc:
        Modifications for new ha_init code. The init method now checks for errors and will not start up if the errors occur.
      sql/examples/ha_archive.h:
        Change for new init method.
      sql/examples/ha_example.cc:
        New handlerton pieces.
      sql/examples/ha_tina.cc:
        New handlerton pieces.
      sql/ha_berkeley.cc:
        New handlerton pieces, plus changes for ha_init changes. I'm not happy with our current "skip" setup.
      sql/ha_berkeley.h:
        Change in init return.
      sql/ha_blackhole.cc:
        Changes for new handlerton pieces.
      sql/ha_federated.cc:
        Changes for new handlerton and true cleanup code.
      sql/ha_heap.cc:
        Changes for new handlerton returns.
      sql/ha_innodb.cc:
        Changes for handlerton code.
      sql/ha_innodb.h:
        Change in init.
      sql/ha_myisam.cc:
        Changes for additional handlerton bits.
      sql/ha_myisammrg.cc:
        Changes for  new handlerton bits.
      sql/ha_ndbcluster.cc:
        Changes for new handlerton bits.
      sql/ha_ndbcluster.h:
        Changes for handlerton bits.
      sql/handler.cc:
        Changes for ditching show_table_type_st types, and collapsing it into a handlerton array. The ha_init now just loops through all handlers to init (much cleaner...). handlertons and sys_table_types should be merged next.
      sql/handler.h:
        Additions for sys_table_types
      sql/log.cc:
        Clean up of binlog for changes in handlerton
      sql/mysql_priv.h:
        Removed unneeded define for binlog_init
      sql/sql_show.cc:
        Changes for change in handlerton to sys_table_types
      5655d31d
  8. 30 Sep, 2005 3 commits
    • unknown's avatar
      Move handler specific options into handlerton flag check · d553b667
      unknown authored
      BUG#13108
      
      
      mysql-test/r/federated.result:
        added test results for federated alter table
      mysql-test/t/federated.test:
        added test for federated alter table
      sql/examples/ha_example.cc:
        supports table re-creation
      sql/examples/ha_tina.cc:
        supports table re-creation
      sql/ha_blackhole.cc:
        supports table re-creation
      sql/ha_federated.cc:
        added flag for not supporting alter
      sql/ha_heap.cc:
        supports table recreation
      sql/ha_myisam.cc:
        supports table recreation
      sql/ha_myisammrg.cc:
        supports table re-creation
      sql/handler.cc:
        implemented flag check function
      sql/handler.h:
        added additional handlerton flags
        created a function to test flags
        replace ha_supports_generate macro with call to flag check
      sql/sql_delete.cc:
        replaced ha_supports_generate with handlerton flag check
      sql/sql_table.cc:
        added check for handlerton check for alter support
      d553b667
    • unknown's avatar
      Bug#11238 · 8f842e8f
      unknown authored
      "SELECT ... FOR UPDATE executed as consistent read inside LOCK TABLES"
      Do not discard lock_type information as handler::start_stmt() may require knowledge.
      (fixed by Antony)
      
      
      8f842e8f
    • unknown's avatar
      BUG#13081: Disable ROR-index_merge for NDB tables (by adding a · b8ad9d14
      unknown authored
      HA_KEY_SCAN_NOT_ROR index flag) as NDB index scans are not guaranteed to be ROR 
      scans. 
      
      
      b8ad9d14
  9. 22 Sep, 2005 1 commit
    • unknown's avatar
      This fixed bug 13369. Note, I dislike goto's as well. · 1d5a9276
      unknown authored
      The alias structure now is a bit more simple and just uses a pointer to replace with the currect name. The giant case statement should go away in the next patch.
      
      
      sql/handler.cc:
        Simplified the code, annd fixed build issue with engines not being compiled.
        I disliek the goto but Serg preferred it over the testing of aliases first :)
      sql/handler.h:
        Removed ht from alias structure.
      1d5a9276
  10. 20 Sep, 2005 1 commit
    • unknown's avatar
      BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index · a2a8216b
      unknown authored
      statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)
      
      
      include/myisam.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      myisam/mi_check.c:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      myisam/myisamchk.c:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      mysql-test/r/myisam.result:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      mysql-test/t/myisam.test:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/ha_myisam.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/handler.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/mysqld.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/set_var.cc:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      sql/sql_class.h:
        BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
      a2a8216b
  11. 19 Sep, 2005 1 commit
    • unknown's avatar
      Cleanup for handlerton structure to allow for loadable engine work. This is... · fa8fcecb
      unknown authored
      Cleanup for handlerton structure to allow for loadable engine work. This is the first in a series of patches. 
      
      
      sql/examples/ha_archive.cc:
        Now declared externally.
      sql/examples/ha_example.cc:
        Now declared externally
      sql/examples/ha_tina.cc:
        Now declared externally
      sql/ha_berkeley.cc:
        Now declared externally
      sql/ha_blackhole.cc:
        Now declared externally
      sql/ha_federated.cc:
        Now declared externally.
      sql/ha_heap.cc:
        Now declared externally.
      sql/ha_innodb.cc:
        Now declared externally.
      sql/ha_myisam.cc:
        Now declared externally
      sql/ha_myisammrg.cc:
        Now declared externally.
      sql/ha_ndbcluster.cc:
        Now declared externally.
      sql/handler.cc:
        Changes for eventual loadable engines. This will allow us to gain faster access to the handlerton (eventually this will just be a handlteron array).
      sql/handler.h:
        New alias structure and change to show_table_st to place handlerton in the structure.
      fa8fcecb
  12. 13 Sep, 2005 1 commit
    • unknown's avatar
      Made changes to add federated CONNECTION information to the .frm file · 00d77fdd
      unknown authored
      (per Monty's patch).
      Remove references to the "COMMENT" field.
      WL#2414
      
      
      mysql-test/r/federated.result:
        alter from "COMMENT=" to "CONNECTION="
      mysql-test/r/federated_archive.result:
        change "COMMENT=" to "CONNECTION="
      mysql-test/t/federated.test:
        change from "COMMENT=" to "CONNECTION="
      mysql-test/t/federated_archive.test:
        change from "COMMENT=" to "CONNECTION="
      sql/ha_federated.cc:
        Change parsing of char* table->s->comment to LEX_STRING table->s->connect_string
        (per Monty's patch)
      sql/handler.h:
        added LEX_STRING "connection_string"
        (per Monty's patch)
      sql/sql_yacc.yy:
        added setting of "connect_string" string and length
      sql/table.cc:
        Modifying frm file to store connecting information (code change came from Monty).
      sql/table.h:
        added connect_string
      sql/unireg.cc:
        Storing information on connection_string (code came from Monty).
      00d77fdd
  13. 30 Aug, 2005 1 commit
    • unknown's avatar
      Bug #11946: Review fixes. · c12a760c
      unknown authored
      sql/ha_innodb.cc:
        Add 'value' parameter to reset_auto_increment.
      sql/ha_innodb.h:
        Add 'value' parameter to reset_auto_increment.
      sql/handler.h:
        Add 'value' parameter to reset_auto_increment.
      sql/mysql_priv.h:
        Add 'reset_auto_increment' parameter to mysql_delete.
      sql/sql_delete.cc:
        Add 'reset_auto_increment' parameter to mysql_delete, and use it instead
        of checking for SQLCOM_TRUNCATE.
        
        mysql_truncate: Adapt to changes in mysql_delete.
      sql/sql_parse.cc:
        mysql_execute_command: Adapt to changes in mysql_delete.
      c12a760c
  14. 29 Aug, 2005 1 commit
    • unknown's avatar
      Added support for delete_all_rows() for archive. This fixes bug #12836. · 341a08ed
      unknown authored
      mysql-test/r/archive.result:
        Update for test case to make sure that TRUNCATE and DELETE function(hah!) as designed.
      mysql-test/t/archive.test:
        Add TRUNCATE and DELETE support.
      sql/examples/ha_archive.cc:
        Added delete_all_rows() support.
      sql/examples/ha_archive.h:
        Added delete_all_rows() support.
      sql/handler.h:
        Added flags for fast delete support for archive and federated.
      341a08ed
  15. 17 Aug, 2005 1 commit
    • unknown's avatar
      Fix bug #11946, truncate not always resetting the auto-increment counter · fa31a995
      unknown authored
      in InnoDB tables.
      
      
      mysql-test/r/innodb.result:
        New tests.
      mysql-test/t/innodb.test:
        New tests.
      sql/ha_innodb.cc:
        Add reset_auto_increment.
      sql/ha_innodb.h:
        Add reset_auto_increment.
      sql/handler.h:
        Add reset_auto_increment.
      sql/sql_delete.cc:
        Call handler->reset_auto_increment when needed.
      fa31a995
  16. 12 Aug, 2005 1 commit
  17. 20 Jul, 2005 1 commit
    • 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
  18. 19 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#10760 and complementary cleanups. · de6f5ae5
      unknown authored
      The idea of the patch
      is that every cursor gets its own lock id for table level locking.
      Thus cursors are protected from updates performed within the same 
      connection. Additionally a list of transient (must be closed at
      commit) cursors is maintained and all transient cursors are closed
      when necessary. Lastly, this patch adds support for deadlock
      timeouts to TLL locking when using cursors.
      + post-review fixes.
      
      
      include/thr_lock.h:
        - add a notion of lock owner to table level locking. When using
          cursors, lock owner can not be identified by a thread id any more, 
          as we must protect cursors from updates issued within the same 
          connection (thread). So, each cursor has its own lock identifier to 
          use with table level locking.
        - extend return values of thr_lock and thr_multi_lock with
          THR_LOCK_TIMEOUT and THR_LOCK_DEADLOCK, since these conditions
          are now possible (see comments to thr_lock.c)
      mysys/thr_lock.c:
        Better support for cursors:
        - use THR_LOCK_OWNER * as lock identifier, not pthread_t.
        - check and return an error for a trivial deadlock case, when an
          update statement is issued to a table locked by a cursor which has 
          been previously opened in the same connection.
        - add support for locking timeouts: with use of cursors, trivial 
          deadlocks can occur. For now the only remedy is the lock wait timeout,
          which is initialized from a new global variable 'table_lock_wait_timeout'
          Example of a deadlock (assuming the storage engine does not downgrade 
          locks):
          con1: open cursor for select * from t1;
          con2: open cursor for select * from t2;
          con1: update t2 set id=id*2;  -- blocked
          con2: update t1 set id=id*2;  -- deadlock
          Lock timeouts are active only if a connection is using cursors.
        - the check in the wait_for_lock loop has been changed from
          data->cond != cond to data->cond != 0. data->cond is zeroed
          in every place it's changed. 
        - added comments
      sql/examples/ha_archive.cc:
        - extend the handlerton with the info about cursor behaviour at commit.
      sql/examples/ha_archive.h:
        - ctor moved to .cc to make use of archive handlerton
      sql/examples/ha_example.cc:
        - add handlerton instance, init handler::ht with it
      sql/examples/ha_example.h:
        - ctor moved to .cc to make use of ha_example handlerton
      sql/examples/ha_tina.cc:
        - add handlerton instance, init handler::ht with it
      sql/examples/ha_tina.h:
        - ctor moved to .cc to make use of CSV handlerton
      sql/ha_berkeley.cc:
        - init handlerton::flags and handler::ht
      sql/ha_berkeley.h:
        - ctor moved to .cc to make use of BerkeleyDB handlerton
      sql/ha_blackhole.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_blackhole.h:
        - ctor moved to .cc to make use of blackhole handlerton
      sql/ha_federated.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_federated.h:
        - ctor moved to .cc to make use of federated handlerton
      sql/ha_heap.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_heap.h:
        - ctor moved to .cc to make use of ha_heap handlerton
      sql/ha_innodb.cc:
        - init handlerton::flags and handler::ht of innobase storage engine
      sql/ha_innodb.h:
        - ctor moved to .cc to make use of archive handlerton
      sql/ha_myisam.cc:
        - add handlerton instance, init handler::ht with it
      sql/ha_myisam.h:
        - ctor moved to .cc to make use of MyISAM handlerton
      sql/ha_myisammrg.cc:
        - init handler::ht in the ctor
      sql/ha_myisammrg.h:
        - ctor moved to .cc to make use of MyISAM MERGE handlerton
      sql/ha_ndbcluster.cc:
        - init handlerton::flags and handler::ht
      sql/handler.cc:
        - drop support for ISAM storage engine, which was removed from 5.0
        - close all "transient" cursors at COMMIT/ROLLBACK. A "transient"
          SQL level cursor is a cursor that uses tables that have a transaction-
          specific state.
      sql/handler.h:
        - extend struct handlerton with flags, add handlerton *ht to every
          handler instance.
      sql/lock.cc:
        - extend mysql_lock_tables to send error to the client if 
          thr_multi_lock returns a timeout or a deadlock error.
      sql/mysqld.cc:
        - add server option --table_lock_wait_timeout (in seconds)
      sql/set_var.cc:
        - add new global variable 'table_lock_wait_timeout' to specify
        a wait timeout for table-level locks of MySQL (in seconds). The default
        timeout is 50 seconds. The timeout is active only if the connection
        has open cursors.
      sql/sql_class.cc:
        - implement Statement_map::close_transient_cursors
        - safety suggests that we need an assert ensuring 
         llock_info->n_cursors is functioning properly, adjust destruction of
         the Statement_map to allow such assert in THD::~THD
      sql/sql_class.h:
        - add support for Cursors registry to Statement map.
      sql/sql_prepare.cc:
        - maintain a list of cursors that must be closed at commit/rollback.
      sql/sql_select.cc:
        - extend class Cursor to support specific at-COMMIT/ROLLBACK behavior.
        If a cursor uses tables of a storage engine that 
        invalidates all open tables at COMMIT/ROLLBACK, it must be closed
        before COMMIT/ROLLBACK is executed.
      sql/sql_select.h:
        - add an own lock_id and commit/rollback status flag to class Cursor
      tests/mysql_client_test.c:
        A test case for Bug#10760 and complementary issues: test a simple
        deadlock case too.
      mysql-test/var:
        New BitKeeper file ``mysql-test/var''
      de6f5ae5
  19. 17 Jun, 2005 1 commit
    • unknown's avatar
      Bug#6877 MySQL should give an error if the requested table type is not available · c25470e3
      unknown authored
        Implement new SQL mode - NO_ENGINE_SUBSTITUTION
      
      
      mysql-test/r/sql_mode.result:
        Test for bug 6877
      mysql-test/t/sql_mode.test:
        Test for bug 6877
      sql/handler.cc:
        change to ha_checktype()
      sql/handler.h:
        change to ha_checktype()
      sql/mysql_priv.h:
        new sql mode NO_ENGINE_SUBSTITUTION
        change to args for get_table_type() and create_frm()
      sql/mysqld.cc:
        new sql mode NO_ENGINE_SUBSTITUTION
      sql/set_var.cc:
        change to ha_checktype() args
      sql/sql_delete.cc:
        change to get_table_type() args
      sql/sql_rename.cc:
        change to get_table_type() args
      sql/sql_table.cc:
        move common code to check_engine()
        change to ha_checktype(), get_table_type() args
      sql/table.cc:
        change to ha_checktype(), create_frm(), get_table_type() args
      sql/unireg.cc:
        change to create_frm() args
      c25470e3
  20. 08 Jun, 2005 1 commit
    • unknown's avatar
      BUG#10365 Cluster handler uses non-standard error codes · 09944efd
      unknown authored
       - Added better error messages when trying to open a table that can't be discovered or unpacked. The most likely cause of this is that it does not have any frm data, probably since it has been created from NdbApi or is a NDB system table.
       - Separated functionality that was in ha_create_table_from_engine into two functions. One that checks if the table exists and another one that tries to create the table from the engine.
      
      
      mysql-test/r/ndb_autodiscover.result:
        Add tests for reading from a table that can't be discovered(SYSTAB_0)
        Discovery is not performed during create table anymore.
      mysql-test/t/ndb_autodiscover.test:
        Add tests for reading from a table that can't be discovered(SYSTAB_0)
        Discovery is not performed during create table anymore.
      ndb/test/ndbapi/create_tab.cpp:
        Set connectstring before creating Ndb object.
      sql/ha_ndbcluster.cc:
        Rename and use the function ndbcluster_table_exists_in_engine.
        Correct return valu from ndbcluster_discover
        Remove old code "ndb_discover_tables"
      sql/ha_ndbcluster.h:
        Rename function ndbcluster_table_exists to ndb ndbcluster_table_exists_in_engine
      sql/handler.cc:
        Update comment of ha_create_table_from_engine
        Remove parameter create_if_found from ha_create_table_from_engine, the function ha_table_exists_in_engine is now used toi check if table is found in engine.
        Cleanup return codes from ha_create_table_from_engine.
        Change name of ha_table_exists to ha_table_exists_in_engine, update comment and returne codes.
      sql/handler.h:
        Remove paramter create_if_cound from  ha_create_table_from_engine
        Rename ha_table_exists to ha_table_exists_in_engine
      sql/sql_base.cc:
        Use the function ha_table_exists_in_engine to detect if table exists in enegine. 
        If it exists, call function ha_create_table_from_engine to try and create it.
        If create of table fails, set correct error message.
      sql/sql_table.cc:
        Add comments, remove parameter create_if_found to ha_create_table_from_engine.
        When dropping a table, try to discover it from engine. If discover fails, use same error message as if the table didn't exists. 
        Maybe another message should be displayed here, ex: "Table could not be dropped, unpack failed"
        
        When creating a new table, use ha_table_exists_in_engine to check if a table with the given name already exists.
      09944efd
  21. 18 May, 2005 2 commits
    • unknown's avatar
      Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE · 0461b482
      unknown authored
      After review version.
      Added a condition for MERGE tables. These do not have unique
      indexes. But every key could be a unique key on the underlying
      MyISAM table. So get the maximum key length for MERGE tables
      instead of the maximum unique key length. This is used for
      buffer allocation in write_record().
      
      
      mysql-test/r/merge.result:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        The test result.
      mysql-test/t/merge.test:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        The test case does not in all cases show the problem
        without the bugfix. The improper memory allocation
        might get through undetected in many cases.
      sql/ha_myisammrg.h:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        Set a table_flag for the MERGE engine telling that any index
        might be unique without being specified as such.
      sql/handler.h:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        Added a new table_flag telling that any index
        might be unique without being specified as such.
      sql/sql_insert.cc:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        Changed the freeing of the memory to be symmetric to its
        allocation (my_safe_alloc -> my_safe_afree).
        This is not directly related to the bug.
      sql/table.cc:
        Bug#10400 - Improperly-defined MERGE table crashes with INSERT ... ON DUPLICATE KEY UPDATE
        Added a condition for MERGE tables. These do not have unique
        indexes. But every key could be a unique key on the underlying
        MyISAM table. So get the maximum key length for MERGE tables
        instead of the maximum unique key length. This is used for
        buffer allocation in write_record().
      0461b482
    • unknown's avatar
      Change update_auto_increment to return 1 if get_auto_increment() returned ~(ulonglong) · ef342b74
      unknown authored
      This makes it easier to give an error in the handler if there was a problem generating an auto-increment value
      
      
      mysys/thr_alarm.c:
        Remove warning from valgrind
      sql/item_strfunc.cc:
        Fixed indentation
      tests/mysql_client_test.c:
        Removed compiler warning
      ef342b74
  22. 13 May, 2005 1 commit
    • unknown's avatar
      Change create_field->offset to store offset from start of fields, independent of null bits. · 7c441dd1
      unknown authored
      Count null_bits separately from field offsets and adjust them in case of primary key parts.
      (Previously a CREATE TABLE with a lot of null fields that was part of a primary key caused MySQL to wrongly count the number of bytes needed to store null bits)
      This is a more complete bug fix for #6236
      
      
      mysql-test/r/alter_table.result:
        More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
      mysql-test/t/alter_table.test:
        More test for bug #6236 (CREATE TABLE didn't properly count not null columns for primary keys)
      sql/handler.h:
        Add counter for null fields
      sql/sql_table.cc:
        Change create_field->offset to store offset from start of fields, independent of null bits.
        Count null_bits separately from field offsets and adjust them in case of primary key parts.
      sql/unireg.cc:
        Change create_field->offset to store offset from start of fields, independent of null bits.
        Count null_bits separately from field offsets and adjust them in case of primary key parts.
      7c441dd1
  23. 04 May, 2005 1 commit
    • unknown's avatar
      BUG#10241 cygwin port: invalid pragma interface directives · 9ab5f614
      unknown authored
       - Introduce ifdefs so we can control when to use #pragma interface on cygwin
      
      
      include/my_global.h:
        Turn on use of #pragma implementation and #pragma interface if compiled with GCC and platform != Cygwin
      include/raid.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_archive.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_example.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/field.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_berkeley.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_blackhole.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_heap.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_innodb.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_ndbcluster.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/handler.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_cmpfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_func.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_geofunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_strfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_subselect.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_sum.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_timefunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/opt_range.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/procedure.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/protocol.h:
        replace __GNUC__ with USE_PRAGMA_IMPLEMENTATION
      sql/set_var.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_class.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_list.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_select.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_string.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_udf.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/tztime.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      9ab5f614
  24. 20 Apr, 2005 1 commit
    • unknown's avatar
      Many files: · 273d78e1
      unknown authored
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      
      
      sql/ha_innodb.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/handler.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/mysqld.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/set_var.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/sql_repl.cc:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/ha_innodb.h:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      sql/handler.h:
        Semi-synchronous replication for InnoDB type tables; before telling the client that a commit has been processed, wait that the replication thread has returned from my_net_send() where it sends the binlog to the slave; note that TCP/IP, even with the TCP_NODELAY option does not guarantee that the slave has RECEIVED the data - this is just heuristic at the moment; this is useful in failover: in almost all cases, every transaction that has returned from the commit has been sent and processed in the slave, which makes failover to the slave simpler if the master crashes; the code does not work yet as is, because MySQL should call innobase_report_binlog_offset_and_commit() in a commit; we will most probably return that call to 5.0.x, to make InnoDB Hot Backup and group commit to work again; XA code broke them temporarily in 5.0.3
      273d78e1
  25. 14 Apr, 2005 1 commit
    • unknown's avatar
      Check that the default storage engine is really available, and · e687d6be
      unknown authored
      refuse to start up if it is not. (Bug #9815)
      
      
      sql/handler.cc:
        Add ha_storage_engine_is_enabled function.
      sql/handler.h:
        Declare ha_storage_engine_is_enabled()
      sql/mysqld.cc:
        Abort startup if the specified default storage engine is
        not available.
      e687d6be
  26. 07 Apr, 2005 2 commits
    • unknown's avatar
      Moved some old test and added a new test to only be run with mysql-test-run --big · e10d8144
      unknown authored
      Fixed warnings by valgrind for sum_distinct.test
      Enable buffered-record-reads after filesort for InnoDB tables with short primary key
      Enabled sort-with-data for MyISAM temporary files
      
      
      BitKeeper/etc/ignore:
        added tools/mysqltestmanager
      client/mysqltest.c:
        Ensure that BIG_TEST is always set to 0 or 1
        Fix the 'eval' also honors 'require'
      mysql-test/mysql-test-run.sh:
        Enlarge InnoDB table space for --big tests
      mysql-test/r/heap.result:
        Fix after adding more optimzation for filsort
      mysql-test/r/sum_distinct.result:
        Move 'slow' part of test to sum_distinct-big.test
      mysql-test/t/heap.test:
        Ensure that results are indpendent of optimizer
      mysql-test/t/sum_distinct.test:
        Move 'slow' part of test to sum_distinct-big.test
      sql/filesort.cc:
        Use 'sort with data' also on temporary files and with INSERT ... SELECT
      sql/ha_innodb.h:
        Remove HA_FAST_KEY_READ to enable buffered-record-reads after filesort
      sql/handler.h:
        More comments
      sql/mysql_priv.h:
        A bit smaller limit for cache for buffered-records-read (after testing)
      sql/records.cc:
        Don't use buffered-record-reads if ref_length > MAX_REFLENGTH
        Fixed warning from valgrind in 'sum_distinct'
      sql/sql_select.cc:
        Ensure that tempory tables has query_id set for all fields
        (Required for sort-with-data to work on temp files)
      e10d8144
    • unknown's avatar
      InnoDB: Prevent ALTER TABLE ... ENGINE=... · f7356d73
      unknown authored
      if there are foreign key constraints on the table. (Bug #5574)
      
      
      sql/ha_innodb.cc:
        Add method can_switch_engines()
      sql/ha_innodb.h:
        Add method can_switch_engines()
      sql/handler.h:
        Add method can_switch_engines()
      sql/sql_table.cc:
        Check handler::can_switch_engines() before switching storage engines
      f7356d73
  27. 03 Apr, 2005 1 commit
    • unknown's avatar
      XID SQL syntax · 2fc4270b
      unknown authored
      minor cleanups
      XA tests
      
      
      include/m_ctype.h:
        minor cleanup
      sql/field.cc:
        minor cleanup
      sql/handler.cc:
        XID SQL syntax
      sql/handler.h:
        XID SQL syntax
      sql/item_sum.h:
        minor cleanup
      sql/lock.cc:
        comments
      sql/sql_class.cc:
        minor cleanup
      sql/sql_lex.h:
        XID SQL syntax
      sql/sql_parse.cc:
        XID SQL syntax
      sql/sql_yacc.yy:
        XID SQL syntax
        cleanups
      2fc4270b
  28. 25 Mar, 2005 1 commit
    • unknown's avatar
      Fix upgrade/downgrade issue. · fdd4cb8f
      unknown authored
      mysql-test/r/ps_1general.result:
        Fix test case.
      sql/handler.h:
        Added federated to the list so that any beta users won't end up with a mismatch for table enum
      fdd4cb8f
  29. 23 Mar, 2005 1 commit
    • unknown's avatar
      Additional storage engine called "blackhole". Customer request, and for that... · 8a99997d
      unknown authored
      Additional storage engine called "blackhole". Customer request, and for that matter a Zawodny request.  With this you can alter table to a type of table that would never store data. Its a /dev/null for a database.  
      
      
      acinclude.m4:
        New macro rule for ha_blackhole.
      configure.in:
        Rule enabling blackhole engine
      sql/Makefile.am:
        Additions to Makefile for blackhole engine
      sql/handler.cc:
        Ifdef enable code for blackhole (and message for "what does this thing do").
      sql/handler.h:
        Flag for storage engine type.
      sql/mysql_priv.h:
        Added blackhole type.
      sql/mysqld.cc:
        Updates for building backhole.
      sql/set_var.cc:
        Show variable for blackhole engine
      8a99997d
  30. 19 Mar, 2005 1 commit
    • unknown's avatar
      Eliminate warnings noticed by VC7. This includes fixing my_mmap() on · 892a6138
      unknown authored
      Windows to call CreateFileMapping() with correct arguments, and
      propogating the introduction of query_id_t to everywhere query ids are
      passed around. (Bug #8826)
      
      
      libmysql/libmysql.c:
        Make implicit cast explicit
      myisam/mi_open.c:
        Make cast of value to smaller data size explicit
      myisam/mi_packrec.c:
        Cast file size (my_off_t) to size_t for mmap
      mysys/my_mmap.c:
        Fix Windows version of my_mmap() to use the right parameters
        for call to CreateFileMapping()
      sql/field.cc:
        Use temporary value of correct type
      sql/field.h:
        Use query_id_t for query_id value
      sql/ha_berkeley.cc:
        Fix flag check
      sql/ha_innodb.h:
        Use query_id_t for query_id value
      sql/handler.cc:
        Explain opt_using_transactions calculation, and add cast
      sql/handler.h:
        Fix forward declaration of COND
      sql/item.cc:
        Fix val_bool() tests of val_int() to avoid implicit cast
      sql/item_cmpfunc.cc:
        Fix typo in switch label
      sql/item_func.cc:
        Make implicit cast explicit
      sql/item_strfunc.cc:
        Now that query_id is a query_id_t, need to cast it to a ulong here
      sql/item_subselect.cc:
        Fix test of value
      sql/log.cc:
        Cast my_off_t used for file size to size_t for memory allocation
        Also cast my_off_t when using it to calculate the number of pages for TC log
        Cast total_ha_2pc to uchar when saving it
      sql/mysql_priv.h:
        Move up query_id definition so it can be used more widely
      sql/opt_range.cc:
        Add unused delete operator to prevent compiler warning
      sql/set_var.cc:
        Cast value for max_user_connections
      sql/sql_cache.cc:
        Remove unused label
      sql/sql_class.h:
        Fix query id values to be of type query_id_t
      sql/sql_db.cc:
        Move variable only used inside #ifdef within the #ifdef
      sql/sql_help.cc:
        Remove unused label
      sql/sql_insert.cc:
        Use query_id_t for query id values
      sql/sql_lex.h:
        Add unused delete operator to prevent compiler warning
      sql/sql_select.cc:
        Remove unused variable
        Make cast of value explicit
      sql/sql_select.h:
        Use query_id_t for query id values
      sql/sql_table.cc:
        Make comparison to function pointer explicit
      sql/sql_update.cc:
        Use query_id_t for query id values
      sql/table.h:
        Use query_id_t for query id values
      strings/ctype-simple.c:
        Add cast of long value to (char) in expression
      strings/ctype-ucs2.c:
        Add cast of long value to (char) in expression
      strings/ctype-utf8.c:
        Make cast to smaller size explicit
      892a6138
  31. 13 Mar, 2005 1 commit
    • unknown's avatar
      print xa recovery progress · ec372b09
      unknown authored
      add names to handlertons
      trans_need_2pc() macro
      
      
      sql/examples/ha_archive.cc:
        add names to handlertons
      sql/ha_berkeley.cc:
        add names to handlertons
      sql/ha_innodb.cc:
        add names to handlertons
      sql/ha_ndbcluster.cc:
        add names to handlertons
      sql/handler.cc:
        print xa recovery progress
      sql/handler.h:
        add names to handlertons
        trans_need_2pc() macro
      sql/log.cc:
        add names to handlertons
      ec372b09
  32. 23 Feb, 2005 2 commits
    • unknown's avatar
      don't log BEGIN in auto-commit mode · be9f1863
      unknown authored
      correct end_log_pos for Xid_log_event
      
      
      mysql-test/r/binlog.result:
        don't depend on the previous tests
      mysql-test/r/rpl_rotate_logs.result:
        correct end_log_pos for Xid_log_event
      mysql-test/t/binlog.test:
        don't depend on the previous tests
      sql/handler.h:
        comment
      sql/log_event.cc:
        advance position for Xid
      sql/log_event.h:
        comment
      sql/sql_class.h:
        correct end_log_pos for Xid_log_event
      sql/sql_parse.cc:
        make sure commit handler knows whether it's autocommit or not
      be9f1863
    • unknown's avatar
      Fixes for condition pushdown to storage engine based on comments from code review · 9968b41d
      unknown authored
      mysql-test/r/ndb_condition_pushdown.result:
        Added more tests  for condition pushdown to storage engine based on comments from code review
      mysql-test/t/ndb_condition_pushdown.test:
        Added more tests  for condition pushdown to storage engine based on comments from code review
      9968b41d
  33. 22 Feb, 2005 1 commit
    • unknown's avatar
      compatibility fixes, crashing tests · 7caef7f4
      unknown authored
      include/my_sys.h:
        sol9x86, sunfire100b, qnx compatibility
      mysql-test/t/rpl_rotate_logs.test:
        fix the test
      sql/ha_innodb.cc:
        don't bother
      sql/handler.cc:
        few more ways to crash mysqld :)
      sql/handler.h:
        gdb/safemalloc workaround
      sql/log.cc:
        rotate a binlog on heuristic recover
      sql/mysqld.cc:
        rotate a binlog on heuristic recover
      7caef7f4
  34. 21 Feb, 2005 2 commits
    • unknown's avatar
      Generate warning in ha_delete_table() if files is missing in handler · 8cb6031d
      unknown authored
      
      mysql-test/r/myisam.result:
        Test of DROP TABLE when .MYI or .MYD is missing
      mysql-test/r/ndb_autodiscover.result:
        Update test results
      mysql-test/r/rpl_EE_error.result:
        Change test to conform with new handling of drop table when handler file is missing
      mysql-test/t/myisam.test:
        Test of DROP TABLE when .MYI or .MYD is missing
      mysql-test/t/rpl_EE_error.test:
        Change test to conform with new handling of drop table when handler file is missing
      sql/handler.cc:
        Generate a warning in ha_delete_table() if we get an error from 'delete_table()'
      sql/handler.h:
        More parameters to ha_delete_table() so that we can generate better error messages
      sql/sql_table.cc:
        Generate warning in ha_delete_table()
      8cb6031d
    • unknown's avatar
      Review of new pushed code (XA & other) · d50af8ae
      unknown authored
      Portability fixes and cleanups
      Fixed setting of 'res' in mysql_execute_command()
      
      
      sql/handler.cc:
        delete_table() will not return error for not found files if one handler file was found and deleted
      sql/handler.h:
        Incremented MAX_HA so that ndb works again
        Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
      sql/log.cc:
        Indentation fixes
        Simplified loop to find next log
        Fixed race condition in reset_logs that caused mix_innodb_myisam_binlog to fail
      sql/log_event.cc:
        Don't convert char pointer to (my_xid*) as we don't know if the address is aligned on 8
      sql/sql_acl.cc:
        Convert db name directly to avoid extra strmov
      sql/sql_base.cc:
        Added comment
        Removed not needed code
      sql/sql_db.cc:
        Added comment
        Remove not needed code
      sql/sql_parse.cc:
        Always call mysql_rm_db() with lower case db name
        Ensure that 'res' is set correctly in mysql_execute_command()
        (One don't have to set res if one calls my_error() and res should be = 0 for correct commands)
      sql/sql_repl.cc:
        Indentation fixes
        use packet->ptr() instead of packet->c_ptr()
      sql/sql_table.cc:
        Join similar code when table didn't exist in engine
      d50af8ae