1. 30 Jan, 2005 1 commit
    • unknown's avatar
      Bug#7011 · b8ab81f1
      unknown authored
        Fix replication for multi-update
        new test - rpl_multi_update2
      
      
      sql/mysql_priv.h:
        Bug#7011
          New function mysql_multi_update_lock()
      sql/sql_parse.cc:
        Bug#7011
          New function check_multi_update_lock()
          For multi-update on slave, perform an early open&lock
      sql/sql_update.cc:
        Bug#7011
          Split out multi-update locking into its own function,
            mysql_multi_update_lock()
      b8ab81f1
  2. 21 Jan, 2005 1 commit
  3. 19 Jan, 2005 1 commit
    • unknown's avatar
      Final patch for BUG#4285. · e432b337
      unknown authored
      This patch collects all previous patches into one.
      
      The main problem was due to that there is are two variables -
      dflt_key_cache and sql_key_cache with have more or less duplicate
      function. The reson for the bug was that the default value in the key
      cache hash was set to dflt_key_cache, then sql_key_cache was set to a
      new key cache object, and then dflt_key_cache was set to sql_key_cache
      which was different from the dflt_key_cache_var. After sending SIGHUP,
      the server was using the original default value for the key cache hash,
      which was different from the actual key cache object used for the
      default key cache.
      
      
      include/keycache.h:
        Import patch 4285.diff
      mysys/mf_keycache.c:
        Import patch 4285.diff
      sql/mysql_priv.h:
        Import patch 4285.diff
      sql/mysqld.cc:
        Import patch 4285.diff
      sql/set_var.cc:
        Import patch 4285.diff
      sql/sql_parse.cc:
        Import patch 4285.diff
      sql/sql_show.cc:
        Import patch 4285.diff
      e432b337
  4. 18 Jan, 2005 1 commit
  5. 13 Jan, 2005 1 commit
    • unknown's avatar
      Fix bug in INSERT DELAYED with prepared statements · 4c43672a
      unknown authored
      The bug was that if you have two TL_WRITE_DELAYED at the same time,
      mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      
      
      sql/mysql_priv.h:
        Fix bug in insert delayed with prepared statements
      sql/sql_base.cc:
        Fix bug in insert delayed with prepared statements
      sql/sql_prepare.cc:
        Fix bug in insert delayed with prepared statements
        The bug was that if you have two TL_WRITE_DELAYED at the same time,
        mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      4c43672a
  6. 31 Dec, 2004 1 commit
    • unknown's avatar
      Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag · 9ceb74f5
      unknown authored
      This allows use to use INSERT IGNORE ... ON DUPLICATE ...
      
      
      mysql-test/r/drop.result:
        safety fix
      mysql-test/t/drop.test:
        safety fix
      mysql-test/t/multi_update.test:
        ensure we cover all possible errors
      sql/log_event.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/log_event.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/mysql_priv.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_class.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_delete.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_insert.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_load.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_parse.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_select.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_table.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_union.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_update.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_yacc.yy:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      9ceb74f5
  7. 21 Dec, 2004 1 commit
  8. 13 Dec, 2004 1 commit
    • unknown's avatar
      WL#2274 - INSERT..SELECT..UPDATE · 333389be
      unknown authored
        UPDATE clause conflicts with SELECT for use of item_list field.
        Alter UPDATE clause to use new lex field update_list
        Tests included
      
      
      mysql-test/r/insert_update.result:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      mysql-test/t/insert_update.test:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      sql/mysql_priv.h:
        Remove function - insert_select_precheck()
      sql/sql_class.h:
        WL#2274
          New constructor for class select_insert
      sql/sql_insert.cc:
        WL#2274
          Move code into mysql_prepare_insert
          Add checks as param values may be NULL
      sql/sql_lex.cc:
        WL#2274
          initialize lex->update_list
      sql/sql_lex.h:
        WL#2274
          New field in LEX: update_list
      sql/sql_parse.cc:
        WL#2274
          INSERT..UPDATE clause now populates lex->update_list
          Remove redundant function: insert_select_precheck()
      sql/sql_prepare.cc:
        WL#2274
          invoke insert_precheck() instead of insert_select_precheck()
      sql/sql_yacc.yy:
        WL#2274
          Enable INSERT..SELECT..UPDATE syntax
          New rule - insert_update_list, to populate lex->update_list
      333389be
  9. 09 Dec, 2004 1 commit
    • unknown's avatar
      Fix for bug #6765 "Implicit access to time zone description · 7b96bc55
      unknown authored
      tables requires privileges for them if some table or column level grants
      present" (with after-review fixes).
      
      We should set SELECT_ACL for implicitly opened tables in 
      my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
      checking in check_grant(). Also we should exclude those tables from
      privilege checking in multi-update.
      
      
      mysql-test/r/timezone2.result:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      mysql-test/t/timezone2.test:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      sql/item_geofunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/item_strfunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/log.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/mysql_priv.h:
        Now we have to include sql_acl.h before tztime.h, since 
        my_tz_check_n_skip_implicit_tables() defined there requires
        SELECT_ACL constant defined in sql_acl.h.
      sql/mysqld.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/repl_failsafe.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/set_var.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_acl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_base.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_cache.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_class.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_db.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_derived.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_do.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_insert.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_parse.cc:
        check_one_table_access(): Tweaked comments.
        multi_update_precheck(): Added skipping of implicitly opened tables
          during privilege checking.
      sql/sql_prepare.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_repl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_show.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_update.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_yacc.yy:
        sql_acl.h is now included via mysql_priv.h
      sql/tztime.h:
        my_tz_check_n_skip_implicit_tables():
          We should set SELECT_ACL for implictly opened tables to be able to
          bypass privilege checking in check_grant().
      7b96bc55
  10. 06 Dec, 2004 1 commit
  11. 02 Dec, 2004 3 commits
    • unknown's avatar
      merge (new code fixed the ALTER TABLE problem) · fb995cb8
      unknown authored
      fb995cb8
    • unknown's avatar
      Cleanups during review stage · 9589175a
      unknown authored
      Added auto-correct of field length for enum/set tables for ALTER TABLE
      This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      
      
      mysql-test/r/rpl_start_stop_slave.result:
        Fixed wrong test
      mysql-test/r/type_enum.result:
        Added test for wrong enum/set length after alter table
      mysql-test/t/ps.test:
        removed empty line
      mysql-test/t/type_enum.test:
        Added test for wrong enum/set length after alter table
      sql/field.cc:
        Added auto-correct of field length for enum/set tables.
        This is becasue of a bug in previous MySQL 4.1 versions where the length for enum/set was set incorrectly after ALTER TABLE
      sql/item_cmpfunc.cc:
        Simple optimization
      sql/mysql_priv.h:
        Made local function global
      sql/set_var.cc:
        Simple cleanup
      sql/sql_table.cc:
        Simple cleanups & optimizations
      9589175a
    • unknown's avatar
      Bug #6379: ENUM values are incorrectly converted · 842f56bf
      unknown authored
      - add_field_to_list() now uses <List>String
      instead of TYPELIB to be able to distinguish
      literals 'aaa' and hex literals 0xaabbcc.
      - move some code from add_field_to_list() where
        we don't know column charset yet, to 
        mysql_prepare_table(), where we do.
      
      842f56bf
  12. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · dda7a6a9
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      dda7a6a9
  13. 26 Oct, 2004 1 commit
  14. 25 Oct, 2004 1 commit
  15. 22 Oct, 2004 1 commit
    • unknown's avatar
      postreview fixes · 84f921b7
      unknown authored
      sql/mysql_priv.h:
        constant definition
      sql/sql_base.cc:
        difine used instead of constant
      sql/sql_cache.cc:
        difine used instead of constant
        typo fixed
      84f921b7
  16. 20 Oct, 2004 1 commit
    • unknown's avatar
      Fix for bug #6173 "One can circumvent missing UPDATE privilege if · 4dbb8830
      unknown authored
      he has SELECT and INSERT privileges for table with primary key"
      
      Now we set lex->duplicates= DUP_UPDATE right in parser if INSERT has
      ON DUPLICATE KEY UPDATE clause, this simplifies insert_precheck()
      function (this also fixes a bug) and some other code.
      
      
      mysql-test/r/grant2.result:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      mysql-test/t/grant2.test:
        Added test for bug #6173 "One can circumvent missing UPDATE privilege if
        he has SELECT and INSERT privileges for table with primary key"
      sql/mysql_priv.h:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause.
      sql/sql_parse.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_prepare.cc:
        insert_precheck() don't need "update" parameter any longer since
        now we set lex->duplicates to DUP_UPDATE if INSERT has ON DUPLICATE
        KEY UPDATE clause, so it can determine whenever it is needed to
        require UPDATE_ACL by itself. Also calling of mysql_insert() is
        simplified.
      sql/sql_yacc.yy:
        It is better to set Lex->duplicates= DUP_UPDATE right in parser if we
        have INSERT with ON DUPLICATE KEY UPDATE clause, rather doing this later.
      4dbb8830
  17. 19 Oct, 2004 1 commit
    • unknown's avatar
      Review of all code pushed since last review · da02110d
      unknown authored
      Simple optimzations and cleanups
      Removed compiler warnings and fixed portability issues
      Added client functions 'mysql_embedded()' to allow client to check if we are using embedded server
      Fixes for purify
      
      
      client/mysqlimport.c:
        Remove not used variable
      client/mysqltest.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
        Simplified code
        Remove usage of sprintf("%llu") as this is not portable
      include/mysql.h:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      innobase/srv/srv0start.c:
        Don't use memcmp() when using purify (to avoid false warnings)
      libmysql/libmysql.c:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      libmysql/libmysql.def:
        Added mysql_embedded() to be able to easily check if we are using the embedded server
      myisam/myisam_ftdump.c:
        Remove compiler warning
      myisam/myisamchk.c:
        Remove compiler warning
      myisam/rt_test.c:
        #ifdef not used code
      mysys/hash.c:
        Remove compiler warning (from last push)
      mysys/my_gethwaddr.c:
        Remove compiler warning
      ndb/src/ndbapi/ndberror.c:
        #ifdef not used code
      regex/regcomp.c:
        Remove not used code
      regex/regcomp.ih:
        Remove not used code (to remove compiler warnings)
      sql-common/client.c:
        Remove compiler warnings
      sql/field.cc:
        Simple optimization
      sql/ha_innodb.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/item.cc:
        Fix comments
        Move variables first on block
        Remove else after return
        Simple optimizations
        (no logic changes)
      sql/item_cmpfunc.cc:
        Added comment
      sql/mysql_priv.h:
        Rename mysql_embedded -> mysqld_embedded
      sql/mysqld.cc:
        Rename mysql_embedded -> mysqld_embedded
      sql/sql_acl.cc:
        Added comments
        simple optimization
        Fixed 'very unlikely' bug when doing REVOKE ALL PRIVILEGES
      sql/sql_select.cc:
        More comments
        Simple optimization
      sql/sql_show.cc:
        Simple changes to make similar code similar
        More comments
      sql/sql_string.cc:
        Trivial optimization and better code layout
      strings/Makefile.am:
        Change xml.c to use bcmp to avoid warnings from purify
      strings/xml.c:
        Change xml.c to use bcmp to avoid warnings from purify
      tests/client_test.c:
        Remove usage of MAXPATHLEN (all MySQL code uses FN_REFLEN)
      da02110d
  18. 15 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#6049 "Loss of sign when using prepared · 50129a20
      unknown authored
      statements and negative time/date values". 
      The bug was in wrong sprintf format used in the client library.
      The fix moves TIME -> string conversion functions to sql-common and
      utilized them in the client library.
      
      
      include/my_time.h:
        Declarations for new functions shared between the client and server.
      libmysql/libmysql.c:
        Fix for Bug#6049 "Loss of sign when using prepared statements and negative
        time/date values": use the same function as the server to convert
        date/time/datetime values to strings.
      sql-common/my_time.c:
        Implementation of my_{time,datetime,date,TIME}_to_str: it's
        needed by the client library, so it should be shared.
      sql/field.cc:
        Don't create String object if it's not needed.
      sql/item.cc:
        Don't create String object if it's not needed: TIME_to_string was
        moved to my_TIME_to_str, with different arguments.
      sql/item_timefunc.cc:
        Don't create String object if it's not needed.
      sql/mysql_priv.h:
        TIME_to_string and MAX_DATE_REP_LENGTH moved to the client library.
        MAX_DATE_REP_LENGTH was renamed to MAX_DATE_STRING_REP_LENGTH to not 
        conflict with the same name in libmysql.c
      sql/protocol.cc:
        Don't create String object if it's not needed.
      sql/time.cc:
        Implementation of my_{time,date,datetime,TIME}_to_str moved to my_time.c
        shared between the client and the server.
      tests/client_test.c:
        A test case for Bug#6049.
      50129a20
  19. 13 Oct, 2004 1 commit
    • unknown's avatar
      A fix and test case for Bug#5985 ""prepare stmt from "select rand(?)" · e7a0d543
      unknown authored
      crashes server." The fix makes Item_func_rand prepared-statements
      aware plus it fixes the case when RAND is used in prepared
      statements and replication is on (as well as several similar issues).
      Until now we did not reset THD before every execution of a prepared
      statement, so if some execution had set thd->time_zone_used
      or thd->rand_used they would not be reset until next mysql_parse.
      Some of post-review fixes done.
      
      
      mysql-test/r/ps.result:
        A test case for Bug#5985: test results fixed.
      mysql-test/t/ps.test:
        A test case for Bug#5985 "prepare stmt from "select rand(?)" crashes
        server."
      sql/item_func.cc:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/item_func.h:
        Actual fix for Bug#5985: Item_func_rand rewritten to be 
        prepared statements aware.
      sql/mysql_priv.h:
        We need a separate call to reset THD state before every execute of
        a prepared statement. Otherwise things like THD->user_var_events
        are never cleaned up and bloat binary log (as the list of events
        grows from execution to execution).
      sql/sql_class.cc:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_class.h:
        Statement::end_statement -> THD::end_statement()
        (a leftover from some design change which is not to pushed now, but the
        leftover is to be pushed).
      sql/sql_lex.cc:
        Move the part responsible for initializing LEX from mysql_init_query
        to lex_start.
      sql/sql_lex.h:
        All lex-related initialization is now in lex_start.
        Move thd->select_number to lex->select_number to be able to use it
        easily in lex_start.
      sql/sql_parse.cc:
        Split mysql_init_query into two functions: mysql_reset_thd_for_next_query,
        which is used in PS and conventional execution, and lex_start, used only
        when we want to parse something.
        Fix init_connect to use initialized THD.
      sql/sql_prepare.cc:
        Deploy mysql_reset_thd_for_next_query to reset THD state before
        execution of a prepared statement.
        Normally this should have been added to just one place, but
        we have to reset thd before assigning placeholders from variables,
        thus we can't do that in execute_stmt (yuck).
      e7a0d543
  20. 10 Oct, 2004 1 commit
    • unknown's avatar
      Blob support for the group_concat() function. · 5acf251b
      unknown authored
      (Bug #4315: GROUP_CONCAT with ORDER BY returns strange results for TEXT fields
       Bug #5564: Strange behaviour with group_concat and distinct
       Bug #5970: group_concat doesn't print warnings)
      
      5acf251b
  21. 07 Oct, 2004 1 commit
    • unknown's avatar
      After merge fixes · 73950f75
      unknown authored
      Some bigger code changes was necessary becasue of the multi-table-update and the new HANDLER code
      
      
      include/hash.h:
        Added back function that's was used in 4.0
      mysql-test/r/delete.result:
        Update results after merge
      mysql-test/r/flush_table.result:
        Update results after merge
      mysql-test/r/func_str.result:
        Update results after merge
      mysql-test/r/handler.result:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/r/multi_update.result:
        More startup cleanups
      mysql-test/r/rename.result:
        More startup-cleanups
      mysql-test/r/select.result:
        More startup cleanups
      mysql-test/r/show_check.result:
        More startup-cleanups
      mysql-test/t/ctype_latin1_de.test:
        Cleanup
      mysql-test/t/derived.test:
        Portability fix
      mysql-test/t/handler.test:
        Update results after merge
        Change is big becasue in MySQL 4.1 you are not allowed to qualify the handler alias with a databasename
      mysql-test/t/multi_update.test:
        More startup cleanups
      mysql-test/t/range.test:
        More comments
      mysql-test/t/rename.test:
        More startup cleanups
      mysql-test/t/select.test:
        More startup cleanups
      mysql-test/t/show_check.test:
        More startup cleanups
      mysql-test/t/type_timestamp.test:
        Add back test deleted during merge
      sql/item_cmpfunc.cc:
        After merge fixes
      sql/item_func.cc:
        Remove compiler warning
      sql/mysql_priv.h:
        After merge fixes
      sql/mysqld.cc:
        After merge fixes
      sql/sql_acl.cc:
        More debugging
      sql/sql_base.cc:
        After merge fixes
        (This fix was needed bacause of multi-table-update reopens tables)
      sql/sql_handler.cc:
        After merge fixes
      sql/sql_lex.h:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
      sql/sql_show.cc:
        After merge fixes
      sql/sql_table.cc:
        After merge fixes
        Simple cleanup of mysql_discard_or_import_tablespace
      sql/sql_update.cc:
        After merge fixes
        Rework mysql_multi_update to take into account derived tables.
      sql/sql_yacc.yy:
        After merge fixes
      73950f75
  22. 06 Oct, 2004 1 commit
    • unknown's avatar
      Code cleanups while doing review of pushed code · 68f32949
      unknown authored
      myisam/mi_locking.c:
        More comments
      sql/mysql_priv.h:
        Change mode to uint (as it's a bitmap)
      sql/sql_handler.cc:
        Change mode to uint (as it's a bitmap)
        Fixed DBUG_PRINT to use same format as other MySQL code
      68f32949
  23. 01 Oct, 2004 1 commit
    • unknown's avatar
      InnoDB: quote identifiers according to MySQL settings (Bug #5292) · ea30886c
      unknown authored
      innobase/btr/btr0btr.c:
        Add parameter to ut_print_name() and dict_index_name_print() calls
      innobase/btr/btr0cur.c:
        Add parameter to dict_index_name_print() calls
      innobase/buf/buf0buf.c:
        Add parameter to dict_index_name_print() calls
      innobase/dict/dict0crea.c:
        Add parameter to ut_print_name() calls
      innobase/dict/dict0dict.c:
        Add parameter to ut_print_name() calls
        Update documentation links to http://dev.mysql.com
      innobase/dict/dict0load.c:
        Add parameter to ut_print_name() calls
      innobase/fil/fil0fil.c:
        Use ut_print_filename()
        Update links to documentation to http://dev.mysql.com
      innobase/ibuf/ibuf0ibuf.c:
        Replaced printf(...) with fprintf(stderr,...)
      innobase/include/dict0dict.h:
        Added trx parameters
      innobase/include/row0row.h:
        Added trx parameter
      innobase/include/row0sel.h:
        Added trx parameter
      innobase/include/row0upd.h:
        Added trx parameters
      innobase/include/row0upd.ic:
        Added trx parameter for dict_index_name_print()
      innobase/include/trx0rec.h:
        Added trx parameter
      innobase/include/ut0ut.h:
        Added ut_print_filename()
        Added trx parameter to ut_print_name() and ut_print_namel()
      innobase/lock/lock0lock.c:
        Added parameter to dict_index_name_print() and ut_print_name() calls
      innobase/page/page0page.c:
        Added parameter to dict_index_name_print() calls
      innobase/pars/pars0opt.c:
        Added parameter to dict_index_name_print() call
      innobase/pars/pars0pars.c:
        Added parameter to upd_field_set_field_no() call
      innobase/row/row0ins.c:
        Added trx parameters
      innobase/row/row0mysql.c:
        Added trx parameters
      innobase/row/row0purge.c:
        Added trx parameter
      innobase/row/row0row.c:
        Added trx parameter
      innobase/row/row0sel.c:
        Added trx parameters
      innobase/row/row0umod.c:
        Added trx parameters
      innobase/row/row0upd.c:
        Added trx parameters
      innobase/trx/trx0rec.c:
        Added trx parameters
      innobase/trx/trx0roll.c:
        Added parameter to ut_print_name() calls
      innobase/ut/ut0ut.c:
        Added ut_print_filename()
        Added trx parameter to ut_print_namel() and ut_print_name() calls
      sql/ha_innodb.cc:
        Added trx parameters
        Rewrote mysql_get_identifier_quote_char()
      sql/mysql_priv.h:
        Added get_quote_char_for_identifier()
      sql/sql_show.cc:
        Added get_quote_char_for_identifier()
        Removed append_quoted_simple_identifier()
        Make append_identifier() use get_quote_char_for_identifier()
      ea30886c
  24. 30 Sep, 2004 1 commit
    • unknown's avatar
      Final solution for bug# 4302 "Ambiguos order by when renamed column is · 570923eb
      unknown authored
      identical to another in result"
      According to SQL standard queries like 
      "select t1.a as col from t1, t2 order by a" should return an error if
      both tables contain field a.
      
      
      mysql-test/r/order_by.result:
        Updated test to conform SQL-standard.
      mysql-test/t/order_by.test:
        Updated test to conform SQL-standard.
      sql/item.cc:
        find_item_in_list() has now one more out parameter which is not used
        in item.cc functions.
      sql/mysql_priv.h:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list.
      sql/sql_base.cc:
        find_item_in_list(): Added boolean out parameter "unaliased" which
        indicates that we have found field by its original name and not by
        its alias in item (select) list. This means that additional check is
        required to ensure there will be no ambiguity if we would search for this
        field in all tables.
      sql/sql_select.cc:
        find_order_in_list(): If we have found field in select list by its
        original name and not by its alias then we should perform additional
        check to ensure that there will be no ambiguity if we will search for
        this field in all tables. Also small cleanup.
      570923eb
  25. 24 Sep, 2004 1 commit
    • unknown's avatar
      BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S). · 387ac2e4
      unknown authored
      BUG#4335 - one name can be handler open'ed many times.
      Reworked the HANDLER functions and interface.
      Using a HASH to store information on open tables that
      survives FLUSH TABLE.
      HANDLER tables alias names must now be unique, though it
      is allowed in 4.0 to qualify them with the database name
      of the base table.
      
      
      mysql-test/r/flush_table.result:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler test results to handler.result.
        Added the new test results.
      mysql-test/r/handler.result:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler test results from flush_table.result to here.
      mysql-test/t/flush_table.test:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler tests to handler.test.
        Added new tests.
      mysql-test/t/handler.test:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Moved pure handler tests from flush_table.test to here.
      sql/mysql_priv.h:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Reworked the handler interface.
      sql/sql_base.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Replaced mysql_ha_close_list() by the better named
        function mysql_ha_flush() with readable options.
      sql/sql_class.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Added initialization for the handler tables hash.
        Changed the handler tables clean-up code.
        Unreleted to bug: Changed the order of THD initialization
        to avoid warning messages on Linux with gcc.
      sql/sql_class.h:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Added the handler tables HASH to THD.
      sql/sql_handler.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        Completely reworked the handler functions.
        Added an introducing comment, describing the new functionality.
      sql/sql_table.cc:
        BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
        BUG#4335 - one name can be handler open'ed many times.
        replaced mysql_ha_close() by the better named
        function mysql_ha_flush() with readable options.
      387ac2e4
  26. 13 Sep, 2004 1 commit
    • unknown's avatar
      WL1424 Multiple MySQL Servers: SHOW TABLES etc. should detect new and delete old tables. · 692b1e69
      unknown authored
      include/my_base.h:
        Added new bit to table create options
        Removed old error code HA_ERR_OLD_METADAT and reused it for HA_ERR_NO_SUCH_TABLE.
      mysql-test/r/ndb_autodiscover.result:
        Updated test cases
      mysql-test/t/ndb_autodiscover.test:
        Updated test cases
      mysql-test/t/ndb_autodiscover2.test:
        Updated test cases
      sql/discover.cc:
        Moved function create_table_from_handler to handler.cc
      sql/ha_ndbcluster.cc:
        Improved discover functionality
        Added .ndb file
        Changed error code mappings for a table that does not exist in engine
        Check for ndb object in THD
        Updated ndbcluster_discover, ndbcluster_list_tables and ndbcluster_can_discover
      sql/ha_ndbcluster.h:
        Improved discover
      sql/handler.cc:
        Added new error message mapping.
        Moved function ha_create_table_from_engine to handler level
        Added new functions ha_can_discover, ha_list_tables and ha_table_exists
      sql/handler.h:
        Added new error message mapping.
        M...
      692b1e69
  27. 10 Sep, 2004 1 commit
    • unknown's avatar
      information about different variables agged to query cache (BUG#5515, BUG#5394) · 7cdf2716
      unknown authored
      mysql-test/r/query_cache.result:
        test of QC with different variables
      mysql-test/t/query_cache.test:
        test of QC with different variables
      sql/mysql_priv.h:
        new information for query key calculation
      sql/sql_cache.cc:
        new information for query key calculation
      sql/sql_cache.h:
        removed unused definitions
      7cdf2716
  28. 31 Aug, 2004 1 commit
    • unknown's avatar
      after review patch · e6fbc582
      unknown authored
      mysql-test/r/negation_elimination.result:
        new tests of negation elimination
      mysql-test/t/negation_elimination.test:
        new tests of negation elimination
      sql/item.h:
        test of boolean functions added
      sql/item_cmpfunc.cc:
        NOT subtree is already checked, so wee need to return just argument
      sql/item_cmpfunc.h:
        test of boolean functions added
      sql/mysql_priv.h:
        'place' to detect WHERE clause
      sql/sql_parse.cc:
        function for creation negated expression
      sql/sql_select.cc:
        removed unused function
      sql/sql_select.h:
        removed unused function
      sql/sql_yacc.yy:
        'place' to detect WHERE clause
      e6fbc582
  29. 30 Aug, 2004 1 commit
    • unknown's avatar
      bug in my_strnncoll_utf8 (and friends) fixed · f1b815bd
      unknown authored
      cleanups
      better, charset-dependent, ft_max_len_for_sort value
      
      
      myisam/ftdefs.h:
        better ft_max_len_for_sort value
      myisam/mi_check.c:
        better, charset-dependent, ft_max_len_for_sort value
      myisam/myisamchk.c:
        unused value from enum removed
      myisam/sort.c:
        cleanup
      sql/mysql_priv.h:
        cleanup
      sql/mysqld.cc:
        cleanup
      sql/sql_acl.cc:
        cleanup
      sql/tztime.cc:
        cleanup
      strings/ctype-utf8.c:
        bug in my_strnncoll_utf8 (and friends) fixed
      f1b815bd
  30. 25 Aug, 2004 1 commit
    • unknown's avatar
      Remove default argument to mysql_truncate() · 7586eae8
      unknown authored
      Update to new valgrind
      
      
      mysql-test/mysql-test-run.sh:
        Update for new valgrind
      sql/mysql_priv.h:
        Remove default argument to mysql_truncate()
      sql/sql_parse.cc:
        Remove default argument to mysql_truncate()
      7586eae8
  31. 20 Aug, 2004 2 commits
    • unknown's avatar
      Fix for bug#4912 "mysqld crashs in case a statement is executed · 48bb5630
      unknown authored
       a second time". The bug was caused by incompatibility of
      negations elimination algorithm and PS: during first statement 
      execute a subtree with negation was replaced with equivalent 
      subtree without NOTs.
      The problem was that although this transformation was permanent, 
      items of the new subtree were created in execute-local memory.
      The patch adds means to check if it is the first execute of a
      prepared statement, and if this is the case, to allocate items
      in memory of the prepared statement.
      The implementation:
      - backports Item_arena from 5.0
      - adds Item_arena::is_stmt_prepare(), 
        Item_arena::is_first_stmt_execute().
      - deletes THD::allocate_temporary_pool_for_ps_preparing(),
        THD::free_temporary_pool_for_ps_preparing(); they
        were redundant.
      and adds a few invariants:
      - thd->free_list never contains junk (= freed items)
      - thd->current_arena is never null. If there is no
        prepared statement, it points at the thd. 
      The rest of the patch contains mainly mechanical changes and
      cleanups.
      
      
      mysql-test/r/ps.result:
        Test results updated (test case for Bug#4912)
      mysql-test/t/ps.test:
        A test case for Bug#4912 "mysqld crashs in case a statement is 
        executed a second time"
      sql/item_cmpfunc.cc:
        current_statement -> current_arena
      sql/item_subselect.cc:
        Statement -> Item_arena, current_statement -> current_arena
      sql/item_subselect.h:
        Item_subselect does not need to save thd->current_statement.
      sql/item_sum.cc:
        Statement -> Item_arena
      sql/item_sum.h:
        Statement -> Item_arena
      sql/mysql_priv.h:
        Statement -> Item_arena
      sql/sql_base.cc:
        current_statement -> current_arena
      sql/sql_class.cc:
        - Item_arena
        - convenient set_n_backup_statement, restore_backup_statement
        (nice idea, Sanja)
      sql/sql_class.h:
        - Item_arena: backport from 5.0
        - allocate_temporary_pool_for_ps_preparing,
          free_temporary_pool_for_ps_preparing removed.
      sql/sql_derived.cc:
        current_statement -> current_arena
      sql/sql_lex.cc:
        current_statement -> current_arena
      sql/sql_parse.cc:
        Deploy invariant that thd->free_list never contains junk items
        (backport from 5.0).
      sql/sql_prepare.cc:
        - backporting Item_arena
        - no need to allocate_temporary_pool_for_ps_preparing().
      sql/sql_select.cc:
        Fix for bug#4912 "mysqld crashs in case a statement is 
        executed a second time": if this is the first execute of
        a prepared statement, negation elimination is
        done in memory of the prepared statement.
      sql/sql_union.cc:
        Backporting Item_arena from 5.0.
      48bb5630
    • unknown's avatar
      Making FLUSH TABLES WITH READ LOCK block COMMITs of existing transactions, · 79b2593f
      unknown authored
      in a deadlock-free manner. This splits locking the global read lock in two steps.
      This fixes a consequence of this bug, known as:
      BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
      And a test.
      
      
      sql/handler.cc:
        making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
      sql/lock.cc:
        an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
        make_global_read_lock_block_commit():
        taking the global read lock is TWO steps (2nd step is optional; without
        it, COMMIT of existing transactions will be allowed):
        lock_global_read_lock() THEN make_global_read_lock_block_commit().
      sql/mysql_priv.h:
        new argument to wait_if_global_read_lock()
      sql/sql_class.h:
        THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
      sql/sql_db.cc:
        update for new prototype
      sql/sql_parse.cc:
        implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
      79b2593f
  32. 19 Aug, 2004 3 commits
    • unknown's avatar
      (manual port from 4.0 - was needed) · cc3953ac
      unknown authored
      Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)":
      replacing the no_log argument of mysql_create_table() by some safer method
      (temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
      DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
      is opened by mysql_create_table().
      
      
      mysql-test/r/rpl_heap.result:
        result update
      mysql-test/t/rpl_heap.test:
        changing test to test a bug (but anyway, mysql-test-run --manager looks like not working in 4.1 currently,
        so this test is never run).
      sql/log.cc:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/mysql_priv.h:
        removing argument no_log from mysql_create_table(); no_log was not perfect as some
        binlogging could still be done by open_unireg_entry() for a HEAP table.
      sql/sql_class.h:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/sql_parse.cc:
        removing no_log arg from mysql_create_table()
      sql/sql_table.cc:
        removing no_log from mysql_create_table(); instead using new class Disable_binlog.
        Disabling binlogging in some cases, where the binlogging is done later by some other code
        (case of CREATE SELECT and ALTER).
      cc3953ac
    • unknown's avatar
      This fixes a Windows build failure. How did this build on Linux? · 25d8db7c
      unknown authored
      logging_ok:
        Logging to logging@openlogging.org accepted
      mysql_priv.h, my_time.h:
        Moved declaration of days_in_month array from mysql_priv.h to my_time.h to correct Windows build issues
      
      
      include/my_time.h:
        Moved declaration of days_in_month array from mysql_priv.h to my_time.h to correct Windows build issues
      sql/mysql_priv.h:
        Moved declaration of days_in_month array from mysql_priv.h to my_time.h to correct Windows build issues
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      25d8db7c
    • unknown's avatar
      Bug #4466 Nothing in .err when mysql service ends because of malformed my.ini options · ab169859
      unknown authored
      mysqld.cc:
        Changed LOGLEVEL enum to loglevel
      mysql_priv.h, log.cc:
        Changed LOGLEVEL to loglevel.  Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
      my_getopt.c, my_getopt.h:
        Renamed LOGLEVEL to loglevel to match coding standards
      
      
      include/my_getopt.h:
        Renamed LOGLEVEL to loglevel to match coding standards
      mysys/my_getopt.c:
        Renamed LOGLEVEL to loglevel to match coding standards
      sql/log.cc:
        Changed LOGLEVEL to loglevel.  Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
      sql/mysql_priv.h:
        Changed LOGLEVEL to loglevel.  Removed startup_ from some of the DBUG_ENTER macros. Removed the print_msg_to_log function as it was unused.
      sql/mysqld.cc:
        Changed LOGLEVEL enum to loglevel
      ab169859
  33. 18 Aug, 2004 2 commits
    • unknown's avatar
      Fix for BUG#4971 "CREATE TABLE ... TYPE=HEAP SELECT ... stops slave (wrong DELETE in binlog)": · 090b38b0
      unknown authored
      replacing the no_log argument of mysql_create_table() by some safer method
      (temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
      DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
      is opened by mysql_create_table().
      
      
      mysql-test/r/rpl_heap.result:
        result update
      mysql-test/t/rpl_heap.test:
        testing a bug
      sql/log.cc:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/mysql_priv.h:
        removing argument no_log from mysql_create_table(); no_log was perfect as some
        binlogging could still be done by open_unireg_entry() for a HEAP table.
      sql/sql_class.h:
        new class Disable_binlog used to temporarily disable binlogging for one thread.
      sql/sql_parse.cc:
        removing no_log
      sql/sql_table.cc:
        removing no_log from mysql_create_table(); instead using new class Disable_binlog.
        Disabling binlogging in some cases, where the binlogging is done later by some other code
        (case of CREATE SELECT and ALTER).
      090b38b0
    • unknown's avatar
      BUG# 4466 - Nothing in .err when mysql service ends because of malformed my.ini options · 992baee9
      unknown authored
      mysqld.cc:
        Changed option_error_reporter to match new function header that includes LOGLEVEL enum
      mysql_priv.h:
        Removed the MY_ERROR style bitmask.  Changed function headers to use new LOGLEVEL enum
      log.cc:
        Changed print_buffer_to_log to print_buffer_to_file.  Remove the timestamp bool and now all log entries written to stderr are timestamped.  Removed some unused commented code.  changed to use the new LOGLEVEL enum.  
      my_getopt.c:
        Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter.  This reporter is used in handle_options if a reporter is not given
      my_getopt.h:
        changed typedefs to use better naming convention.  Moved error bitmask into the LOGLEVEL enum and included it here.
      
      
      include/my_getopt.h:
        changed typedefs to use better naming convention.  Moved error bitmask into the LOGLEVEL enum and included it here.
      mysys/my_getopt.c:
        Changed functions to use the new LOGLEVEL enum and changed the included error reporter to be default_reporter.  This reporter is used in handle_options if a reporter is not given
      sql/log.cc:
        Changed print_buffer_to_log to print_buffer_to_file.  Remove the timestamp bool and now all log entries written to stderr are timestamped.  Removed some unused commented code.  changed to use the new LOGLEVEL enum.
      sql/mysql_priv.h:
        Removed the MY_ERROR style bitmask.  Changed function headers to use new LOGLEVEL enum
      sql/mysqld.cc:
        Changed option_error_reporter to match new function header that includes LOGLEVEL enum
      992baee9
  34. 14 Aug, 2004 1 commit
    • unknown's avatar
      mysql_priv.h: · 7c3ecdff
      unknown authored
        Added declarations for print_msg_to_log and vprint_msg_to_log.  sql_print_error are simple functions that wrap calls to print_msg_to_log.  Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
      gen_lex_hash.cc:
        Added NULL error reporting parameter to handle_options
      log.cc:
        Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log.  Print_msg_to_log will write the message to the windows event log if on NT.  We now have error, warning, and information versions of sql_print_xxxx.  T his is a variation of a similar changeset WAX did.
      mysqld.cc:
        Added option_error_reporter callback function and pass that into handle_options
      mysql.cc:
        Added NULL as error reporter arg to the end of handle_options
      Many files:
        Added NULL error reporter parameter as the last paramter to handle_options
      my_getopt.c:
        Added second function pointer to server as an error reporting callback.  Added local function report_option_error that will either write the error to stderr or to the error reporting callback.  changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
      my_getopt.h:
        Changed declaration of handle_options to use typedefs for the two function pointers.  added second function pointer to server as an error reporting callback
      mysqld.dsp:
        Added custom build step for compiling message file and added message resource file (output of mc)
      
      
      VC++Files/sql/mysqld.dsp:
        Added custom build step for compiling message file and added message resource file (output of mc)
      client/mysqladmin.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlcheck.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqldump.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlimport.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlmanager-pwgen.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlmanagerc.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlbinlog.cc:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqlshow.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysqltest.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/my_print_defaults.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/mysql_install.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/mysql_waitpid.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/perror.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/resolve_stack_dump.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      extra/resolveip.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      isam/isamchk.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      isam/pack_isam.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      myisam/mi_test1.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      myisam/myisam_ftdump.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      myisam/myisamchk.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      myisam/myisampack.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      include/my_getopt.h:
        Changed declaration of handle_options to use typedefs for the two function pointers.  added second function pointer to server as an error reporting callback
      mysys/my_getopt.c:
        Added second function pointer to server as an error reporting callback.  Added local function report_option_error that will either write the error to stderr or to the error reporting callback.  changed all calls in handle_options from fprintf(stderr, ... ) to report_option_error
      tools/mysqlmanager.c:
        Added NULL error reporter parameter as the last paramter to handle_options
      client/mysql.cc:
        Added NULL as error reporter arg to the end of handle_options
      sql/mysqld.cc:
        Added option_error_reporter callback function and pass that into handle_options
      sql/log.cc:
        Add print_msg_to_log, print_buffer_to_log, and vprint_msg_to_log.  Print_msg_to_log will write the message to the windows event log if on NT.  We now have error, warning, and information versions of sql_print_xxxx.  T his is a variation of a similar changeset WAX did.
      sql/gen_lex_hash.cc:
        Added NULL error reporting parameter to handle_options
      sql/mysql_priv.h:
        Added declarations for print_msg_to_log and vprint_msg_to_log.  sql_print_error are simple functions that wrap calls to print_msg_to_log.  Define the different error types with MY_ERROR_TYPE, MY_WARNING_TYPE, and MY_INFORMATION_TYPE
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      7c3ecdff