An error occurred fetching the project authors.
  1. 14 Feb, 2006 3 commits
    • unknown's avatar
      post-merge fixes for dbug · bf3b67f3
      unknown authored
      dbug/dbug.c:
        post-merge fixes (-#T in explain was forgotten)
      sql/set_var.h:
        post-merge fixes (DBUG_POP() is the correct way to restore default settings now)
      bf3b67f3
    • unknown's avatar
      dbug changes: · d3ee9abf
      unknown authored
      1. dbug state is now local to a thread
      2. new macros: DBUG_EXPLAIN, DBUG_EXPLAIN_INITIAL,
         DBUG_SET, DBUG_SET_INITIAL, DBUG_EVALUATE, DBUG_EVALUATE_IF
      3. macros are do{}while(0) wrapped
      4. incremental modifications to the dbug state (e.g. "+d,info:-t")
      5. dbug code cleanup, style fixes
      6. _db_on_ and DEBUGGER_ON/OFF removed
      7. rest of MySQL code fixed because of 3 (missing ;) and 6
      8. dbug manual updated
      9. server variable @@debug (global and local) to control dbug from SQL!
      a. -#T to print timestamps in the log
      
      
      BitKeeper/deleted/.del-readme.prof~2f3bae1550a0038d:
        Delete: dbug/readme.prof
      client/mysqlslap.c:
        typo fixed
      configure.in:
        test for sleep() too
      dbug/dbug.c:
        thread local dbug settings
        DBUG_EXPLAIN,DBUG_EXPLAIN_INITIAL,DBUG_SET,DBUG_SET_INITIAL
        style changes to be more in line with MySQL code
        cleanup (many mallocs removed)
        incremental modification of dbug state (e.g. DBUG_PUSH("+t:-d,info"))
        DBUG_SET, _db_explain_
        -#T
      dbug/monty.doc:
        obsolete and duplicate docs removed
      dbug/user.r:
        new features documented
      include/my_dbug.h:
        correct do{}while wrapping
        thread local dbug settings
        DBUG_EXPLAIN,DBUG_EXPLAIN_INITIAL,DBUG_SET,DBUG_SET_INITIAL
        DBUG_EVALUATE,DBUG_EVALUATE_IF
      libmysql/libmysql.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      mysys/my_init.c:
        missed DBUG_RETURN
      mysys/my_thr_init.c:
        bugfix - transaction id's are unsigned
      mysys/testhash.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      sql/ha_myisammrg.cc:
        missed ;
      sql/ha_ndbcluster.cc:
        remove _db_on_ and DEBUGGER_ON/OFF
        missed ;
      sql/ha_ndbcluster_binlog.cc:
        remove _db_on_ and DEBUGGER_ON/OFF
        missed ;
      sql/item_cmpfunc.cc:
        missed ;
      sql/lock.cc:
        missed DBUG_RETURN
      sql/log_event.cc:
        missed ;
      sql/mysqld.cc:
        remove _db_on_ and DEBUGGER_ON/OFF
        missed ;
        DBUG_SET_INITIAL
      sql/opt_range.cc:
        remove _db_on_ and DEBUGGER_ON/OFF
      sql/set_var.cc:
        class sys_var_thd_dbug and "debug" server variable
      sql/set_var.h:
        class sys_var_thd_dbug and "debug" server variable
      sql/slave.cc:
        missed ;
      sql/sql_cache.cc:
        missed ;
      sql/sql_plugin.cc:
        missed ;
      sql/sql_select.cc:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/heap/hp_test2.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/myisam/ft_eval.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/myisam/ft_test1.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/myisam/mi_open.c:
        remove _db_on_ and DEBUGGER_ON/OFF
        missed ;
      storage/myisam/mi_test1.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/myisam/mi_test2.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/myisam/mi_test3.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      storage/ndb/src/ndbapi/DictCache.cpp:
        missed ;
      storage/ndb/src/ndbapi/NdbTransaction.cpp:
        missed ;
      tests/mysql_client_test.c:
        remove _db_on_ and DEBUGGER_ON/OFF
      d3ee9abf
    • unknown's avatar
      Many files: · 7ce3b2a3
      unknown authored
        Backporting character_set_filesystem from 5.0 to 5.1.
      
      
      sql/mysqld.cc:
        Backporting character_set_filesystem from 5.0 to 5.1.
      sql/set_var.cc:
        Backporting character_set_filesystem from 5.0 to 5.1.
      sql/set_var.h:
        Backporting character_set_filesystem from 5.0 to 5.1.
      sql/sql_class.cc:
        Backporting character_set_filesystem from 5.0 to 5.1.
      sql/sql_class.h:
        Backporting character_set_filesystem from 5.0 to 5.1.
      sql/sql_yacc.yy:
        Backporting character_set_filesystem from 5.0 to 5.1.
      mysql-test/t/variables.test:
        Backporting character_set_filesystem from 5.0 to 5.1.
      mysql-test/r/variables.result:
        Backporting character_set_filesystem from 5.0 to 5.1.
      7ce3b2a3
  2. 26 Jan, 2006 1 commit
    • unknown's avatar
      Rename of my_strdup_with_lenght to match the more common "strndup" method. Soo... · 456524c0
      unknown authored
      Rename of my_strdup_with_lenght to match the more common "strndup" method. Soo its now my_strndup().
      my_stat() gettinng the correct parameter list may be next :)
      
      
      client/mysqlslap.c:
        rename
      extra/comp_err.c:
        rename
      include/my_sys.h:
        replace
      mysys/mf_tempdir.c:
        replace
      mysys/my_malloc.c:
        replace
      mysys/safemalloc.c:
        replace
      sql/ha_federated.cc:
        replace
      sql/log_event.cc:
        replace
      sql/set_var.cc:
        replace
      sql/set_var.h:
        replace
      storage/myisam/ft_stopwords.c:
        replace
      456524c0
  3. 18 Jan, 2006 1 commit
    • unknown's avatar
      loaddata.result, loaddata.test: · 137ae790
      unknown authored
        Adding test case.
      sql_yacc.yy:
        Adding TEXT_STRING_filesystem, which
        converts from character_set_client to
        character_set_conversion.
        Replacing TEXT_STRING_sys to TEXT_STRING_filesystem
        in LOAD DATA and SELECT INTO OUTFILE contexts.
      sql_class.h, sql_class.cc:
        Adding character_set_filesystem variable,
        and charset_is_character_set_filesystem
        flag (to avoid conversion when it's not necessary).
      set_var.h, set_var.cc:
        Adding sys_var_character_set_filesystem
      mysqld.cc:
        Adding --character-set-filesystem startup option.
      
      
      sql/mysqld.cc:
        Adding --character-set-filesystem startup option.
      sql/set_var.cc:
        Adding sys_var_character_set_filesystem
      sql/set_var.h:
        Adding sys_var_character_set_filesystem
      sql/sql_class.cc:
        Adding character_set_filesystem variable,
        and charset_is_character_set_filesystem
        flag (to avoid conversion when it's not necessary).
      sql/sql_class.h:
        Adding character_set_filesystem variable,
        and charset_is_character_set_filesystem
        flag (to avoid conversion when it's not necessary).
      sql/sql_yacc.yy:
        Adding TEXT_STRING_filesystem, which
        converts from character_set_client to
        character_set_conversion.
        Replacing TEXT_STRING_sys to TEXT_STRING_filesystem
        in LOAD DATA and SELECT INTO OUTFILE contexts.
      mysql-test/t/loaddata.test:
        Adding test case.
      mysql-test/r/loaddata.result:
        Adding test case.
      137ae790
  4. 21 Dec, 2005 1 commit
    • unknown's avatar
      Finalize storage engine plugins · 613dd50a
      unknown authored
      Give BerkeleyDB savepoints
      Remove "enum db_type" from most of the code
      
      
      storage/example/ha_example.h:
        Rename: sql/examples/ha_example.h -> storage/example/ha_example.h
      storage/csv/ha_tina.h:
        Rename: sql/examples/ha_tina.h -> storage/csv/ha_tina.h
      config/ac-macros/storage.m4:
        if hton name is "no", then we don't install it as a builtin
      configure.in:
        pluggable changes
      include/plugin.h:
        version field
      mysql-test/r/bdb.result:
        savepoint results copied from innodb test
      mysql-test/r/information_schema.result:
        PLUGINS information schema
      mysql-test/r/information_schema_db.result:
        PLUGINS information schema
      mysql-test/t/bdb.test:
        savepoint test copied from innodb test
      sql/Makefile.am:
        tina and example are not here anymore
      sql/authors.h:
        minor tweek
      sql/ha_archive.cc:
        remove unwanted handlerton entries
      sql/ha_berkeley.cc:
        remove unwanted handlerton entries
        support for savepoints
        changes to show logs
      sql/ha_blackhole.cc:
        remove unwanted handlerton entries
      sql/ha_federated.cc:
        remove unwanted handlerton entries
      sql/ha_heap.cc:
        remove unwanted handlerton entries
      sql/ha_innodb.cc:
        remove unwanted handlerton entries
        changes for show status
      sql/ha_myisam.cc:
        remove unwanted handlerton entries
      sql/ha_myisammrg.cc:
        remove unwanted handlerton entries
      sql/ha_ndbcluster.cc:
        remove unwanted handlerton entries
        changes to stat_print
      sql/ha_partition.cc:
        remove unwanted handlerton entries
        bye bye enum db_type
      sql/ha_partition.h:
        bye bye enum db_type
      sql/handler.cc:
        remove unwanted handlerton entries
        bye bye enum db_type
      sql/handler.h:
        remove unwanted handlerton entries
        bye bye enum db_type
        changes to stat_print_fn
      sql/item_sum.cc:
        bye bye enum db_type
      sql/log.cc:
        remove unwanted handlerton entries
      sql/mysql_priv.h:
        bye bye enum db_type
      sql/mysqld.cc:
        bye bye enum db_type
        reorder plugin initialization
      sql/set_var.cc:
        bye bye enum db_type
      sql/set_var.h:
        bye bye enum db_type
      sql/sql_base.cc:
        bye bye enum db_type
      sql/sql_cache.cc:
        bye bye enum db_type
      sql/sql_class.h:
        bye bye enum db_type
      sql/sql_delete.cc:
        bye bye enum db_type
      sql/sql_insert.cc:
        bye bye enum db_type
      sql/sql_lex.h:
        show plugin
      sql/sql_parse.cc:
        bye bye enum db_type
      sql/sql_partition.cc:
        bye bye enum db_type
      sql/sql_plugin.cc:
        loadable storage engines
      sql/sql_plugin.h:
        loadable storage engines
      sql/sql_rename.cc:
        bye bye enum db_type
      sql/sql_select.cc:
        bye bye enum db_type
      sql/sql_show.cc:
        SHOW PLUGIN
        PLUGINS information schema
        changes to show engines
      sql/sql_table.cc:
        bye bye enum db_type
      sql/sql_view.cc:
        bye bye enum db_type
      sql/sql_view.h:
        bye bye enum db_type
      sql/sql_yacc.yy:
        bye bye enum db_type
      sql/table.cc:
        bye bye enum db_type
      sql/table.h:
        bye bye enum db_type
      sql/unireg.cc:
        bye bye enum db_type
      storage/csv/ha_tina.cc:
        make tina into a loadable plugin
      storage/example/ha_example.cc:
        make into a plugin
      storage/csv/Makefile.am:
        New BitKeeper file ``storage/csv/Makefile.am''
      storage/example/Makefile.am:
        New BitKeeper file ``storage/example/Makefile.am''
      613dd50a
  5. 06 Dec, 2005 1 commit
    • unknown's avatar
      WL#1034 · 70856a0d
      unknown authored
      updated sources
      
      
      sql/event.cc:
        update
        put some error calls to the places they occur
      sql/event.h:
        - change the default (does not work in STRICT mode)
      sql/event_executor.cc:
        move mutex initialization to evex_init_mutexes so init_events() can be reused when the
        main thread does not work and set global event_scheduler=1; (this will start the thread)
        The main thread is now visible with show processlist and can be killed.
      sql/event_priv.h:
        don't use anymore SP for opening table
      sql/event_timed.cc:
        don't use anymore SP routines for opening mysql.event
      sql/mysqld.cc:
        shutdown_events() should be maximal at the end of the server because
        it destroys mutexes of EVEX. The call should not be in the main thread.
      sql/set_var.cc:
        make sys_var_event_executor subclass sys_var_bool_ptr
        to overload ::update() method - needed to start a
        killed (non-running) evex main thread
      sql/set_var.h:
        declare class sys_var_event_executor
      sql/share/errmsg.txt:
        2 new messages
      70856a0d
  6. 10 Nov, 2005 1 commit
    • unknown's avatar
      WL#2971 "change log-bin-trust-routine-creators=0 to apply only to functions". · 5d9c8e95
      unknown authored
      Indeed now that stored procedures CALL is not binlogged, but instead the invoked substatements are,
      the restrictions applied by log-bin-trust-routine-creators=0 are superfluous for procedures.
      They still need to apply to functions where function calls are written to the binlog (for example as "DO myfunc(3)").
      We rename the variable to log-bin-trust-function-creators but allow the old name until some future version (and issue a warning if old name is used).
      
      
      mysql-test/mysql-test-run.pl:
        update to new option name
      mysql-test/mysql-test-run.sh:
        update to new option name
      mysql-test/mysql_test_run_new.c:
        update to new option name
      mysql-test/r/rpl_sp.result:
        result update
      mysql-test/t/rpl_sp-slave.opt:
        we need to skip this error to not hit BUG#14769
      mysql-test/t/rpl_sp.test:
        Test update:
        1) as log-bin-trust-routine-creators now affects only functions, the testing of this option, which was
        mainly done on procedures, is moved to functions
        2) cleanup is simplified; and instead of many SHOW BINLOG EVENTS we do a big one in the end, which is more
        maintainable.
        3) we test a few more function and procedures cases to see how they replicate.
        4) removing out-of-date comments
      sql/item_func.cc:
        This warning is wrong since binlogging of functions was changed in August. If a function fails
        in the middle, it will be binlogged with its error code (i.e. properly).
      sql/mysql_priv.h:
        variable name changed
      sql/mysqld.cc:
        option name changes. A precision about --read-only.
      sql/set_var.cc:
        a new class sys_var_trust_routine_creators to be able to issue a "this is a deprecated variable" warning if used.
      sql/set_var.h:
        new class to be able to issue a "this is a deprecated variable" warning if used.
      sql/share/errmsg.txt:
        routine -> function
      sql/sp.cc:
        log-bin-trust-routine-creators now applies only to functions.
      sql/sql_parse.cc:
        1) sending ER_FAILED_ROUTINE_BREAK_BINLOG is wrong since August as we don't binlog CALL anymore but instead binlog the substatements;
        the clear_error() goes away too as it was necessary only when we created a binlog event from the "CALL" statement.
        2) log-bin-trust-routine-creators now applies only to functions.
      sql/sql_trigger.cc:
        comments.
      5d9c8e95
  7. 06 Nov, 2005 1 commit
    • unknown's avatar
      1. sys_variables[] array is removed. · d090acf3
      unknown authored
      2. All have_xxx variables are now selectable.
      
      
      sql/set_var.cc:
        1. sys_have_xxx variables added.
        2. Removed sys_var *sys_variables[] array as we don't need it any more.
        3. void set_var_init() changed to use sys_var_xxx chain insted of sys_variables[] array.
      sql/set_var.h:
        1. add_sys_var() method added to the sys_var class. It's called from constructors
        to chain all successor objects. The first one is stored in the 'static sys_var *first'.
        The total number of variables is in the 'static uint sys_vars'. Each sys_var successor object
        has the 'sys_var *next' pointer to the next one in the chain. 
        2. sys_var_have_variable class introduced to make all have_xxx variables selectable.
      sql/sql_lex.cc:
        trg_new_row_fake_var(0, 0) replaced with '(sys_var*) 0x01' as we don't want to have such fake variables in the sys_var_xxx chain.
      sql/sql_lex.h:
        Proper use of the changed trg_new_row_fake_var.
      sql/sql_yacc.yy:
        Proper use of the changed trg_new_row_fake_var.
      d090acf3
  8. 13 Sep, 2005 1 commit
    • unknown's avatar
      Fixed BUG#12712: SET AUTOCOMMIT should fail within SP/functions/triggers · 065a9377
      unknown authored
        Second version after review. Allow 'set autocommit' in procedures, but not
        functions or triggers. Can return error in run-time (when a function calls
        a procedure).
      
      
      mysql-test/r/sp-error.result:
        New test case for BUG#12712.
      mysql-test/t/sp-error.test:
        New test case for BUG#12712.
      sql/set_var.cc:
        Made sys_autocommit external, to allow testing in sql_yacc.yy.
      sql/set_var.h:
        Made sys_autocommit external, to allow testing in sql_yacc.yy.
      sql/share/errmsg.txt:
        New error message for disallowing the setting of autocommit in stored functions and triggers.
      sql/sp_head.h:
        New flag: has 'set autocommit', and testing for this in is_not_allowed_in_function().
      sql/sql_yacc.yy:
        Disallow setting AUTOCOMMIT in stored function and triggers.
      065a9377
  9. 07 Sep, 2005 1 commit
    • unknown's avatar
      Fix for bug#11775 Variable character_set_system does not exist (sometimes). · a777907a
      unknown authored
        Variable character_set_system is selectable now
        More accurate error message results during 
        update of character_set_system and some other read only variables
      
      
      mysql-test/r/variables.result:
        Fix for bug#11775 Variable character_set_system does not exist (sometimes).
          test case
      mysql-test/t/variables.test:
        Fix for bug#11775 Variable character_set_system does not exist (sometimes).
          test case
      a777907a
  10. 28 Jul, 2005 1 commit
    • unknown's avatar
      store/restore sql_mode which was in force during ctrigger creation (BUG#5891) · a66928bb
      unknown authored
      other sql_mode fixes
      
      
      mysql-test/r/information_schema.result:
        changes in information schema
      mysql-test/r/trigger.result:
        storing and restoring sql modes for triggers
      mysql-test/t/trigger.test:
        storing and restoring parsing modes for triggers
      sql/mysqld.cc:
        add length of mode names
      sql/parse_file.cc:
        new type of list (ulonglong)
      sql/parse_file.h:
        new type of list (ulonglong)
      sql/set_var.cc:
        mode output made as static method
      sql/set_var.h:
        mode output made as static method
      sql/sp_head.cc:
        added sql_mode storing/restoring during SP execution
        optimised sql_mode printing
      sql/sp_head.h:
        comment fixed according this changes
      sql/sql_show.cc:
        added sql_mode field
      sql/sql_trigger.cc:
        store/restore sql_mode which was in force during ctrigger creation
      sql/sql_trigger.h:
        store/restore sql_mode which was in force during ctrigger creation
      sql/sql_view.cc:
        fixed sql_mode
      a66928bb
  11. 22 Jul, 2005 1 commit
    • unknown's avatar
      Faster alter table code for 5.1. · f1e25513
      unknown authored
      mysql-test/r/alter_table.result:
        Added some additional tests for new alter table code.
      mysql-test/t/alter_table.test:
        Added some additional tests for new alter table code.
      sql/field.cc:
        Functions to check whether new field is equal with old field.
        Classes for different types.
      sql/field.h:
        Functions to check whether new field is equal with old field.
        Classes for different types.
      sql/ha_berkeley.cc:
        check_if_incompatible_data() for BDB.
      sql/ha_berkeley.h:
        check_if_incompatible_data() for BDB.
      sql/ha_heap.cc:
        check_if_incompatible_data() for HEAP.
      sql/ha_heap.h:
        check_if_incompatible_data() for HEAP.
      sql/ha_innodb.cc:
        check_if_incompatible_data() for InnoDB.
      sql/ha_innodb.h:
        check_if_incompatible_data() for InnoBD.
      sql/ha_myisam.cc:
        check_if_incompatible_data() for MyISAM.
      sql/ha_myisam.h:
        check_if_incompatible_data() for MyISAM.
      sql/ha_myisammrg.cc:
        check_if_incompatible_data() for Merge tables.
      sql/ha_myisammrg.h:
        check_if_incompatible_data() for Merge tables.
      sql/ha_ndbcluster.cc:
        check_if_incompatible_data() for NDB.
      sql/ha_ndbcluster.h:
        check_if_incompatible_data() for NDB.
      sql/handler.h:
        Defines for COMPATIBLE_DATA (yes and no) and the default function
        for check_if_incompatible_data().
      sql/mysql_priv.h:
        Defines for IS_EQUAL_*
      sql/mysqld.cc:
        Added option --old-alter-table to disable new alter table code.
      sql/set_var.cc:
        Added option --old-alter-table to disable new alter table code.
      sql/set_var.h:
        Added option --old-alter-table to disable new alter table code.
      sql/sql_class.h:
        Added option --old-alter-table to disable new alter table code.
      sql/sql_lex.h:
        Added a flag for forcing recreation of a table
        (needed for optimize table mapped to alter table)
      sql/sql_table.cc:
        Made a function of setting table default charset, used
        now in two places.
        
        Added defines for ALTER_TABLE_* possible changes.
        Currently just overall data and index.
        
        Added function compare_tables, which checks fields
        compatibility in old and new tables.
      BitKeeper/etc/config:
        Disabled logging
      f1e25513
  12. 15 Jul, 2005 1 commit
    • unknown's avatar
      A fix and a test case for Bug#9359 "Prepared statements take snapshot · e83e1053
      unknown authored
       of system vars at PREPARE time": implement a special Item
      to handle system variables. This item substitutes itself with 
      a basic constant containing variable value at fix_fields.
      
      
      mysql-test/r/ps.result:
        - test results fixed (Bug#9359).
      mysql-test/t/ps.test:
        - add a test case for Bug#9359 "Prepared statements take snapshot
         of system vars at PREPARE time"
      sql/item_func.cc:
        - implement Item_func_get_system_var: we should not evaluate system
        variables in the parser, but instead should create an item which 
        is evaluated to a constant at execute.
        - remove an unused function
      sql/item_func.h:
        Add a new item, Item_func_get_system_var
      sql/mysql_priv.h:
        Move necessary declarations to make set_var.h objects visible in 
        item_func.h
      sql/set_var.cc:
        - we should not print to network from get_system_var: if it's called
        from prepared statement prepare, we get packets out of order when using
        the binary protocol. Instead report the error to be sent to the user later.
        This is a backport from 5.0.
      sql/set_var.h:
        - declaration of enum_var_type moved to mysql_priv.h
      e83e1053
  13. 13 Jun, 2005 1 commit
    • unknown's avatar
      fixes for windows 64-bit compiler warnings · ba144e22
      unknown authored
      heap/hp_hash.c:
        fix for windows 64-bit compiler warnings
      heap/hp_update.c:
        fix for windows 64-bit compiler warnings
      mysys/default.c:
        fix for windows 64-bit compiler warnings
      mysys/default_modify.c:
        fix for windows 64-bit compiler warnings
      mysys/mf_iocache.c:
        fix for windows 64-bit compiler warnings
      mysys/mf_keycache.c:
        fix for windows 64-bit compiler warnings
      mysys/my_alloc.c:
        fix for windows 64-bit compiler warnings
      mysys/my_getopt.c:
        fix for windows 64-bit compiler warnings
      mysys/my_mmap.c:
        fix for windows 64-bit compiler warnings
      mysys/my_once.c:
        fix for windows 64-bit compiler warnings
      mysys/string.c:
        fix for windows 64-bit compiler warnings
      sql-common/client.c:
        fix for windows 64-bit compiler warnings
      sql/field.cc:
        fix for windows 64-bit compiler warnings
      sql/gstream.cc:
        fix for windows 64-bit compiler warnings
      sql/ha_myisam.cc:
        fix for windows 64-bit compiler warnings
      sql/ha_myisammrg.cc:
        fix for windows 64-bit compiler warnings
      sql/item.cc:
        fix for windows 64-bit compiler warnings
      sql/item.h:
        fix for windows 64-bit compiler warnings
      sql/item_cmpfunc.cc:
        fix for windows 64-bit compiler warnings
      sql/password.c:
        fix for windows 64-bit compiler warnings
      sql/set_var.h:
        fix for windows 64-bit compiler warnings
      strings/ctype-big5.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-bin.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-cp932.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-eucjpms.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-mb.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-simple.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-sjis.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-uca.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-ucs2.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-ujis.c:
        fix for windows 64-bit compiler warnings
      strings/ctype-utf8.c:
        fix for windows 64-bit compiler warnings
      strings/ctype.c:
        fix for windows 64-bit compiler warnings
      strings/decimal.c:
        fix for windows 64-bit compiler warnings
      strings/xml.c:
        fix for windows 64-bit compiler warnings
      ba144e22
  14. 18 May, 2005 1 commit
  15. 13 May, 2005 1 commit
  16. 04 May, 2005 1 commit
    • unknown's avatar
      BUG#10241 cygwin port: invalid pragma interface directives · 9ab5f614
      unknown authored
       - Introduce ifdefs so we can control when to use #pragma interface on cygwin
      
      
      include/my_global.h:
        Turn on use of #pragma implementation and #pragma interface if compiled with GCC and platform != Cygwin
      include/raid.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_archive.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/examples/ha_example.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/field.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_berkeley.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_blackhole.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_heap.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_innodb.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_isammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisam.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_myisammrg.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/ha_ndbcluster.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/handler.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_cmpfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_func.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_geofunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_strfunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_subselect.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_sum.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/item_timefunc.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/opt_range.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/procedure.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/protocol.h:
        replace __GNUC__ with USE_PRAGMA_IMPLEMENTATION
      sql/set_var.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_class.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_list.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_select.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_string.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/sql_udf.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      sql/tztime.h:
        replace __GNUC__ with USE_PRAGMA_INTERFACE
      9ab5f614
  17. 21 Mar, 2005 1 commit
    • unknown's avatar
      Last part of WL#1062: better replication of timezones: no more use · ac46bf77
      unknown authored
      of SET ONE_SHOT; storing tz info directly in event (if this info is needed),
      it's now allowed to have different global tz on master and slave.
      
      
      client/mysqlbinlog.cc:
        we need MAX_TIME_ZONE_NAME_LENGTH when processing log_event.h, and it's declared in mysql_priv.h
      mysql-test/r/rpl_timezone.result:
        result update
      mysql-test/t/rpl_timezone-slave.opt:
        Now that we can have different global value of timezone on master and slave, let's test it.
      mysql-test/t/rpl_timezone.test:
        Tests of the new replication of timezones: checking the output of mysqlbinlog,
        replication of CONVERT_TZ().
      sql/ha_innodb.cc:
        No very fast shutdown on Netware (anyway it's disabled on all platforms,
        but this is so that we don't forget to keep it disabled on Netware in the future).
      sql/log.cc:
        No more need to write SET ONE_SHOT to binlog for character set and timezone
        (as we store this info  directly nin the Query_log_event now).
      sql/log_event.cc:
        Exclude ::write() methods if MYSQL_CLIENT.
        Storing timezone info in the Query_log_event in master. Re-reading it in slave.
        Small code cleanups. I plan to not store the end 0 of catalog in binlog
        events soon.
      sql/log_event.h:
        replication of time zones: a place for tz info in Query_log_event,
        in LAST_EVENT_INFO. Plus if we are compiling a client, we don't need
        the ::write() methods, so keeping them out (of mysqlbinlog.cc;
        keeping them in, resulted in problem that mysqlbinlog does not know Timezone
        structure).
      sql/mysql_priv.h:
        moving this define from tztime.h (tztime.h has things which are
        too much for a client like mysqlbinlog).
      sql/set_var.cc:
        It's now allowed to change global value of charset or timezone even if using binlogging
        or if being a slave.
        Making CONVERT_TZ(,,@@session.time_zone) replicate.
      sql/set_var.h:
        these ::check()s are not needed anymore (changing global charset
        or timezone is now allowed even if binlogging or slave)
      sql/slave.cc:
        No more need to check for same global timezone if master is 5.x
        (ok, strictly speaking if it is > 5.0.3 but this is alpha).
      sql/slave.h:
        a function to wrap settings of charset to default.
      sql/tztime.cc:
        Adaptation of my_tz_find() to the case where it's not called from inside
        a query (i.e. cannot join its tz tables to the query's ones): this variant
        opens the tz tables itself, reads from them, and closes them. This is presently
        only used by the slave SQL thread (when it sets the tz before executing a query).
      sql/tztime.h:
        declaration of new function, plus moving symbol to mysql_priv.h
        for easier usage in mysqlbinlog (Dmitri, pardon me).
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      ac46bf77
  18. 17 Feb, 2005 1 commit
    • unknown's avatar
      bug#6958 · 23f786b0
      unknown authored
      Fixed that negative arguments to certain integer options wrap around.
      
      
      mysql-test/r/variables.result:
        Added a test case for bug#6958.
      mysql-test/t/variables.test:
        Added a test case for bug#6958.
      sql/set_var.cc:
        sys_var_long_ptr::check function was added.
      sql/set_var.h:
        Use sys_var_long_ptr::check function for sys_var_long_ptr class.
      23f786b0
  19. 03 Feb, 2005 1 commit
    • unknown's avatar
      WL#1062 "log charset info into all Query_log_event": · 7636b12f
      unknown authored
      we store 7 bytes (1 + 2*3) in every Query_log_event.
      In the future if users want binlog optimized for small size and less safe,
      we could add --binlog-no-charset (and binlog-no-sql-mode etc): charset info
      is something by design optional (even if for now we don't offer possibility to disable it):
      it's not a binlog format change.
      We try to reduce the number of get_charset() calls in the slave SQL thread to a minimum
      by caching the charset read from the previous event (which will often be equal to the one of the current event).
      We don't use SET ONE_SHOT for charset-aware repl (we still do for timezones, will be fixed later).
      No more errors if one changes the global value of charset vars on master or slave
      (as we log charset info in all Query_log_event).
      Not fixing Load_log_event as it will be rewritten soon by Dmitri.
      Testing how mysqlbinlog behaves in rpl_charset.test.
      mysqlbinlog needs to know where charset file is (to be able to convert a charset number found
      in binlog (e.g. in User_var_log_event) to a charset name); mysql-test-run needs to pass
      the correct value for this option to mysqlbinlog.
      Many result udpates (adding charset info into every event shifts log_pos in SHOW BINLOG EVENTS).
      Roughly the same job is to be done for timezones :)
      
      
      client/mysqlbinlog.cc:
        mysqlbinlog needs charsets knowledge, to be able to convert a charset
        number found in binlog to a charset name (to be able to print things
        like this:
        SET @`a`:=_cp850 0x4DFC6C6C6572 COLLATE `cp850_general_ci`;
      mysql-test/mysql-test-run.sh:
        tell mysqlbinlog about charsets dir
      mysql-test/r/ctype_ucs.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/drop_temp_table.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/insert_select.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mix_innodb_myisam_binlog.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mysqlbinlog.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mysqlbinlog2.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
        The log_pos shift is why the SET INSERT_ID=4 event changes position in the result.
      mysql-test/r/rpl_charset.result:
        Running mysqlbinlog to check how it behaves on charset stuff.
        SET ONE_SHOT is now gone.
        Repl of LOAD DATA INFILE is not yet charset-aware (will soon be, when WL#874 is pushed)
        and, anyway result has a dependency on the temp filename (SQL-LOAD-*-[0-9] which is not constant).
        No more errors if one changes global character sets.
      mysql-test/r/rpl_error_ignored_table.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_flush_log_loop.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_flush_tables.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_loaddata.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_loaddata_rule_m.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_log.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_max_relay_size.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_relayrotate.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_replicate_do.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_rotate_logs.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_temporary.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_timezone.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_user_variables.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/user_var.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/t/rpl_charset.test:
        Running mysqlbinlog to check how it behaves on charset stuff (so, need fixed timestamp).
        SET ONE_SHOT is not printed to binlog anymore, so no need to test if ::exec_event() works ok.
        Repl of LOAD DATA INFILE is not yet charset-aware (will soon be, when WL#874 is pushed)
        and, anyway result has a dependency on the temp filename (SQL-LOAD-*-[0-9] which is not constant).
        No more errors if one changes global character sets.
      mysql-test/t/rpl_user_variables.test:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      sql/log.cc:
        No more SET ONE_SHOT for charsets (remains for TZ until solved with Dmitri).
      sql/log_event.cc:
        We now log charset info in each Query_log_event in binlog. It's 2*3 = 6 bytes:
        session character_set_client, session collation_connection, session collation_server.
        Now we would need only one byte per variable, but Bar said 2 is safer for the future.
        When slave or mysqlbinlog reads that info, it needs to get_charset() on these numbers (so, 3 get_charset() calls),
        as most of the time the 6-byte charset info will be equal to the previous event's,
        we cache the previous event's charset and if equal, no need to get_charset().
        As "flags2", SQL_MODE, catalog, autoinc variables, charset info is not a permanent addition:
        in the future we can add options to the master to not log any of these, old 5.0 should be able
        to parse these.
        A little bit of cleanup on autoinc stuff in replication.
        Fixing a bug in Start_log_event_v3::exec_event() where we used rli->relay_log.description_event_for_exec->binlog_version
        while we should use binlog_version (if it's a 3.23 master, that's all that counts; not the fact that the relay log is
        in 5.0 format).
      sql/log_event.h:
        binlogging of charset info in each Query_log_event.
      sql/mysql_priv.h:
        comment
      sql/set_var.cc:
        checks to refuse change of global charset variables are removed: they were needed for 4.1->4.1
        but not for 5.0.3->5.0.3.
        Yes this opens a breach if one does 4.1->5.0.3, where the checks would still be needed. But these checks would need
        reading relay_log.description_event_for_queue, which is currently an object used in many places by the I/O
        thread and only it. So, currently we don't take mutexes for this object, and if we read the object in set_var.cc
        (client thread) we need to add mutexes everywhere, but the replication code is already too broken with mutexes
        now (no consistent use of mutexes); mutex usage in replication should be fixed but preferrably during/after
        multimaster coding as it's going to shuffle mutexes already.
      sql/set_var.h:
        Since we don't forbid global change of charset vars for replication/binlogging,
        don't need specific ::check() methods anymore
      sql/slave.cc:
        Some little debug info which has nothing to do with charsets.
        Disabling master's charset check when slave I/O thread connects.
        Functions for charset caching/invalidating in the slave SQL thread.
      sql/slave.h:
        Cached charset in the slave SQL thread.
      7636b12f
  20. 26 Jan, 2005 1 commit
    • unknown's avatar
      Fix for bug #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ() function · 20bd0bd6
      unknown authored
      does not work well together". Now using simplier and more correct
      implementation of st_lex::unlink_first_table()/link_first_table_back() 
      (It also nicely handles case when global table list is created because
      of implictly used time zone tables). (2nd attempt)
      
      Fix for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
      column". Implemented new approach for caching objects for constant
      time zone arguments. Now instead of determining whenever these arguments
      are constants and performing time zone lookup at fix_fields() stage, we
      do it on first get_date() invocation.
      
      Cleanup of global @@time_zone variable handling.
      
      
      mysql-test/r/timezone2.result:
        Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on
        index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ()
        function does not work well together".
      mysql-test/t/timezone2.test:
        Added test for bugs #7705 "CONVERT_TZ() crashes with subquery/WHERE on
        index column" and #7899 "CREATE TABLE .. SELECT .. and CONVERT_TZ()
        function does not work well together".
      sql/item_timefunc.cc:
        Item_func_convert_tz():
          New approach for caching objects for constant time zone arguments.
          Now instead of determining whenever these arguments are constants
          and performing time zone lookup at fix_fields() stage, we do it
          on first get_date() invocation. This works better in cases when 
          const_item() for these arguments returns true only on get_date()
          stage but not on fix_fields() stage (e.g. this happens in quries
          with joins or derived tables).
      sql/item_timefunc.h:
        Item_func_convert_tz():
          Added from_tz_cached/to_tz_cached members indicating whenever we
          already have Time_zone object representing one of constant time zone
          arguments.
      sql/set_var.cc:
        Cleaned up global @@time_zone variable handling. Now we use proper
        locking when we are setting or reading its value.
      sql/set_var.h:
        Removed declaration of sys_var_thd_time_zone::get_tz_ptr() method, which
        no longer used.
      sql/sql_lex.cc:
        st_lex::unlink_first_table(), st_lex::link_first_table_back():
         Simplify implementation according to Monty's suggestion.
         Instead doing something special if global and local table lists
         are the same, we simply save/restore pointers to first elements
         of both global and local lists (which works even when this lists
         are the same!). This handles nicely the case when we have separate
         global table list becuase time zone tables are implicitly used.
      sql/tztime.cc:
        Backport of Monty's fixes from 5.0, which give us nicer error messages
        if we haven't found time zone with such name or its description.
      20bd0bd6
  21. 19 Jan, 2005 1 commit
    • unknown's avatar
      Fix for bug #7637: "Test failure: 'user_limits' on QNX and 64-bit systems" · 1f6070a4
      unknown authored
      Made user_limits.test scheduling independant (this solves failure on QNX).
      
      Made sys_var_max_user_conn variable int sized. Changed 
      max_user_connections from ulong to uint to be able to use it in 
      sys_var_max_user_conn::value_ptr() (solves failures on 64-bit platforms).
      
      
      mysql-test/r/user_limits.result:
        Made test scheduling independant.
      mysql-test/t/user_limits.test:
        Made test scheduling independant.
      sql/mysql_priv.h:
        Made max_user_connections to be the same size as
        USER_RESOURCES::user_conn (to be able to use them in
        sys_var_max_user_conn::value_ptr()).
      sql/mysqld.cc:
        Made max_user_connections to be the same size as
        USER_RESOURCES::user_conn (to be able to use them in
        sys_var_max_user_conn::value_ptr()).
      sql/set_var.cc:
        sys_var::item():
          Added support for int system variables.
      sql/set_var.h:
        Made sys_var_max_user_conn to be int sized variable.
      1f6070a4
  22. 16 Jan, 2005 1 commit
    • unknown's avatar
      XA (not completely polished out yet) · 88bd301d
      unknown authored
      include/my_pthread.h:
        cleanup. don't use gcc extensions
      innobase/include/trx0sys.ic:
        Jan's fix for innobase_xa_prepare
      innobase/read/read0read.c:
        Jan's fix for innobase_xa_prepare
      innobase/trx/trx0trx.c:
        Jan's fix for innobase_xa_prepare
      mysql-test/include/varchar.inc:
        test fix
      mysql-test/r/ctype_ucs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/drop_temp_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/insert_select.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/mix_innodb_myisam_binlog.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/myisam.result:
        test fix
      mysql-test/r/rpl000015.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_change_master.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_charset.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_error_ignored_table.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_log_loop.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_flush_tables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_m.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_loaddata_rule_s.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_log_pos.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_max_relay_size.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_relayrotate.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_replicate_do.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_reset_slave.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_rotate_logs.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id1.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_server_id2.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_temporary.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_timezone.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_until.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/rpl_user_variables.result:
        new log event - all binlog positions are changed :(
      mysql-test/r/user_var.result:
        new log event - all binlog positions are changed :(
      mysql-test/t/ctype_ucs.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mix_innodb_myisam_binlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/mysqlbinlog2.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_charset.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_error_ignored_table.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_m.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_loaddata_rule_s.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_log_pos.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/rpl_user_variables.test:
        new log event - all binlog positions are changed :(
      mysql-test/t/user_var.test:
        new log event - all binlog positions are changed :(
      mysys/hash.c:
        typo fixed
      sql/ha_berkeley.cc:
        handlerton framework
      sql/ha_berkeley.h:
        handlerton framework
      sql/ha_innodb.cc:
        handlerton framework
      sql/ha_innodb.h:
        handlerton framework
      sql/handler.cc:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/handler.h:
        new transaction handling, handlerton framework, two-phase commit, XA support
      sql/lex.h:
        XA commands
      sql/log.cc:
        new transaction handling, handlerton framework, two-phase commit,
        XA support, tc-logging, TC_LOG_MMAP class
      sql/log_event.cc:
        Xid_log_event
      sql/log_event.h:
        Xid_log_event, LOG_EVENT_BINLOG_CLOSED_F flag
      sql/mysql_priv.h:
        wrapper for query_id++
      sql/mysqld.cc:
        new command-line options --log-tc, --log-tc-size, --tc-heuristic-recover,
        new status variables Tc_log_page_size, Tc_log_max_pages_used, Tc_log_page_waits.
        init/stop tc logging
      sql/set_var.h:
        warning fixed
      sql/share/errmsg.txt:
        XA error messages
      sql/sp_head.cc:
        s/query_id++/next_query_id()/
      sql/sql_base.cc:
        typo fixed. new transaction handling.
      sql/sql_class.cc:
        cleanup of THD.transaction
      sql/sql_class.h:
        TC_LOG classes, new status variables, new savepoint handling, XA support
      sql/sql_insert.cc:
        comments
      sql/sql_lex.cc:
        s/found_colon/found_semicolon/
      sql/sql_lex.h:
        SQLCOM_XA_xxx, XA related changes in Lex
      sql/sql_parse.cc:
        cleanup, XA commands, new savepoint handling
      sql/sql_repl.cc:
        two functions moved to log.cc
      sql/sql_repl.h:
        two functions moved to log.cc
      sql/sql_trigger.cc:
        s/lex.name_and_length/lex.ident/
      sql/sql_yacc.yy:
        XA commands, cleanup
      88bd301d
  23. 29 Dec, 2004 1 commit
    • unknown's avatar
      WL#1339 "Add per account max_user_connections limit (maximum number · 05b709fc
      unknown authored
      of concurrent connections for the same account)"
      
      Added support of account specific max_user_connections limit. Made all
      user limits to be counted per account instead of the old behavior,
      which was per user/host accounting. Added option which enables the old
      behavior. Added testing of these to the test suite.
      
      (After review version).
      
      
      client/mysqltest.c:
        Extended mysqltest to be able to handle connect() statements for which
        error is expected.
        
        - Added replace_dynstr_append() utility function.
        - added connect_n_handle_errors() function which connects with server
          without retries and handles errors as if "connect" was usual
          statement.
        - do_connect(): added ability to handle connects which are expected
          to return an error.
        - run_query_normal(): Moved all expected-error-handling code to separate
          normal_handle_error()/normal_handle_no_error() functions to be able
          to reuse them in connect_n_handle_errors().
      mysql-test/r/grant.result:
        Fixed test results since one more column to mysql.user was added.
      mysql-test/r/system_mysql_db.result:
        Fixed test results since one more column to mysql.user was added.
      scripts/mysql_create_system_tables.sh:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      scripts/mysql_fix_privilege_tables.sql:
        Added max_user_connections column to mysql.user table for storing
        new maximal concurrent connections per account limit.
      sql/lex.h:
        Added MAX_USER_CONNECTIONS symbol used for specifying
        maximum number of concurrent connections per account.
      sql/mysql_priv.h:
        Added declaration of opt_old_style_user_limits variable which is defined
        in sql/mysqld.cc used in sql/sql_parse.cc.
      sql/mysqld.cc:
        Added "old-style-user-limits" option which forces user limits to behave
        in old way i.e. to be counted per user/host pair instead of per account.
        Added comment describing mqh_used variable.
      sql/set_var.cc:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/set_var.h:
        Added sys_var_max_user_conn class which implements support for the new 
        behavior of max_user_connections variable. Now the global instance of
        this variable holds default maximum number of concurrent connections per
        account (as it was before) and the session instance gives read-only
        access to account-specific version of this limit.
      sql/sql_acl.cc:
        Added support for account-specific MAX_USER_CONNECTIONS limit.
        Tweaked USER_RESOURCES and their handling for better clarity.
      sql/sql_parse.cc:
        Added support for account-specific MAX_USER_CONNECTIONS (maximum number
        of concurrent connections per account) limit. Changed default behavior
        of all user limits to be per account instead of per user+host.
        '--old-style-user-limits' option was added to enable the old behavior.
        Made maximum number of connections per hour to be independant on the
        value of global max_user_connections variable.
      sql/sql_yacc.yy:
        Added support of new MAX_USER_CONNECTIONS limit to grammar.
        Renamed USER_RESOURCES::connections member to conn_per_hour and bits
        member to specified_limits. Also enum is used instead of naked numbers
        when we are working with specified_limits.
      sql/structs.h:
        USER_RESOURCES struct:
         - Added user_conn member to store the maximum number of concurrent 
           connections for an account. Renamed connections member to 
           conn_per_hour for less ambiguity.
         - Renamed member 'bits' to 'specified_limits' for the sake of clarity.
           The member was used as a flag indicating which limits were mentioned
           in GRANT clause.
         - Added comments.
        USER_CONN struct:
         - Removed unused user_len member.
         - Added comments.
      05b709fc
  24. 10 Aug, 2004 1 commit
    • unknown's avatar
      Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server". · 68d7b266
      unknown authored
      Instead of trying to open time zone tables during calculation of CONVERT_TZ() function
      or setting of @@time_zone variable we should open and lock them with the rest of 
      statement's table (so we should add them to global table list) and after that use such 
      pre-opened tables for loading info about time zones.
      
      
      mysql-test/r/timezone2.result:
        Added test for bug #4508
      mysql-test/t/timezone2.test:
        Added test for bug #4508
      scripts/mysql_create_system_tables.sh:
        Added one more test time zone to time zone tables which is needed for test for bug #4508.
      sql/item_create.cc:
        CONVERT_TZ() now is treated as special function.
      sql/item_create.h:
        CONVERT_TZ() now is treated as special function.
      sql/item_timefunc.cc:
        Item_func_convert_tz now uses list of pre-opened time zone tables instead of trying to
        open them ad-hoc. Also it avoid calling of current_thd.
      sql/item_timefunc.h:
        Added comment describing special nature of CONVERT_TZ() function.
        Optimization: Added own fix_fields() method and tz_tables member for caching pointer
        to list of open time zone tables to Item_func_convert_tz class.
      sql/lex.h:
        CONVERT_TZ() now is treated as special function.
      sql/mysql_priv.h:
        Removed function which is no longer used.
      sql/set_var.cc:
        Now my_tz_find() accepts list of pre-opened time zone tables as last argument 
        and no longer needs pointer to current THD.
      sql/set_var.h:
        Exported sys_time_zone, which is now used in sql_yacc.yy for quick finding out if we are
        setting @@time_zone variable.
      sql/sql_base.cc:
        Moved propagation of pointers to open tables from global list to local select lists to
        open_and_lock_tables(), also added implicit usage of time zone tables as condition for
        such propagation.
      sql/sql_lex.cc:
        Added fake_time_zone_tables_list which is used to indicate that time zone tables are
        implicitly used in statement.
        st_select_lex_unit::create_total_list(): if time zone tables are implicitly used in
        statement add them to global tables list.
      sql/sql_lex.h:
        Added LEX::time_zone_tables_used member which is used to indicate that time zone tables 
        are implicitly used in this statement (by pointing to fake_time_zone_table_list) and 
        for holding pointer to those tables after they've been opened.
      sql/sql_parse.cc:
        We should also create global table list if statement uses time zone tables implicitly.
        Added initialization of LEX::time_zone_tables_used to mysql_query_init().
      sql/sql_prepare.cc:
        We should also create global table list if statement uses time zone tables implicitly.
      sql/sql_select.cc:
        Removed functions which are no longer used.
      sql/sql_yacc.yy:
        CONVERT_TZ() and @@time_zone variable are handled in special way since they implicitly 
        use time zone tables.
      sql/tztime.cc:
        Fix for bug #4508 "CONVERT_TZ() function with new time zone as param crashes server".
        If statement uses CONVERT_TZ() function or @@time_zone variable is set then it implicitly
        uses time zone tables. We need to open and lock such tables with all other tables of 
        such statement.
        
        All code responsible for opening table was removed from tz_load_from_db() and function was 
        renamed to tz_load_from_open_tables() (which uses list of pre-opened tables).
        We also have new functions for construction and initialization of table list of time
        zone tables.
        my_tz_find() now always require list of pre-opened time zone tables and no longer needs
        current THD. So we have to pre-open them in my_tz_init().
        Also now we try to open time zone tables only if they were found during startup.
      sql/tztime.h:
        New function for construction of table list of time zone tables my_tz_get_table_list().
        Now my_tz_find() requires list of pre-pened time zone tables instead of current thread.
      68d7b266
  25. 15 Jul, 2004 1 commit
    • unknown's avatar
      after merge fixes (making rpl_charset and rpl_timezone pass). · 898ceb0f
      unknown authored
      Replication of charsets and timezones should shortly be changed to not need ONE_SHOT
      (but 5.0 should still be able to read it, to be able to replicate 4.1 masters).
      
      
      mysql-test/r/rpl_charset.result:
        result update after the merge (only binlog positions differ from 4.1)
      mysql-test/r/rpl_timezone.result:
        result update after the merge (only binlog positions differ from 4.1)
      sql/log.cc:
        use ONE_SHOT to save charset and TZ info in the binlog (until I rewrite this soon)
      sql/set_var.cc:
        Even if in the future, 5.0 will not use ONE_SHOT in ITS binlog, it must still be able to interpret it, to make 4.1->5.0 replication possible
      sql/set_var.h:
        Even if in the future, 5.0 will not use ONE_SHOT in ITS binlog, it must still be able to interpret it, to make 4.1->5.0 replication possible
      898ceb0f
  26. 24 Jun, 2004 1 commit
    • unknown's avatar
      Fix for Bug#4030 "Client side conversion string -> date type doesn't · 9dde4188
      unknown authored
      work (prepared statements)" and after-review fixes:
      - str_to_TIME renamed to str_to_datetime to pair with str_to_time
      - functions str_to_time and str_to_TIME moved to sql-common
      - send_data_str now supports MYSQL_TYPE_TIME, MYSQL_TIME_DATE,
        MYSQL_TIME_DATETIME types of user input buffers.
      - few more comments in the client library
      - a test case added.
      
      
      VC++Files/libmysql/libmysql.dsp:
        new file: my_time.c
      VC++Files/libmysqld/libmysqld.dsp:
        new file: my_time.c
      VC++Files/sql/mysqld.dsp:
        new file: my_time.c
      include/Makefile.am:
        - mysql_time.h added to the list of installed client library headers
      include/mysql.h:
        - declarations for MYSQL_TIME and enum_mysql_timestamp_type moved to 
        mysql_time.h, which is in shared use of client library and mysys.
      libmysql/Makefile.shared:
        - my_time.lo added to the list of libmysql objects
      libmysql/libmysql.c:
        Fix for bug#4030 "Client side conversion string -> date type doesn't work
         (prepared statements)" and cleanup.
        - added case labels for TIME/DATE/DATETIME types to send_data_str
        - comments for read_binary_{date,time,datetime}, fetch_result_*, fetch_results.
      libmysqld/Makefile.am:
        - my_time.c added
      sql-common/Makefile.am:
        - my_time.c added to the list of files included into source distribution.
      sql/Makefile.am:
        my_time.c added to the list of mysqld sources.
      sql/field.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/item.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/item_timefunc.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/mysql_priv.h:
        - added typedefs for TIME and timestamp_type
        - removed declarations for str_to_time and str_to_TIME (now this functions
          reside in mysys)
      sql/mysqld.cc:
        - log_10_int moved to mysys (it's used by str_to_TIME and str_to_time)
        - enum values TIMESTAMP_{TIME,DATE,DATETIME} were renamed to
          MYSQL_TIMESTAMP_{TIME,DATE,DATETIME}
      sql/set_var.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      sql/set_var.h:
        - fixed timestamp_type usage to be compatible with typedef.
      sql/sql_prepare.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME} were renamed to
          MYSQL_TIMESTAMP_{TIME,DATE,DATETIME}
        - embedded library implementation of set_param_{time,date,datetime} is
        much simplier now, as MYSQL_TIME is the same as TIME.
      sql/sql_yacc.yy:
        - s/\<TIMESTAMP_/MYSQL_TIMESTAMP/gc
      sql/structs.h:
        - declarations for TIME and timestamp_type replaced with typedefs
        - str_to_datetime arguments moved to mysys headers
      sql/time.cc:
        - str_to_time and str_to_TIME moved to mysys
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...} as these names are now
          exported to client.
        - str_to_TIME renamed to str_to_datetime to pair with str_to_time
        - str_to_TIME_with_warn renamed accordingly
      sql/tztime.cc:
        - TIMESTAMP_{TIME,DATE,DATETIME,...} renamed to 
          MYSQL_TIMESTAMP_{TIME,DATETIME,DATE,...}
      tests/client_test.c:
        - a test case for Bug#4030 "Client side conversion string -> date type 
        doesn't work (prepared statements)"
      9dde4188
  27. 18 Jun, 2004 1 commit
    • unknown's avatar
      WL#1264 "Per-thread time zone support infrastructure". · 6aaccbcb
      unknown authored
      Added basic per-thread time zone functionality (based on public
      domain elsie-code). Now user can select current time zone
      (from the list of time zones described in system tables).
      All NOW-like functions honor this time zone, values of TIMESTAMP
      type are interpreted as values in this time zone, so now
      our TIMESTAMP type behaves similar to Oracle's TIMESTAMP WITH
      LOCAL TIME ZONE (or proper PostgresSQL type).
        
      WL#1266 "CONVERT_TZ() - basic time with time zone conversion 
      function".
        
      Fixed problems described in Bug #2336 (Different number of warnings 
      when inserting bad datetime as string or as number). This required
      reworking of datetime realted warning hadling (they now generated 
      at Field object level not in conversion functions).
        
      Optimization: Now Field class descendants use table->in_use member
      instead of current_thd macro.
      
      
      include/my_global.h:
        Added macro for reading of 32-bit ints stored in network order from
        unaligned memory location.
      include/mysqld_error.h:
        Added error-code for invalid timestamp warning and error-code
        for wrong or unknown time zone specification.
      libmysqld/Makefile.am:
        Added main per-thread time zone support file to libmysqld
      libmysqld/lib_sql.cc:
        Added initialization of time zones infrastructure to embedded server.
      mysql-test/r/connect.result:
        Updated test result since now mysql database contains more
        system tables.
      mysql-test/r/date_formats.result:
        Now when truncation occurs during conversion to datetime value we are producing Warnings 
        instead of Notes. Also we are giving more clear warnings about this in some cases.
      mysql-test/r/func_sapdb.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling.
      mysql-test/r/func_time.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling.
      mysql-test/r/select.result:
        New warnings about truncation occured during conversion to datetime value added due
        their better handling. Also tweaked test a bit to made it less ambigious for reader.
      mysql-test/r/system_mysql_db.result:
        Updated test result because new system tables holding time zone descriptions were 
        added.
      mysql-test/r/timezone.result:
        Updated timezone.test to use new system variable which shows system time zone.
        Added test of warning which is produced if someone tries to store non-existing (due 
        falling into spring time-gap) datetime value into TIMESTAMP field.
      mysql-test/r/type_datetime.result:
        Separated and extended test of values and warnings produced for bad values stored in 
        DATETTIME fields.
      mysql-test/r/type_time.result:
        Now we are producing more consistent warning when we are truncating datetime value while
        storing it in TIME field.
      mysql-test/r/type_timestamp.result:
        Separated and extended test of values and warnings produced for bad
        values stored in TIMESTAMP fields.
      mysql-test/t/select.test:
        Updated test to make it less ambigous for reader.
      mysql-test/t/timezone.test:
        Updated timezone.test to use new system variable which shows system time zone.
        Added test of warning which is produced if someone tries to store non-existing (due 
        falling into spring time-gap) datetime value into TIMESTAMP field.
      mysql-test/t/type_datetime.test:
        Separated and extended test of values and warnings produced for bad
        values stored in DATETTIME fields.
      mysql-test/t/type_timestamp.test:
        Separated and extended test of values and warnings produced for bad
        values stored in TIMESTAMP fields.
      scripts/mysql_create_system_tables.sh:
        Added creation of tables with time zone descriptions.
        Also added descriptions of time zones used in tests.
      scripts/mysql_fix_privilege_tables.sql:
        Added mysql.time_zone* tables family.
      sql/Makefile.am:
        Added files implementing time zone support to server, also added
        rules for building of mysql_tzinfo_to_sql converter and test_time
        test.
      sql/field.cc:
        Now we are using per-thread time zone for TIMESTAMP <-> whatever conversion.
        Fixed generation of warnings for datetime types (DATETIME/TIMESTAMP/DATE/...) and
        any other Field to datetime conversion (now we are generating warnings no in lower
        level functions like in str_to_TIME() but in Field methods. This allows generate
        better and more consistent warnings and to reuse code of str_to_TIME() outside of
        server).
        
        Added 3rd parameter to set_warning() method to be able to not increment cut fields
        but still produce a warning. Also added set_datetime_warning() family of auxiliary 
        methods which allow easier generate datetime related warnings.
        Also replaced occurences of current_thd with table->in_use member, added
        asserts for catching all places there we need to set table->in_use
        accordingly. Renamed fix_datetime() function to number_to_TIME() and
        moved it to sql/time.cc there it fits better.
      sql/field.h:
        Added comment about places where we can use table->in_use member
        instead of current_thd.
        Added 3rd parameter to Field::set_warning() method and set_datetime_warning()
        family of methods.
      sql/field_conv.cc:
        Field::set_warning() method with 2 arguments was replaced with more 
        generic set_warning() method with 3 arguments.
      sql/ha_berkeley.cc:
        Now we set table->in_use for temporary tables so we have to use
        table->tmp_table for checking if table is temporary.
      sql/item.cc:
        Replaced calls to str_to_time() and str_to_TIME() funcs with their warning
        generating analogs.
      sql/item_create.cc:
        Added creation of CONVERT_TZ function as FUNC_ARG3.
      sql/item_create.h:
        Added creation of CONVERT_TZ function as FUNC_ARG3.
      sql/item_timefunc.cc:
        Added support of per-thread time zone to NOW-like and FROM_UNIXTIME,
        UNIX_TIMESTAMP functions. 
        Added support for CONVERT_TZ function.
        Removed call to str_to_timestamp function which caused non-optimal
        behavior in certain cases. Replaced calls to str_to_time() function 
        with its warning generating analog.
      sql/item_timefunc.h:
        Added support of per-thread time zone to NOW-like and
        FROM_UNIXTIME, UNIX_TIMESTAMP functions.
        Added support of CONVERT_TZ function.
      sql/lex.h:
        Added support of CONVERT_TZ function.
      sql/log.cc:
        Added support for replication of statements depending on time zone.
      sql/mysql_priv.h:
        Now including headers with per-thread time zone support functions
        and classes. Added portable replacement of time_t - my_time_t type. 
        Added time zone as one of query distinguishing parameters for
        query cache. 
        Fixed declarations of str_to_TIME, str_to_time and 
        my_system_gmt_sec (former my_gmt_sec) since now they have one more
        out parameter which informs about wrong datetime value or data 
        truncation during conversion.
        Added warning generating version of str_to_TIME() and str_to_time()
        functions.
        Thrown away str_to_datetime/timestamp functions since they are not
        needed any longer. Added number_to_TIME function.
      sql/mysqld.cc:
        Added per-thread time zone support initialization.
        Added new startup parameter --default-time-zone.
      sql/set_var.cc:
        Added support for per-thread time_zone variable.
        Renamed old timezone variable to system_time_zone.
      sql/set_var.h:
        Added support for per-thread time_zone variable.
      sql/share/czech/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/danish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/dutch/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/english/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/estonian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/french/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/german/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/greek/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/hungarian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/italian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/japanese/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/korean/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/norwegian-ny/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/norwegian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/polish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/portuguese/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/romanian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/russian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/serbian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/slovak/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/spanish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/swedish/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/share/ukrainian/errmsg.txt:
        Added error message for barking when incorrect time zone name or
        specifiaction is provided and for warning about invalid TIMESTAMP
        values (e.g. falling into the spring time-gap).
      sql/slave.cc:
        In order to support replication of statements using time zones in 4.1 we should 
        ensure that both master and slave have same default time zone.
      sql/sql_base.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
        calls to Field::store or val_ methods).
      sql/sql_cache.cc:
        Added time zone as one more query distinguishing parameter
        for query cache.
      sql/sql_class.cc:
        Added THD::time_zone_used variable indicating that this query
        uses per thread time zone.
      sql/sql_class.h:
        Added per-thread time zone variable. Added THD::time_zone_used
        variable indicating that this query uses per thread time zone
        so if this is updating query the time zone should be logged to 
        binlog.
      sql/sql_insert.cc:
        We should set TABLE::in_use member pointing to thread which is called
        INSERT DELAYED and not to worker thread.
      sql/sql_load.cc:
        Field::set_warning() now has one more argument now.
      sql/sql_parse.cc:
        Resetting THD::time_zone_used variable in the end of query
        processing.
      sql/sql_select.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
        calls to Field::store or val_ methods).
      sql/sql_show.cc:
        Now using per thread time zone for extended show tables.
      sql/time.cc:
        Added support for per-thread time zones for TIMESTAMP type and
        reworked generation of warnings for TIMESTAMP and DATETIME types.
        (Introduced new TIME_to_timestamp() function. Removed hours 
        normalisation from former my_gmt_sec() since it was not working 
        and not used anywhere now, but breaks parameter constness, added
        to this function generation of warning if we are falling in spring 
        time-gap. Removed str_to_timestamp and str_to_datetime functions 
        which are no longer used. Moved fix_datetime function from
        sql/field.cc to this file as number_to_TIME() function. Added
        out parameter for str_to_TIME and str_to_time functions which
        indicates if value was truncated during conversion, removed direct 
        generation of warnings from this functions.)
      sql/unireg.cc:
        Now we are setting TABLE::in_use member for all tables (which assume
          calls to Field::store or val_ methods).
      BitKeeper/etc/ignore:
        Added sql/test_time sql/mysql_tzinfo_to_sql libmysqld/tztime.cc to the ignore list
      6aaccbcb
  28. 10 Jun, 2004 1 commit
    • unknown's avatar
      WL#1595 "Optionally fsync() the binlog after every statement": · 7ece3c74
      unknown authored
      New option --sync-binlog=x (and global settable variable) which will fsync the binlog
      after every x-th disk write to it. That is, if in autocommit mode, after every x-th statement
      written to the binlog; if using transactions, after every x-th transaction written to the binlog.
      x==0 means no fsync. x==1 is the slowest.
      There is no test added for this, I have just checked that it works as --sync-binlog=1 dramatically
      slows down mysqld.
      Made sync-frm a global settable variable.
      
      
      sql/log.cc:
        every sync_binlog_period-th disk binlog write, we fsync the binlog
      sql/mysql_priv.h:
        new option sync_binlog
      sql/mysqld.cc:
        new option sync_binlog
      sql/set_var.cc:
        Making sync-frm a settable global option.
        New settable global option sync-binlog.
      sql/set_var.h:
        new global settable variable sync_binlog needs a specific ::update because it needs to take LOCK_log
      7ece3c74
  29. 03 Jun, 2004 1 commit
    • unknown's avatar
      Implementation of WL#1824 "Add replication of character set variables in 4.1", · 934bb37d
      unknown authored
      by binlogging some SET ONE_SHOT CHARACTER_SETetc,
      which will be enough until we have it more compact and more complete in 5.0. With the present patch,
      replication will work ok between 4.1.3 master and slaves, as long as:
      - master and slave have the same GLOBAL.COLLATION_SERVER
      - COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used
      - application does not use the fact that table is created with charset of the USEd db (BUG#2326).
      all of which are not too hard to fulfill. 
      ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets,
      so we give error if used for non-charset vars.
      Fix for BUG#3875 "mysqlbinlog produces wrong ouput  if query uses
       variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated
       properly after SET NAMES".
      Detecting that master and slave have different global charsets or server ids.
      
      
      mysql-test/r/rpl_server_id1.result:
        it's normal to not run as I have added a test to compare server ids of master and slave
        at startup and stop if equal (unless --replicate-same-server-id)
      mysql-test/r/rpl_user_variables.result:
        result update (as we now print charset of user var).
      mysql-test/r/user_var.result:
        result update
      mysql-test/t/rpl_server_id1.test:
        no need to select as slave is not running
      mysql-test/t/user_var.test:
        testing if the content of user vars is escaped when mysqlbinlog prints them,
        and if the name is backquoted.
      sql/lex.h:
        new keyword ONE_SHOT
      sql/log.cc:
        when writing to the binlog, before writing the actual statement, write some SET ONE_SHOT CHARACTER_SET_CLIENT etc
        for the slave to know the charset variables (which are important as they affect the inserted data).
      sql/log_event.cc:
        print charset and collation of user var in mysqlbinlog and SHOW BINLOG EVENTS.
        escape the content of the var. Backquote its name.
        Will ask Bar to check that using my_charset_bin for escaping is ok.
      sql/set_var.cc:
        understand SET CHARACTER_SET_CLIENT=10 (don't require a string, accept a number).
        Refuse changing of GLOBAL CHARACTER_SET_SERVER/COLLATION_SERVER if binlog or slave,
        as it will make the master or slave make wrong assumptions.
        A function to catch SET ONE_SHOT on non-charset variables (which is forbidden)
      sql/set_var.h:
        no_support_one_shot to know if the var supports ONE_SHOT (only charset vars do, soon timezones).
        Accept int arg in SET CHARACTER_SET_etc
      sql/slave.cc:
        when I/O slave thread starts, verify that master's and slave charsets match.
        And by the way verify that server ids are different.
        Don't fail if UNIX_TIMESTAMP() can't be done on master (very old master), that's
        not fatal.
      sql/sql_class.cc:
        one_shot
      sql/sql_class.h:
        one_shot
      sql/sql_lex.h:
        one_shot
      sql/sql_parse.cc:
        when SET ONE_SHOT is used, verify that it's only used for charset/collation vars;
        otherwise refuse.
      sql/sql_yacc.yy:
        ONE_SHOT keyword in SET
      934bb37d
  30. 07 Apr, 2004 1 commit
    • unknown's avatar
      new error for unsupported command in PS · c9d856c8
      unknown authored
      fixed IN subselect with basic constant left expression
      SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
      fixed multiupdate privelege check (BUG#3408)
      fixed multiupdate tables check (BUG#3411)
      unchecked commands now is rejected by PS protocol to avoid serever crash
      fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
      
      
      include/mysqld_error.h:
        new error for unsupported command in PS
      mysql-test/r/multi_update.result:
        test sutes (BUG#3408, BUG#3411)
      mysql-test/t/multi_update.test:
        test sutes (BUG#3408, BUG#3411)
      sql/item_cmpfunc.cc:
        fixed IN subselect with basic constant left expression
      sql/mysql_priv.h:
        some function frop sql_parse.h become public
      sql/set_var.cc:
        check for SET command via PS
      sql/set_var.h:
        check for SET command via PS
      sql/share/czech/errmsg.txt:
        new error for unsupported command in PS
      sql/share/danish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/dutch/errmsg.txt:
        new error for unsupported command in PS
      sql/share/english/errmsg.txt:
        new error for unsupported command in PS
      sql/share/estonian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/french/errmsg.txt:
        new error for unsupported command in PS
      sql/share/german/errmsg.txt:
        new error for unsupported command in PS
      sql/share/greek/errmsg.txt:
        new error for unsupported command in PS
      sql/share/hungarian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/italian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/japanese/errmsg.txt:
        new error for unsupported command in PS
      sql/share/korean/errmsg.txt:
        new error for unsupported command in PS
      sql/share/norwegian-ny/errmsg.txt:
        new error for unsupported command in PS
      sql/share/norwegian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/polish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/portuguese/errmsg.txt:
        new error for unsupported command in PS
      sql/share/romanian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/russian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/serbian/errmsg.txt:
        new error for unsupported command in PS
      sql/share/slovak/errmsg.txt:
        new error for unsupported command in PS
      sql/share/spanish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/swedish/errmsg.txt:
        new error for unsupported command in PS
      sql/share/ukrainian/errmsg.txt:
        new error for unsupported command in PS
      sql/sql_lex.cc:
        first table unlincking procedures for CREATE command
      sql/sql_lex.h:
        first table unlincking procedures for CREATE command
      sql/sql_parse.cc:
        used function to exclude first table from list
        SQLCOM_CREATE_TABLE, SQLCOM_UPDATE_MULTI, SQLCOM_REPLACE_SELECT, SQLCOM_INSERT_SELECT, QLCOM_DELETE_MULTI fixed to be compatible with PS (BUG#3398, BUG#3406)
        fixed multiupdate privelege check (BUG#3408)
        fixed multiupdate tables check (BUG#3411)
      sql/sql_prepare.cc:
        fixed a lot of commands to be compatible with PS
        unchecked commands now is rejected to avoid serever crash
      sql/sql_select.cc:
        allow empty result for PS preparing
      sql/sql_union.cc:
        fixed cleunup procedure to be compatible sith DO/SET (BUG#3393)
      sql/sql_update.cc:
        fixed update to use correct tables lists (BUG#3408)
      sql/table.h:
        flag to support multi update tables check (BUG#3408)
      tests/client_test.c:
        removed unsupported tables
        fixed show table test
        added new tests
      c9d856c8
  31. 30 Mar, 2004 1 commit
  32. 27 Mar, 2004 1 commit
    • unknown's avatar
      A previous changeset by me today about SQL_LOG_BIN had the problem · ec4a9dc9
      unknown authored
      that it tested the privilege in ::update() whereas it should be
      in ::check() (see email from Serg, subject
      "Re: bk commit - 4.1 tree (guilhem:1.1706)").
      So I add instead a check_func function to sys_var_thd_bit.
      I do the same addition to sys_var_thd_ulong, to unify handling
      of PSEUDO_THREAD_ID with the one of SQL_LOG_BIN. So class
      sys_var_pseudo_thread_id is not needed anymore, removing it.
      
      
      mysql-test/r/rpl_temporary.result:
        result update
      mysql-test/t/rpl_temporary.test:
        tests after new way of fixing; verify that when second variable
        assignment is refused then first is not done.
      sql/set_var.cc:
        a check_func (check_log_update) when setting SQL_LOG_BIN,
        and one when setting PSEUDO_THREAD_ID.
        Removing class sys_var_pseudo_thread_id.
        Updates for new prototypes of constructor in sys_var_thd_bit
        and sys_var_thd_ulong.
      sql/set_var.h:
        Adding check_func to sys_var_thd_bit.
        Adding check_func to sys_var_thd_ulong, so class sys_var_pseudo_thread_id
        is not needed anymore, removing it.
      ec4a9dc9
  33. 22 Mar, 2004 1 commit
    • unknown's avatar
      aliases should be compared with my_strcasecmp (BUG#3251) · 560fc037
      unknown authored
      some db comparison code cleupup
      removed compiler warnings
      
      
      mysql-test/r/lowercase_table.result:
        test for BUG#3251
      mysql-test/t/lowercase_table.test:
        test for BUG#3251
      sql/item.cc:
        simple strcmp can be used for db name comparison
      sql/set_var.h:
        changed initialisation order to satisfy compiler
      sql/sql_cache.cc:
        simple strcmp can be used for db name comparison
      sql/sql_db.cc:
        better use special cherset for files
      sql/sql_parse.cc:
        simple strcmp can be used for db name comparison
        aliases should be compared with my_strcasecmp
      sql/sql_select.cc:
        aliases should be compared with my_strcasecmp
      560fc037
  34. 20 Mar, 2004 1 commit
    • unknown's avatar
      select @@smth=@@sys_str_var crash fixed · eb3ded56
      unknown authored
      mysql-test/r/variables.result:
        new test
      mysql-test/t/ctype_utf8.test:
        typos fixed
      mysql-test/t/variables.test:
        new test
      sql/mysqld.cc:
        sys_str_var->value must be not NULL
      sql/set_var.cc:
        initialize sys_str_var->value from a constructor
      sql/set_var.h:
        initialize sys_str_var->value from a constructor
      eb3ded56
  35. 17 Mar, 2004 1 commit
  36. 06 Mar, 2004 1 commit
    • unknown's avatar
      Ensure that one can't from the command line set a variable too small. (Bug #2710) · aa20bd9e
      unknown authored
      Allow one to force lower_case_table_names to 0, even if the file system is case insensitive. This fixes some issues on Mac OS X (Bug #2994)
      Added variables "lower_case_file_system", "version_compile_os" and "license"
      
      
      mysql-test/t/lowercase_table3-master.opt:
        Rename: mysql-test/t/lowercase_table2-master.opt -> mysql-test/t/lowercase_table3-master.opt
      mysys/my_getopt.c:
        Ensure that one can't from the command line set a variable too small (could happen when sub_size was set)
      sql/mysql_priv.h:
        Added lower_case_file_system
      sql/mysqld.cc:
        Allow one to force lower_case_table_names to 0, even if the file system is case insensitive
      sql/set_var.cc:
        Added variable "lower_case_file_system"
        Added variable "version_compile_os"
        Added variable "license"
      sql/set_var.h:
        Added support for read only strings
      sql/sql_select.cc:
        Make join optimizer killable
      aa20bd9e
  37. 16 Feb, 2004 1 commit
    • unknown's avatar
      ft_boolean_syntax made changeable · 5a9ffa30
      unknown authored
      BitKeeper/deleted/.del-gstream.cc~e7a4fae849aff6c8:
        Delete: libmysqld/gstream.cc
      BitKeeper/deleted/.del-item_subselect.cc~80564bbdb47e8160:
        Delete: libmysqld/item_subselect.cc
      BitKeeper/deleted/.del-spatial.cc~604df7172b141762:
        Delete: libmysqld/spatial.cc
      BitKeeper/deleted/.del-sql_derived.cc~548b125128871c7a:
        Delete: libmysqld/sql_derived.cc
      BitKeeper/etc/ignore:
        Added libmysqld/item_subselect.cc libmysqld/sql_derived.cc to the ignore list
      5a9ffa30
  38. 17 Dec, 2003 1 commit
    • unknown's avatar
      WorkLog #1323 (part 2) · 69cee792
      unknown authored
      New Statement: SHOW [STORAGE] ENGINES
      New System Variable: storage_engine
      New mysqld Argument: --default-storage-engine=
      
      
      include/mysqld_error.h:
        We now call handlers STORAGE ENGINEs
      include/sql_state.h:
        We now call handlers STORAGE ENGINEs
      mysql-test/r/create.result:
        table_type system variable becomes storage_engine
      mysql-test/r/key_cache.result:
        table_type system variable becomes storage_engine
      mysql-test/r/variables.result:
        table_type system variable becomes storage_engine
      mysql-test/r/warnings.result:
        Test for deprecated table_type system variable
      mysql-test/t/create.test:
        table_type system variable becomes storage_engine
      mysql-test/t/key_cache.test:
        table_type system variable becomes storage_engine
      mysql-test/t/variables.test:
        table_type system variable becomes storage_engine
      mysql-test/t/warnings.test:
        Test for deprecated table_type system variable
      sql/handler.cc:
        change name for consistency
      sql/handler.h:
        change name for consistency
      sql/lex.h:
        New keywords - ENGINES and STORAGE
      sql/mysql_priv.h:
        change name for consistency
      sql/mysqld.cc:
        New command like argument for default-storage-engine
      sql/set_var.cc:
        New system variable for storage_engine
      sql/set_var.h:
        New system variable for storage_engine
      sql/sql_lex.h:
        Change for consistancy
      sql/sql_parse.cc:
        Change for consistancy
      sql/sql_show.cc:
        Change for consistancy
      sql/sql_table.cc:
        Change for consistancy
      sql/sql_yacc.yy:
        New keywords: STORAGE and ENGINES
        Change table_types to storage_engines
        New statement: SHOW [STORAGE] ENGINES
      69cee792