An error occurred fetching the project authors.
  1. 05 Jul, 2006 1 commit
    • unknown's avatar
      Fix for BUG#20188 "REPLACE or ON DUPLICATE KEY UPDATE in · 4e9d7d6c
      unknown authored
      auto_increment breaks binlog":
      if slave's table had a higher auto_increment counter than master's (even
      though all rows of the two tables were identical), then in some cases,
      REPLACE and INSERT ON DUPLICATE KEY UPDATE failed to replicate
      statement-based (it inserted different values on slave from on master).
      write_record() contained a "thd->next_insert_id=0" to force an adjustment
      of thd->next_insert_id after the update or replacement. But it is this
      assigment introduced indeterminism of the statement on the slave, thus
      the bug. For ON DUPLICATE, we replace that assignment by a call to
      handler::adjust_next_insert_id_after_explicit_value() which is deterministic
      (does not depend on slave table's autoinc counter). For REPLACE, this
      assignment can simply be removed (as REPLACE can't insert a number larger
      than thd->next_insert_id).
      We also move a too early restore_auto_increment() down to when we really know
      that we can restore the value.
      
      
      mysql-test/r/rpl_insert_id.result:
        result update, without the bugfix, slave's "3 350" were "4 350".
      mysql-test/t/rpl_insert_id.test:
        test for BUG#20188 "REPLACE or ON DUPLICATE KEY UPDATE in
        auto_increment breaks binlog".
        There is, in this order:
        - a test of the bug for the case of REPLACE
        - a test of basic ON DUPLICATE KEY UPDATE functionality which was not
        tested before
        - a test of the bug for the case of ON DUPLICATE KEY UPDATE
      sql/handler.cc:
        the adjustment of next_insert_id if inserting a big explicit value, is
        moved to a separate method to be used elsewhere.
      sql/handler.h:
        see handler.cc
      sql/sql_insert.cc:
        restore_auto_increment() means "I know I won't use this autogenerated
        autoincrement value, you are free to reuse it for next row". But we were
        calling restore_auto_increment() in the case of REPLACE: if write_row() fails
        inserting the row, we don't know that we won't use the value, as we are going to
        try again by doing internally an UPDATE of the existing row, or a DELETE
        of the existing row and then an INSERT. So I move restore_auto_increment()
        further down, when we know for sure we failed all possibilities for the row.
        Additionally, in case of REPLACE, we don't need to reset THD::next_insert_id:
        the value of thd->next_insert_id will be suitable for the next row.
        In case of ON DUPLICATE KEY UPDATE, resetting thd->next_insert_id is also
        wrong (breaks statement-based binlog), but cannot simply be removed, as
        thd->next_insert_id must be adjusted if the explicit value exceeds it.
        We now do the adjustment by calling
        handler::adjust_next_insert_id_after_explicit_value() (which, contrary to
        thd->next_insert_id=0, does not depend on the slave table's autoinc counter,
        and so is deterministic).
      4e9d7d6c
  2. 13 Apr, 2006 2 commits
    • unknown's avatar
      foo2 · 365f6f6f
      unknown authored
      sql/ha_innodb.cc:
        Import patch foo2
      sql/ha_innodb.h:
        Import patch foo2
      sql/handler.cc:
        Import patch foo2
      sql/handler.h:
        Import patch foo2
      sql/mysqld.cc:
        Import patch foo2
      sql/set_var.cc:
        Import patch foo2
      sql/sql_class.h:
        Import patch foo2
      sql/sql_repl.cc:
        Import patch foo2
      365f6f6f
    • unknown's avatar
      foo1 · ce335550
      unknown authored
      sql/ha_innodb.cc:
        Import patch foo1
      sql/ha_innodb.h:
        Import patch foo1
      sql/handler.cc:
        Import patch foo1
      sql/handler.h:
        Import patch foo1
      sql/mysqld.cc:
        Import patch foo1
      sql/set_var.cc:
        Import patch foo1
      sql/sql_class.h:
        Import patch foo1
      sql/sql_repl.cc:
        Import patch foo1
      ce335550
  3. 17 Feb, 2006 1 commit
    • unknown's avatar
      WL#2645 (CHECK TABLE FOR UPGRADE) · bf840404
      unknown authored
      necessary implementation in the server
      mysql_upgrade script added
      
      
      client/mysqlcheck.c:
        --check-upgrade option added
      include/my_base.h:
        errcode added
      include/myisam.h:
        option added
      scripts/Makefile.am:
        mysql_upgrade script added
      sql/handler.cc:
        checks for old types/bugs added
      sql/handler.h:
        declarations regarding checks for upgrade
      sql/lex.h:
        sym added
      sql/share/errmsg.txt:
        error message added
      sql/slave.cc:
        now ha_repair is for public use
      sql/sql_table.cc:
        upgrade in ha_repair implemented
      sql/sql_yacc.yy:
        CHECK ... FOR UPGRADE added to syntax
      bf840404
  4. 24 Dec, 2005 1 commit
  5. 14 Dec, 2005 2 commits
  6. 09 Dec, 2005 1 commit
    • unknown's avatar
      Fix crash in BDB from improper cleanup of transactions, and avoid problem · 4d096730
      unknown authored
      in NDB that the fix would cause due to improper registration of a transaction
      that isn't meant to be seen by the handler layer. (Bug #14212)
      
      Thanks to Sergei Golubchik for helping with this.
      
      
      mysql-test/r/bdb.result:
        Add new result
      mysql-test/t/bdb.test:
        Add new regression test
      sql/ha_ndbcluster.cc:
        Don't register transaction if transactions are "disabled".
      sql/handler.cc:
        Commit statement before trying to end transaction.
      4d096730
  7. 21 Nov, 2005 1 commit
    • unknown's avatar
      Bug #14514 Creating table with packed key fails silently · 95b92b43
      unknown authored
       - Backport from 5.0
      
      
      include/my_base.h:
        Rename HA_CREATE_FROM_ENGINE to HA_OPTION_CREATE_FROM_ENGINE, ie. it's a bit in the table_options variable
      mysql-test/r/ndb_basic.result:
        Add test result
      mysql-test/t/ndb_basic.test:
        Add test case for bug14514
      sql/ha_ndbcluster.cc:
        Use new bitmask for table_options to detect if create from engine
      sql/handler.cc:
        Use new bit for create from engine
      95b92b43
  8. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · fe63e095
      unknown authored
      Bad examples of usage of a string with its length fixed.
      The incorrect length in the trigger file configuration descriptor
        fixed (BUG#14090).
      A hook for unknown keys added to the parser to support old .TRG files.
      
      
      sql/field.cc:
        Inefficient usage of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/ha_berkeley.cc:
        A bad example of usage of a string with its length fixed.
      sql/ha_federated.cc:
        Inefficient usage of String::append() fixed.
      sql/ha_myisammrg.cc:
        Bad examples of usage of a string with its length fixed.
      sql/handler.cc:
        Inefficient usage of String::append() fixed.
      sql/item.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item.h:
        A bad example of usage of a string with its length fixed.
      sql/item_cmpfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_func.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_strfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_subselect.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_sum.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/item_timefunc.cc:
        Inefficient using of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/item_uniq.h:
        Bad examples of usage of a string with its length fixed.
      sql/key.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log_event.cc:
        Bad examples of usage of a string with its length fixed.
      sql/mysqld.cc:
        The dummy parser hook allocated.
      sql/opt_range.cc:
        Inefficient usage of String::append() fixed.
      sql/parse_file.cc:
        Bad examples of usage of a string with its length fixed.
        A hook for unknown keys added to the parser.
      sql/parse_file.h:
        A hook for unknown keys added to the parser.
      sql/protocol.cc:
        A bad example of usage of a string with its length fixed.
      sql/repl_failsafe.cc:
        Bad examples of usage of a string with its length fixed.
      sql/share/errmsg.txt:
        A warning for old format config file.
      sql/slave.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp_head.cc:
        Bad examples of usage of a string with its length fixed.
      sql/spatial.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_acl.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_analyse.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/sql_lex.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_load.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_parse.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_prepare.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_select.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_show.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.h:
        The macro definition moved to sql_string.h to
          be accessible in all parts of server.
      sql/sql_table.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_trigger.cc:
        Bad examples of usage of a string with its length fixed.
        The incorrect length in the trigger file configuration descriptor
          fixed (BUG#14090).
        The hook for processing incorrect sql_mode record added.
      sql/sql_view.cc:
        A dummy  hook used for parsing views.
      sql/structs.h:
        The macro definition moved to sql_string.h to be
          accessible in all parts of server.
      sql/table.cc:
        A bad example of usage of a string with its length fixed.
      sql/tztime.cc:
        A bad example of usage of a string with its length fixed.
      fe63e095
  9. 19 Nov, 2005 1 commit
    • unknown's avatar
      Fix for bug #13825 "Triggers: crash if release savepoint" and for general · 11d4d7e6
      unknown authored
      handling of savepoints in stored routines.
      
      Fixed ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint()
      functions to properly handle savepoints inside of stored functions and
      triggers.
      Also now when we invoke stored function or trigger we create new savepoint
      level. We destroy it at the end of function/trigger execution and return back
      to old savepoint level.
      
      
      mysql-test/r/sp_trans.result:
        Added test for bug #13825 "Triggers: crash if release savepoint" and for
        general handling of savepoints in stored routines.
      mysql-test/t/sp_trans.test:
        Added test for bug #13825 "Triggers: crash if release savepoint" and for
        general handling of savepoints in stored routines.
      sql/ha_innodb.cc:
        innobase_savepoint():
          Replaced check which always failed due to similar check in caller
          with assertion.
      sql/handler.cc:
        ha_rollback_to_savepoint()/ha_savepoint()/ha_release_savepoint():
          Changed functions to properly support handling of savepoints
          inside of stored functions and triggers.
      sql/sql_class.cc:
        THD::reset_sub_statement_state()/restore_sub_statement_state():
          When we invoke stored function or trigger we should create new savepoint
          level. We should destroy it at the end of function/trigger execution and
          return back to old savepoint level. To support this behavior we should
          save and reset list of current savepoints on entering function and restore
          old list when we leave it.
      sql/sql_class.h:
        Sub_statement_state:
          When we invoke stored function or trigger we should create new savepoint
          level. We should destroy it at the end of function/trigger execution and
          return back to old savepoint level. To support this behavior added "savepoint"
          member which is used to save/restore list of current savepoints on
          entering/leaving function.
      sql/sql_parse.cc:
        mysql_execute_command():
          Changed processing of SQLCOM_SAVEPOINT so now it is not ignored when
          we are in autocommit mode and savepoint is set inside of stored
          function or trigger.
      11d4d7e6
  10. 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
  11. 02 Nov, 2005 1 commit
  12. 13 Oct, 2005 1 commit
    • unknown's avatar
      Fixes during review of new pushed code · 79538fb6
      unknown authored
      sql/handler.cc:
        Indentation fixes
      sql/item.cc:
        Remove not needed test of *ref (If ref is set it always points to a valid address)
      sql/table.cc:
        Indentation changes
        Moved buff_end directly after 'buff' assignment to make code more clear
      sql/unireg.cc:
        Indentation changes
      79538fb6
  13. 11 Oct, 2005 1 commit
    • unknown's avatar
      Reviewing new pushed code · 0ce12f70
      unknown authored
      - CHAR() now returns binary string as default
      - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
      - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        (Some old systems returns ETIME and it's safer to test for both values
         than to try to write a wrapper for each old system)
      - Fixed new introduced bug in NOT BETWEEN X and X
      - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      - Use octet2hex() for all conversion of string to hex
      - Simplify and optimize code
      
      
      client/mysqldump.c:
        Simple optimizations of new code
        Indentation fixes
      client/mysqltest.c:
        Removed not needed variable
      include/mysql_com.h:
        Made octec2hex() more usable
      mysql-test/r/ctype_utf8.result:
        CHAR() now returns binary string as default
      mysql-test/r/func_str.result:
        CHAR() now returns binary string as default
      mysql-test/r/range.result:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/r/user_var-binlog.result:
        CHAR() now returns binary string as default
      mysql-test/r/view.result:
        More tests of view rename
      mysql-test/t/ctype_utf8.test:
        CHAR() now returns binary string as default
      mysql-test/t/func_str.test:
        CHAR() now returns binary string as default
      mysql-test/t/range.test:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/t/view.test:
        More tests of view rename
      mysys/mf_keycache.c:
        Indentation changes
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/my_os2cond.c:
        Fix to MySQL coding style
        Optimized functions
      mysys/thr_lock.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/thr_mutex.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/instance.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/thread_registry.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/ha_federated.cc:
        Use octet2hex()
      sql/ha_ndbcluster.cc:
        Removed not used variable
      sql/handler.cc:
        Simplify code
        Use *NONE* instead of 'none' for not existing storage engine
        Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      sql/item.h:
        Remove not needed test for *ref.  (If ref is set, it should never point at 0)
      sql/item_func.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        Simplify code
        More comments
        Require that last argument to find_and_check_access() is given
        (Made code shorter and faster)
      sql/item_strfunc.cc:
        Changed CHAR() to return result in binary collation
        CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
        
        Bar will shortly add the following syntax:
        CHAR(.... USING character_set)
        and ensure that
        CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
        Use ocet2hex()
      sql/item_strfunc.h:
        CHAR() now returns a binary string
      sql/log_event.cc:
        Use octet2hex()
        Simplify code
      sql/parse_file.cc:
        Indentation fixes
        Use for() instead of while()
      sql/password.c:
        Make octet2hex() more generally usable by returning pointer to end 0
      sql/slave.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_base.cc:
        Indentation fixes
      sql/sql_insert.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_manager.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_parse.cc:
        Don't check thd->db when checking for function privileges
      sql/sql_prepare.cc:
        Fixed wrong merge
      sql/sql_select.cc:
        Fixed new bug for NOT BETWEEN X and X
      sql/sql_show.cc:
        Removed not used variable
      sql/sql_table.cc:
        Indentation fixed
        Removed DBUG_PRINT that is obvious from context
      sql/sql_view.cc:
        Simplify code
      sql/unireg.cc:
        Use octet2hex()
      0ce12f70
  14. 10 Oct, 2005 1 commit
  15. 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
  16. 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
  17. 30 Sep, 2005 1 commit
    • 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
  18. 29 Sep, 2005 1 commit
    • unknown's avatar
      Moving archive from example to sql. · 5c24a8fe
      unknown authored
      sql/ha_archive.h:
        Rename: sql/examples/ha_archive.h -> sql/ha_archive.h
      libmysqld/Makefile.am:
        Moved archive files references
      sql/Makefile.am:
        Moved archive from example to sql
      sql/ha_archive.cc:
        Moved location of prov file.
      sql/handler.cc:
        Moved location from examples to sql
      5c24a8fe
  19. 23 Sep, 2005 1 commit
    • unknown's avatar
      Fix bug #3443, better foreign key error messsages. · e4b0b0d0
      unknown authored
      innobase/dict/dict0dict.c:
        Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
      innobase/include/dict0dict.h:
        Add 'add_newline' parameter to dict_print_info_on_foreign_key_in_create_format.
      innobase/include/os0file.h:
        Add os_file_read_string.
      innobase/include/trx0trx.h:
        Add trx_set_detailed_error and trx_set_detailed_error_from_file functions
        and a detailed_error field to trx_struct.
      innobase/include/ut0mem.h:
        Add ut_strlcpy.
      innobase/os/os0file.c:
        Add os_file_read_string.
      innobase/row/row0ins.c:
        Add row_ins_set_detailed function and call it when needed.
        
        Adapt to changes in dict_print_info_on_foreign_key_in_create_format.
      innobase/trx/trx0trx.c:
        Add trx_set_detailed_error and trx_set_detailed_error_from_file.
        
        Clear trx->detailed_error in trx_create.
      innobase/ut/ut0mem.c:
        Add ut_strlcpy.
      mysql-test/r/innodb.result:
        Add new tests, adapt existing ones whose output was changed.
      mysql-test/t/innodb.test:
        Add new tests, adapt existing ones whose output was changed.
      sql/ha_innodb.cc:
        Add get_error_message.
        
        Clear trx->detailed_error in start_stmt and external_lock.
      sql/ha_innodb.h:
        Add get_error_message.
      sql/handler.cc:
        Add special case code in print_error for HA_ERR_ROW_IS_REFERENCED and
        HA_ERR_NO_REFERENCED_ROW.
        
        Change SETMSG to point to new error messages.
      sql/share/errmsg.txt:
        Add ER_ROW_IS_REFERENCED_2 and ER_NO_REFERENCED_ROW_2.
      e4b0b0d0
  20. 22 Sep, 2005 2 commits
    • 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
    • unknown's avatar
      fixed a memory leak in ha_tina.cc · 87ad1060
      unknown authored
      87ad1060
  21. 21 Sep, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#6513 "Test Suite: Values inserted by using · 813fc410
      unknown authored
      cursor is interpreted latin1 character and Bug#9819 "Cursors: Mysql Server
      Crash while fetching from table with 5 million records."
      A fix for a possible memory leak when fetching into an SP cursor
      in a long loop.
      The patch uses a common implementation of cursors in the binary protocol and 
      in stored procedures and implements materialized cursors.
      For implementation details, see comments in sql_cursor.cc
      
      
      include/my_sys.h:
        - declaration for multi_alloc_root
      libmysqld/Makefile.am:
        - drop protocol_cursor.cc, add sql_cursor.cc (replaces the old
        implementation of cursors with a new one)
      mysql-test/r/ctype_ujis.result:
        - test results fixed (a test case for Bug#6513)
      mysql-test/r/sp-big.result:
        - test results fixed (a test case for Bug#9819)
      mysql-test/t/ctype_ujis.test:
        Add a test case for Bug#6513 "Test Suite: Values inserted by using cursor is
         interpreted latin1 character"
      mysql-test/t/sp-big.test:
        Add a restricted test case for Bug#9819 "Cursors: Mysql Server Crash
        while fetching from table with 5 million records."
      mysys/my_alloc.c:
        - an implementation of multi_alloc_root; this is largely a copy-paste
          from mulalloc.c, but the function is small and there is no easy way
          to reuse the existing C function.
      sql/Makefile.am:
        - add sql_cursor.h, sql_cursor.cc (a new implementation of stored procedure
        cursors) and drop protocol_cursor.cc (the old one)
      sql/handler.cc:
        - now TABLE object has its mem_root always initialized.
          Adjust the implementation handler::ha_open
      sql/item_subselect.cc:
        - adjust to the changed declaration of st_select_lex_unit::prepare
      sql/protocol.h:
        - drop Protocol_cursor
      sql/sp_head.cc:
        - move juggling with Query_arena::free_list and Item::next to
          sp_eval_func_item, as this is needed in 3 places already.
      sql/sp_head.h:
        - declare a no-op implementation for cleanup_stmt in sp_instr_cpush.
          This method is needed for non-materializing cursors, which are yet not 
          used in stored procedures.
        - declaration for sp_eval_func_item
      sql/sp_rcontext.cc:
        - reimplement sp_cursor using the new implementation of server side cursors.
        - use sp_eval_func_item to assign values of SP variables from the
          row fetched from a cursor. This should fix a possible memory leak in 
          the old implementation of sp_cursor::fetch
      sql/sp_rcontext.h:
        - reimplement sp_cursor using the new implementation of server side cursors.
      sql/sql_class.cc:
        - disable the functionality that closes transient cursors at commit/rollback;
          transient cursors are not used in 5.0, instead we use materialized ones.
          To be enabled in a later version.
      sql/sql_class.h:
        - adjust to the rename Cursor -> Server_side_cursor
        - additional declarations of select_union used in materialized cursors
      sql/sql_derived.cc:
        - reuse bits of tmp table code in UNION, derived tables, and materialized
          cursors
        - cleanup comments
      sql/sql_lex.h:
        - declarations of auxiliary methods used by materialized cursors
        - a cleanup in st_select_lex_unit interface
      sql/sql_list.h:
        - add an array operator new[] to class Sql_alloc
      sql/sql_prepare.cc:
        - split the tight coupling of cursors and prepared statements to reuse 
          the same implementation in stored procedures
        - cleanups of error processing in Prepared_statement::{prepare,execute}
      sql/sql_select.cc:
        - move the implementation of sensitive (non-materializing) cursors to 
          sql_cursor.cc
        - make temporary tables self-contained: the table, its record and fields
          are allocated in TABLE::mem_root. This implementation is not clean
          and resets thd->mem_root several times because of the way create_tmp_table 
          works (many additional things are done inside it).
        - adjust to the changed declaration of st_select_lex_unit::prepare
      sql/sql_select.h:
        - move the declaration of sensitive (non-materializing) cursors to 
          sql_cursor.cc
      sql/sql_union.cc:
        - move pieces of st_select_unit::prepare to select_union and st_table
          methods to be able to reuse code in the implementation of materialized
          cursors
      sql/sql_view.cc:
        - adjust to the changed signature of st_select_lex_unit::prepare
      sql/table.cc:
        - implement auxiliary st_table methods for use with temporary tables
      sql/table.h:
        - add declarations for auxiliary methods of st_table used to work with 
         temporary tables
      tests/mysql_client_test.c:
        - if cursors are materialized, a parallel update of the table used
          in the cursor may go through: update the test.
      sql/sql_cursor.cc:
        New BitKeeper file ``sql/sql_cursor.cc'' -- implementation of server side
        cursors
      sql/sql_cursor.h:
        New BitKeeper file ``sql/sql_cursor.h'' - declarations for
        server side cursors.
      813fc410
  22. 20 Sep, 2005 2 commits
  23. 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
  24. 13 Sep, 2005 1 commit
    • unknown's avatar
      Added option --valgrind-mysqltest to mysql-test-run · f8f1c016
      unknown authored
      Added flag to Field::store(longlong) to specify if value is unsigned.
      This fixes bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
      Fixed warning from valgrind in CREATE ... SELECT
      Fixed double free of mysql.options if reconnect failed
      
      
      mysql-test/mysql-test-run.sh:
        Added option --valgrind-mysqltest to allow one to run mysqltest with valgrind
      mysql-test/r/bigint.result:
        Update results after fix for Field::store(longlong)
      mysql-test/r/range.result:
        Update results after fix for Field::store(longlong)
      mysql-test/r/strict.result:
        Update results after fix for Field::store(longlong)
        (This fixes some wrong results when storing things into bigint columns)
      mysql-test/r/type_ranges.result:
        Update results after fix for Field::store(longlong)
      mysql-test/t/bigint.test:
        Added testing for #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0)
      mysql-test/t/innodb.test:
        Removed comments affected by this bug fix
      mysql-test/t/mysqldump.test:
        Fixed result to not depend on existing config files
      mysql-test/t/range.test:
        0xff numbers are now unsigned
      mysql-test/t/strict.test:
        Added errors for things that previously (wrongly) succeeded
      sql-common/client.c:
        Fixed double free of mysql.options if reconnect failed
      sql/field.cc:
        Added flag to Field::store(longlong) to specify if value is unsigned
      sql/field.h:
        Added flag to Field::store(longlong) to specify if value is unsigned
      sql/field_conv.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/ha_ndbcluster.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/handler.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/item.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/item_sum.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sp.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_acl.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_help.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_show.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/sql_table.cc:
        Fixed varning from valgrind
      sql/sql_udf.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/tztime.cc:
        Fixed calls to Field::store(longlong,flag)
      sql/unireg.cc:
        Fixed calls to Field::store(longlong,flag)
      f8f1c016
  25. 07 Sep, 2005 1 commit
  26. 25 Aug, 2005 1 commit
    • unknown's avatar
      After merge fixes · 5baa13ce
      unknown authored
      mysql-test/r/subselect2.result:
        After merge fix
      sql/handler.cc:
        Remove compiler warning
      sql/sql_acl.cc:
        After merge fix
      sql/sql_db.cc:
        After merge fix
      5baa13ce
  27. 12 Aug, 2005 1 commit
  28. 08 Aug, 2005 1 commit
  29. 30 Jul, 2005 1 commit
    • unknown's avatar
      Added Non-prelocked SP execution: Now a PROCEDURE doesn't enter/leave prelocked mode for · 11abe15e
      unknown authored
      its body, but lets each statement to get/release its own locks. This allows a broader set
      of statements to be executed inside PROCEDUREs (but breaks replication)
      This patch should fix BUG#8072, BUG#8766, BUG#9563, BUG#11126
      
      
      mysql-test/r/sp-security.result:
        Drop tables this test attempts to create
      mysql-test/r/sp-threads.result:
        Update test results
      mysql-test/r/sp.result:
        Disabled a test that triggers BUG#11986, cleanup used tables when tests start.
      mysql-test/r/view.result:
        Enabled a test case that now works with prelocking-free SPs
      mysql-test/t/sp-security.test:
        Drop tables this test attempts to create
      mysql-test/t/sp.test:
        Disabled a test that triggers BUG#11986, cleanup used tables when tests start.
      mysql-test/t/view.test:
        Enabled a test case that now works with prelocking-free SPs
      sql/handler.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/item_func.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sp.cc:
        Non-prelocked SP execution: Added support for skipping prelocking of procedure body for
        "CALL proc(...)" statements.
      sql/sp.h:
        Non-prelocked SP execution: Added support for skipping prelocking of procedure body for
        "CALL proc(...)" statements.
      sql/sp_cache.h:
        Added comments
      sql/sp_head.cc:
        Non-prelocked SP execution:
        * Try to unlock tables after PROCEDURE arguments have been evaluated.
        * Make sp_lex_keeper be able to execute in 2 modes: A) when already in prelocked mode
          B) when its statement enters/leaves prelocked mode itself.
      sql/sp_head.h:
        Non-prelocked SP execution:  Make sp_lex_keeper to additionally keep list of tables it 
        needs to prelock when its statement enters/leaves prelocked mode on its own.
      sql/sql_base.cc:
        Non-prelocked SP execution: Make open_tables() to
         * detect 'CALL proc(...)' and not to do prelocking for procedure body statements.
         * Make lex->query_tables_last to point precisely to a boundary in lex->query_tables 
           list where 'own' tables and views' tables end and added-for-prelocking tables begin.
           (it was not true before - view's tables could end up after query_tables_own_last)
      sql/sql_class.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sql_class.h:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      sql/sql_lex.cc:
        Non-prelocked SP execution: More rigourous cleanup in st_lex::cleanup_after_one_table_open()
      sql/sql_parse.cc:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt, remove outdated comments
      sql/sql_trigger.h:
        Rename: thd->transaction.in_sub_stmt -> thd->in_sub_stmt
      11abe15e
  30. 20 Jul, 2005 1 commit
  31. 19 Jul, 2005 2 commits
    • 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
    • unknown's avatar
      Fix for bugs #5892/6182/8751/8758/10994 (based on Antony's patch) · a32bf7fb
      unknown authored
        "Triggers have the wrong namespace"
        "Triggers: duplicate names allowed"
        "Triggers: CREATE TRIGGER does not accept fully qualified names"
        "SHOW TRIGGERS"
      
      
      mysql-test/r/information_schema.result:
        Added tests for new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      mysql-test/r/information_schema_db.result:
        INFORMATION_SCHEMA.TRIGGERS view was added.
      mysql-test/r/rpl_sp.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/r/trigger.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
        Added test checking that triggers have database wide namespace.
        Added test for bug #8791 "Triggers: Allowed to create triggers on a subject
        table in a different DB".
      mysql-test/r/view.result:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/t/information_schema.test:
        Added tests for new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      mysql-test/t/rpl_sp.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      mysql-test/t/trigger.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
        Added test checking that triggers have database wide namespace.
        Added test for bug #8791 "Triggers: Allowed to create triggers on a subject
        table in a different DB".
      mysql-test/t/view.test:
        Now DROP TRIGGER interprets first part of trigger identifier as database
        name and not as table name. Adjusted tests properly.
      sql/handler.cc:
        Added .TRN tho the list of known file extensions assoicated with tables.
      sql/item.h:
        trg_action_time_type/trg_event_type enums:
          Added TRG_ACTION_MAX/TRG_EVENT_MAX elements which should be used instead of
          magical values in various loops where we iterate through all types of trigger
          action times or/and trigger event types.
      sql/lex.h:
        Added new symbol "TRIGGERS".
      sql/mysql_priv.h:
        Added declaration of constant holding extension for trigger name (.TRN) files.
      sql/mysqld.cc:
        Added statistical variable for SHOW TRIGGERS command.
      sql/share/errmsg.txt:
        Added error message saying that one attempts to create trigger in wrong schema.
      sql/sp.cc:
        Replaced magical values with TRG_EVENT_MAX/TRG_ACTION_MAX constants.
      sql/sql_base.cc:
        open_unireg_entry():
          Now Table_triggers_list::check_n_load() has one more argument which
          controls whether we should prepare Table_triggers_list with fully functional
          triggers or load only their names.
      sql/sql_lex.h:
        Added element for new SHOW TRIGGERS command to enum_sql_command enum.
      sql/sql_parse.cc:
        prepare_schema_table():
          Added support for SHOW TRIGGERS statement.
      sql/sql_show.cc:
        Added new INFORMATION_SCHEMA.TRIGGERS view and SHOW TRIGGERS command.
      sql/sql_table.cc:
        mysql_rm_table_part2():
          Replaced simple deletion of .TRG file with call to
          Table_triggers_list::drop_all_triggers which will also delete .TRN files
          for all triggers associated with table.
      sql/sql_trigger.cc:
        Now triggers have database wide namespace. To support it we create special .TRN
        file with same name as trigger for each trigger. This file contains name of
        trigger's table so one does not need to specify it explicitly in DROP TRIGGER.
        Moreover DROP TRIGGER treats first part of trigger identifier as database name
        now. Updated mysql_create_or_drop_trigger() routine and
        Table_triggers_list::create_trigger()/drop_trigger()/check_n_load() methods
        accordingly. Added add_table_for_trigger() routine and
        Table_triggers_list::drop_all_triggers() method.
        
        Added Table_triggers_list::get_trigger_info() for obtaining trigger metadata.
      sql/sql_trigger.h:
        Table_triggers_list:
          Use TRG_EVENT_MAX, TRG_ACTION_MAX instead of magic values.
          Added get_trigger_info() method for obtaining trigger's meta-data.
          Added drop_all_triggers() method which drops all triggers for table.
          Added declarations of trg_action_time_type_names/trg_event_type_names
          arrays which hold names of triggers action time types  and event types.
      sql/sql_yacc.yy:
        Changed grammar for CREATE/DROP TRIGGER to support database wide trigger
        namespace. Added new SHOW TRIGGERS statement.
      sql/table.h:
        enum enum_schema_tables:
          Added constant for new INFORMATION_SCHEMA.TRIGGERS view.
      a32bf7fb
  32. 04 Jul, 2005 1 commit
    • unknown's avatar
      Fixes during review of new code · 306ebf7b
      unknown authored
      - Mostly indentation fixes
      - Added missing test
      - Ensure that Item_func_case() checks for stack overruns
      - Use real_item() instead of (Item_ref*) item
      - Fixed wrong error handling
      
      
      myisam/mi_unique.c:
        Improved comments
      myisam/myisampack.c:
        Updated version number
      mysql-test/r/group_by.result:
        Added test that was lost during earlier merge
      mysql-test/r/information_schema.result:
        Safety fix: Drop procedures before used
      mysql-test/t/group_by.test:
        Added test that was lost during earlier merge
      mysql-test/t/information_schema.test:
        Safety fix: Drop procedures before used
      mysys/hash.c:
        Updated comment
      sql/field.cc:
        false -> FALSE
      sql/ha_ndbcluster.cc:
        Fix some style issues
        - No () around argument to 'case'
        - Space before ( in switch and if
        - Removed 'goto'
        - Added {}
        - Added () to make expressions easier to read
        - my_snprintf -> strmov
      sql/handler.cc:
        if( -> if (
      sql/item.cc:
        Indentation changes
      sql/item.h:
        false -> FALSE
      sql/item_cmpfunc.cc:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_cmpfunc.h:
        Ensure that Item_func_case() check for stack overrun properly
      sql/item_func.cc:
        Indentation fixes
        Fixed wrong goto label
      sql/mysqld.cc:
        Remove test for opt_disable_networking as this flag can never be set here
      sql/opt_range.cc:
        Simplify code
      sql/sql_class.h:
        Move define out from middle of class definition
      sql/sql_parse.cc:
        Remove extra empty lines
      sql/sql_select.cc:
        use real_item() instead of (Item_ref*) item
        Modifed function comment to be align with others
        Simple optimization
      sql/sql_union.cc:
        Portability fix:
        Don't use 'bool_variable|=...'
      sql/sql_view.cc:
        Move List_iterator_fast out from loops (rewind is faster than creating a new itearator)
      strings/ctype-utf8.c:
        if( -> if (
      strings/ctype.c:
        Remove disabled code
      strings/decimal.c:
        Indentation fixes
      strings/xml.c:
        Indentation fixes
      306ebf7b
  33. 27 Jun, 2005 1 commit
    • unknown's avatar
      Portability fixes · 76d444fc
      unknown authored
      Fixes while reviewing new pushed code
      NULL as argument to encrypt/decrypt should return NULL without a warning
      
      
      client/mysqldump.c:
        Cleanup
        Ensure we free allocated memory
        Portability fixes
      client/mysqltest.c:
        Cleanup of code during review
        Portability fixes (Don't use 'bool')
      mysql-test/r/func_encrypt.result:
        NULL as argument to encrypt/decrypt should return NULL without a warning
      mysql-test/r/func_encrypt_nossl.result:
        Added test of NULL argument
      mysql-test/t/func_encrypt_nossl.test:
        Added test of NULL argument
      sql/handler.cc:
        Cleanup during code review
      sql/item_strfunc.cc:
        NULL as argument to encrypt/decrypt should return NULL without a warning
      sql/sql_parse.cc:
        Fix wrong merge (fix was not needed as the previous code was reverted)
      sql/sql_table.cc:
        Removed extra new line
      76d444fc
  34. 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
  35. 16 Jun, 2005 1 commit
    • unknown's avatar
      BUG10365 Cluster handler uses non-standard error code · d18e5622
      unknown authored
        - Updated after review
      
      
      sql/ha_ndbcluster.cc:
        Return -1 if table does not exists
      sql/handler.cc:
        Return -1 if table does not exists
        Return 0 if table exists and it could be created
        Return >0 if table existed but it could not be created.
      sql/sql_base.cc:
        Only need to call ha_create_table_from_engine and check if result is > 0. If that is the case, print error message
      d18e5622