An error occurred fetching the project authors.
  1. 04 Mar, 2005 1 commit
    • unknown's avatar
      Bug#3788 · 1220069c
      unknown authored
        Crashes with stored procedure return non-string values
        Also fixes Bug#2773
      
      
      mysql-test/r/information_schema.result:
        Bug#3788
          Fix results for bugfix
      mysql-test/r/sp.result:
        Bug#3788
          Tests for Bug
          Fix results for bugfix
      mysql-test/t/sp.test:
        Bug#3788
          New tests for bug
      sql/item.cc:
        Fix unrelated crash in view test with --ps-protocol.
      sql/item_func.cc:
        Bug#3788
          Alter how SP function result types are handled.
      sql/item_func.h:
        Bug#3788
          Alter how SP function result types are handled.
      sql/mysql_priv.h:
        Bug#3788
          Prototypes for new global functions
      sql/sp.cc:
        Bug#3788
          Alter how function return type is reported
      sql/sp_head.cc:
        Bug#3788
          Change how function return types are stored for SPs
      sql/sp_head.h:
        Bug#3788
          Change how function return types are stored for SPs
      sql/sql_parse.cc:
        Bug#3788
          Split out field construction into its own function
      sql/sql_table.cc:
        Bug#3788
          Split out field preparation code into its own function
      sql/sql_yacc.yy:
        Bug#3788
          Change how function return types are stored for SPs
      sql/unireg.cc:
        Bug#3788
          Add assertion check
      1220069c
  2. 24 Feb, 2005 1 commit
  3. 22 Feb, 2005 1 commit
  4. 21 Feb, 2005 1 commit
  5. 19 Feb, 2005 1 commit
    • unknown's avatar
      Fixed BUILD script to use --with-berkeley-db instead of --with-bdb · 64cc538b
      unknown authored
      Lots of small fixes to multi-precision-math path
      Give Note for '123.4e'
      Added helper functions type 'val_string_from_real()
      Don't give warnings for end space for string2decimal()
      Changed storage of values for SP so that we can detect length of argument without strlen()
      Changed interface for str2dec() so that we must supple the pointer to the last character in the buffer
      
      
      
      BUILD/SETUP.sh:
        with-bdb ->with-berkeley-db
      include/decimal.h:
        Make string2decimal and string2decimal_fixed inline
      mysql-test/r/func_group.result:
        More tests (to find bugs in precision math fixes)
      mysql-test/r/func_set.result:
        Test to cover more Item_func_field::val_xxx() code
      mysql-test/r/ps_6bdb.result:
        update results
      mysql-test/r/type_decimal.result:
        New tests
        Give note for '123.4e'
      mysql-test/r/type_newdecimal.result:
        Number of decimal changes (probably right, but hard to verify)
      mysql-test/t/func_group.test:
        More tests (to find bugs in precision math fixes)
      mysql-test/t/func_set.test:
        Test to cover more Item_func_field::val_xxx() code
      mysql-test/t/type_decimal.test:
        New tests to cover more cases in decimal.c
      sql/item.cc:
        Added helper functions type 'val_string_from_real()'
        Use new interfase to str2my_decimal()
        Moved nr_of_decimals() here (and made it static)
      sql/item.h:
        Added helper functions type 'val_string_from_real()'
      sql/item_func.cc:
        Style fixes
        Trivial optimizations
        Ensure null_value is set if my_decimal_add/sub/mul/div returns error
        Remove not needed Item_func_int_div::val_str()
        Join Item_func_signproc and Item_func_neg
        Fix that FIELD() works when first argument is NULL or one if it's arguments are NULL
        new str2my_decimal interface
      sql/item_func.h:
        Make Item_func_int_div inherit from Item_int_func (allows us to remove some virtual functions)
        Join Item_func_signproc & Item_func_neg
      sql/item_strfunc.cc:
        Move nr_of_decmails() to Item.cc (as it was only used here)
      sql/item_sum.cc:
        Style fixes
        Change a lot of code to use new helper converter functions in item.cc
        Moved Item_sum::val_decimal() to Item_sum_int::val_decimal()
        Fixed calls to wrong functions (Item_sum_num::val_int())
        Ensure that all hybrid functions checks hybrid_type in val_xxx() (As there is no gurantee that they are called in the right context)
        Simplify key_length allocation in Item_sum_sum_distinct()
        Simplified create_tmp_field() and reset_field()
        Fixed potential error in Item_sum_hybrid::reset_field()
        Optimize Item_sum_avg::update_field()
        Item_std_field() functions musted be fully coded becasue Item_variance_field::val_xxx functions called helper functions
        Coded missing Item_sum_ufd_xxx::val_decimal() functions
      sql/item_sum.h:
        Moved Item_sum::val_decimal() to Item_sum_int::val_decimal()
        Added missing Item_sum_ufd_xxx::val_decimal() functions
        Removed not used scale() function.
        Fixed that Item_std_field() works with decimal arguments
        Fixed that CREATE ... STD() will create a REAL field
      sql/log_event.cc:
        Ensure that we use same format for all types
      sql/my_decimal.cc:
        Don't give warnings for end space for string2decimal()
        Added dbug_print_decimal()
      sql/my_decimal.h:
        Style fixes
        Prototypes for new functions
        New interface for str2my_decimal()
      sql/mysql_priv.h:
        Made nr_of_decimals() static
      sql/protocol.cc:
        Simplify code (by assume that decimal can't be bigger than DECIMAL_MAX_STR_LENGTH]
      sql/protocol_cursor.cc:
        Changed storage of values for SP so that we can detect length of argument without strlen()
      sql/sp_head.cc:
        Simplify code for decimal handling by letting item handling conversion to decimal
      sql/sp_rcontext.cc:
        Use new method to get length of arguments
      sql/sql_analyse.cc:
        if -> switch
        Increase 'empty' if decimal value=0
        Remove usage of strcat()
      sql/sql_base.cc:
        Remove unnecessary checks
      sql/sql_class.cc:
        Remove not needed 'else'
        Removed not used variables
      sql/sql_select.cc:
        remove test for impossible condtion
      strings/decimal.c:
        Made two trivial functions macros
        Changed interface for str2dec() so that we must supple the pointer to the last character in the buffer
        This safer than before as we don't require an end \0 anymore (old code gave wrong answers in MySQL for some internals strings that where not \0 terminated)
        Detect error numbers of type '12.55e'
        str2dec() will now set 'to' to zero in case of errors
      64cc538b
  6. 17 Feb, 2005 2 commits
  7. 08 Feb, 2005 2 commits
    • unknown's avatar
      Fix removal of tables from cache when the database they are contained · 1de817e9
      unknown authored
      within is dropped and lower_case_table_names is set. (Bug #8355)
      
      
      mysql-test/t/lowercase_table2.test:
        Add new regression test
      mysql-test/r/lowercase_table2.result:
        Add results for regression test
      sql/mysql_priv.h:
        Change remove_db_from_cache() to use char* instead of my_string
      sql/sql_base.cc:
        Lowercase database name in remove_db_from_cache so
        that all of the correct entries are removed.
      1de817e9
    • unknown's avatar
      Precision Math implementation · 91db48e3
      unknown authored
      BitKeeper/etc/ignore:
        Added client/decimal.c client/my_decimal.cc client/my_decimal.h to the ignore list
      91db48e3
  8. 05 Feb, 2005 1 commit
    • unknown's avatar
      Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only... · d52afba5
      unknown authored
      Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only (2nd patch after Monty's comments).
      
      
      sql/mysql_priv.h:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/opt_range.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/sql_base.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/sql_select.cc:
        Outer joins cleanup: Remove TABLE::outer_join and use TABLE::maybe_null only.
      sql/table.h:
        Outer joins cleanup: 
         * Remove TABLE::outer_join and use TABLE::maybe_null only.
         * Added comments.
      d52afba5
  9. 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
  10. 02 Feb, 2005 1 commit
    • unknown's avatar
      Review fixed · d5c03608
      unknown authored
      sql/ha_federated.cc:
        Fixed compiler warnings and some indentation problems (still a lot more indentation problems to fix, will come in a later patch)
      sql/mysql_priv.h:
        Remove duplicated append_escaped()
      sql/sql_analyse.cc:
        Remove duplicated append_escaped()
      sql/sql_insert.cc:
        Move extra(HA_EXTRA_IGNORE_DUP_KEY) to a more logical places
        Add missing DBUG_RETURN()
      d5c03608
  11. 01 Feb, 2005 1 commit
    • unknown's avatar
      open binlog index file *before* tc_log->open() and binlog itself *after* · be255d65
      unknown authored
      sql/mysql_priv.h:
        checkpoint: open_log() removed
      sql/sql_yacc.yy:
        checkpoint: open_log() removed
      sql/log.cc:
        split the opening of the .index file and binlog itself - now they are done by separate functions
      sql/slave.cc:
        init_relay_log_info() made static
        split the opening of the .index file and binlog itself - now they are done by separate functions
      sql/slave.h:
        init_relay_log_info() made static
      sql/sql_class.h:
        split the opening of the .index file and binlog itself - now they are done by separate functions
      be255d65
  12. 30 Jan, 2005 1 commit
    • unknown's avatar
      Bug#7011 · 934fde09
      unknown authored
        Fix replication for multi-update
        new test - rpl_multi_update2
      
      
      sql/mysql_priv.h:
        Bug#7011
          New function mysql_multi_update_lock()
      sql/sql_parse.cc:
        Bug#7011
          New function check_multi_update_lock()
          For multi-update on slave, perform an early open&lock
      sql/sql_update.cc:
        Bug#7011
          Split out multi-update locking into its own function,
            mysql_multi_update_lock()
      934fde09
  13. 27 Jan, 2005 1 commit
    • unknown's avatar
      query_id and my_xid -> ulonglong · 042448aa
      unknown authored
      fix for binlog+autocommit+tclog
      comments, style fixes
      
      
      libmysqld/libmysqld.rc:
        Change mode to -rw-rw-r--
      libmysqld/resource.h:
        Change mode to -rw-rw-r--
      configure.in:
        check for getpagesize
      include/my_global.h:
        typo ?
      include/my_pthread.h:
        bug in thread_safe_decrement_and_test()
      mysql-test/r/bdb.result:
        results updated
      mysql-test/r/innodb.result:
        results updated
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results updated
      mysql-test/r/rpl_relayrotate.result:
        results updated
      sql/ha_berkeley.cc:
        style fixes
      sql/ha_innodb.cc:
        fixes to follow innodb coding style
      sql/handler.cc:
        more comments. XA COMMIT ONE PHASE fix.
      sql/handler.h:
        my_xid -> ulonglong. comments
      sql/item_func.cc:
        DO RELEASE_LOCK("...") is no cache_stmt
      sql/log.cc:
        comments, better error messages
      sql/log_event.cc:
        even in autocommit mode we may need to cache_stmt
        xid is ulonglong
      sql/log_event.h:
        more comments.
      sql/mysql_priv.h:
        query_id is ulonglong
      sql/mysqld.cc:
        default value for --log-tc changed
      sql/share/errmsg.txt:
        better error messages
      sql/sql_class.h:
        cleanup, comments
      sql/sql_delete.cc:
        deleting from temporary tables is not always transactional
      sql/sql_insert.cc:
        insert into temporary table is not always transactional
      sql/sql_load.cc:
        load data into temp table is not always transactional
      sql/sql_parse.cc:
        comments. bad merge fixed. xa_state_names[]
      sql/sql_table.cc:
        create/drop temp table is not always transactional
      sql/sql_update.cc:
        update temp table is not always transactional
      042448aa
  14. 26 Jan, 2005 1 commit
  15. 21 Jan, 2005 2 commits
    • unknown's avatar
    • unknown's avatar
      -Added quote_data and needs_quotes (moved from federated handler. · 66b62e05
      unknown authored
      -New tests and results
      
      logging_ok:
        Logging to logging@openlogging.org accepted
      ha_federated.h:
        removed quote_data and type_quote (now in the Field class)
      ha_federated.cc:
        moved quote_data and type_quote to field class
      field.h:
        new methods quote_data and needs_quotes declared
      field.cc:
        new field class methods quote_data and needs_quotes (per Monty's request)
      federated.test:
        more tests, joins, index tests
      have_federated_db.require:
        new name of federated system var
      federated.result:
        new test results for federated handler
      have_federated_db.inc:
        changed name of variable in test due to change in vars
      sql_analyse.cc:
        over-ridden append_escaped to take (String *, char *, uint) per requirements of 'create_where_from_key' method in federated handler.
      mysql_priv.h:
        define over-ridden append_escaped to take arguments from 'create_where_from_key' method in federated handler 
      ha_federated.cc:
        implemented "create_where_from_key" to deal properly with two-byte prefix and multi keys. Initial testing shows it works, but I still need to move quoting to field class and also look at changes per Segei's suggestions.
      
      
      sql/mysql_priv.h:
        define over-ridden append_escaped to take arguments from 'create_where_from_key' method in federated handler
      sql/sql_analyse.cc:
        over-ridden append_escaped to take (String *, char *, uint) per requirements of 'create_where_from_key' method in federated handler.
      mysql-test/include/have_federated_db.inc:
        changed name of variable in test due to change in vars
      mysql-test/r/federated.result:
        new test results for federated handler
      mysql-test/r/have_federated_db.require:
        new name of federated system var
      mysql-test/t/federated.test:
        more tests, joins, index tests
      sql/field.cc:
        new field class methods quote_data and needs_quotes (per Monty's request)
      sql/field.h:
        new methods quote_data and needs_quotes declared
      sql/ha_federated.cc:
        moved quote_data and type_quote to field class
      sql/ha_federated.h:
        removed quote_data and type_quote (now in the Field class)
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      66b62e05
  16. 19 Jan, 2005 2 commits
    • 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
    • unknown's avatar
      Final patch for BUG#4285. · 8e1e1e73
      unknown authored
      This patch collects all previous patches into one.
      
      The main problem was due to that there is are two variables -
      dflt_key_cache and sql_key_cache with have more or less duplicate
      function. The reson for the bug was that the default value in the key
      cache hash was set to dflt_key_cache, then sql_key_cache was set to a
      new key cache object, and then dflt_key_cache was set to sql_key_cache
      which was different from the dflt_key_cache_var. After sending SIGHUP,
      the server was using the original default value for the key cache hash,
      which was different from the actual key cache object used for the
      default key cache.
      
      
      include/keycache.h:
        Import patch 4285.diff
      mysys/mf_keycache.c:
        Import patch 4285.diff
      sql/mysql_priv.h:
        Import patch 4285.diff
      sql/mysqld.cc:
        Import patch 4285.diff
      sql/set_var.cc:
        Import patch 4285.diff
      sql/sql_parse.cc:
        Import patch 4285.diff
      sql/sql_show.cc:
        Import patch 4285.diff
      8e1e1e73
  17. 18 Jan, 2005 1 commit
  18. 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
  19. 13 Jan, 2005 1 commit
    • unknown's avatar
      Fix bug in INSERT DELAYED with prepared statements · 177e99f3
      unknown authored
      The bug was that if you have two TL_WRITE_DELAYED at the same time,
      mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      
      
      sql/mysql_priv.h:
        Fix bug in insert delayed with prepared statements
      sql/sql_base.cc:
        Fix bug in insert delayed with prepared statements
      sql/sql_prepare.cc:
        Fix bug in insert delayed with prepared statements
        The bug was that if you have two TL_WRITE_DELAYED at the same time,
        mi_lock_databases() could be done in the wrong order and we could write the wrong header to the MyISAM index file.
      177e99f3
  20. 06 Jan, 2005 1 commit
    • unknown's avatar
      First stage of table definition cache · acf76e3b
      unknown authored
      Split TABLE to TABLE and TABLE_SHARE (TABLE_SHARE is still allocated as part of table, will be fixed soon)
      Created Field::make_field() and made Field_num::make_field() to call this
      Added 'TABLE_SHARE->db' that points to database name; Changed all usage of table_cache_key as database name to use this instead
      Changed field->table_name to point to pointer to alias. This allows us to change alias for a table by just updating one pointer.
      Renamed TABLE_SHARE->real_name to table_name
      Renamed TABLE->table_name to alias
      Renamed TABLE_LIST->real_name to table_name
      
      
      include/myisam.h:
        Added const before names
      mysql-test/r/group_min_max.result:
        Make results repeatable
      mysql-test/t/group_min_max.test:
        Make results repeatable
      sql/field.cc:
        Created Field::make_field() and made Field_num::make_field() to call this
        Use TABLE_SHARE
        Use sql_strmake() instead of sql_memdup() to simplify code
      sql/field.h:
        Changed table_name to be pointer to table_name. This allows us to change alias for all fields by just changing one pointer.
        Use TABLE_SHARE
      sql/field_conv.cc:
        Use TABLE_SHARE
      sql/filesort.cc:
        Use TABLE_SHARE
      sql/ha_berkeley.cc:
        Use TABLE_SHARE
      sql/ha_heap.cc:
        Use TABLE_SHARE
      sql/ha_innodb.cc:
        Use TABLE_SHARE
      sql/ha_myisam.cc:
        Use TABLE_SHARE
      sql/ha_myisammrg.cc:
        Use TABLE_SHARE
        Change some pointer handling to use const char*
      sql/ha_ndbcluster.cc:
        Use TABLE_SHARE
      sql/handler.cc:
        Use TABLE_SHARE
      sql/item.cc:
        Use TABLE_SHARE
      sql/item_func.cc:
        Use TABLE_SHARE
      sql/item_subselect.cc:
        Use TABLE_SHARE
      sql/item_sum.cc:
        Use TABLE_SHARE
      sql/key.cc:
        Use TABLE_SHARE
      sql/lock.cc:
        Use TABLE_SHARE
      sql/log_event.cc:
        real_name -> table_name
      sql/mysql_priv.h:
        Use TABLE_SHARE
      sql/opt_range.cc:
        Use TABLE_SHARE
      sql/opt_sum.cc:
        Use TABLE_SHARE
      sql/records.cc:
        Use TABLE_SHARE
      sql/repl_failsafe.cc:
        real_name -> table_name
      sql/slave.cc:
        Use TABLE_SHARE
      sql/sp.cc:
        Use TABLE_SHARE
      sql/sp_head.cc:
        real_name -> table_name
      sql/sql_acl.cc:
        Use TABLE_SHARE
        removed unnecessary assert
        fixed indentation
        changed some char * -> const char*
      sql/sql_acl.h:
        changed some char* -> const char*
      sql/sql_base.cc:
        Use TABLE_SHARE
      sql/sql_cache.cc:
        Use TABLE_SHARE
      sql/sql_class.cc:
        Use TABLE_SHARE
      sql/sql_db.cc:
        real_name -> table_name
      sql/sql_delete.cc:
        Use TABLE_SHARE
      sql/sql_derived.cc:
        Use TABLE_SHARE
      sql/sql_handler.cc:
        Use TABLE_SHARE
      sql/sql_help.cc:
        Use TABLE_SHARE
      sql/sql_insert.cc:
        Use TABLE_SHARE
      sql/sql_load.cc:
        Use TABLE_SHARE
      sql/sql_parse.cc:
        Use TABLE_SHARE
      sql/sql_rename.cc:
        real_name -> table_name
      sql/sql_select.cc:
        Use TABLE_SHARE
        table->blob_fields now points to field offsets, not fields
        tmp_table->table_name now points to alias name
      sql/sql_show.cc:
        Use TABLE_SHARE
      sql/sql_table.cc:
        Use TABLE_SHARE
      sql/sql_test.cc:
        Use TABLE_SHARE
      sql/sql_trigger.cc:
        Use TABLE_SHARE
      sql/sql_udf.cc:
        Use TABLE_SHARE
      sql/sql_union.cc:
        real_name -> table_name
      sql/sql_update.cc:
        Use TABLE_SHARE
      sql/sql_view.cc:
        Use TABLE_SHARE
      sql/table.cc:
        Split TABLE to TABLE and TABLE_SHARE
        Changed blob_field to be field offsets instead of pointer to fields
        Only initialize table->s->default_values with default record (not all table->record[#])
        Some indentation changes
      sql/table.h:
        Split TABLE to TABLE and TABLE_SHARE
      sql/tztime.cc:
        real_name -> table_name
      sql/unireg.cc:
        Use TABLE_SHARE
      sql/unireg.h:
        Use TABLE_SHARE
      acf76e3b
  21. 03 Jan, 2005 1 commit
    • unknown's avatar
      Better handling of ensuring that setup_tables() are not called twice · 2bcaed34
      unknown authored
      This fixed a bug in prepared statements when used with outher joins
      Fixed a bug in SUM(DISTINCT) when used with prepared statements.
      Some safety fixes in test scripts to ensure that previous test failures shouldn't affect other tests
      
      
      mysql-test/r/mysqldump.result:
        Safety fix if a previous test would fail
      mysql-test/r/show_check.result:
        Safety fix if a previous test would fail
      mysql-test/r/sp.result:
        Fix for --ps-protocol
      mysql-test/r/synchronization.result:
        Safety fix if a previous test would fail
      mysql-test/r/system_mysql_db.result:
        Safety fix if a previous test would fail
      mysql-test/t/mysqldump.test:
        Safety fix if a previous test would fail
      mysql-test/t/select.test:
        Safety fix if a previous test would fail
      mysql-test/t/show_check.test:
        Safety fix if a previous test would fail
      mysql-test/t/sp.test:
        fix for --ps-protocol
      mysql-test/t/strict.test:
        Fix for --ps-protocol
      mysql-test/t/synchronization.test:
        Safety fix if a previous test would fail
      mysql-test/t/system_mysql_db.test:
        Safety fix if a previous test would fail
      sql/item_sum.cc:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/item_sum.h:
        Fix bug in SUM(DISTINCT...) when using with prepared statements
      sql/mysql_priv.h:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_base.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_insert.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_parse.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_prepare.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_select.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_union.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/sql_update.cc:
        Better handling of ensuring that setup_tables() are not called twice
      sql/table.h:
        Better handling of ensuring that setup_tables() are not called twice
      2bcaed34
  22. 31 Dec, 2004 1 commit
    • unknown's avatar
      Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag · 2419fa26
      unknown authored
      This allows use to use INSERT IGNORE ... ON DUPLICATE ...
      
      
      mysql-test/r/drop.result:
        safety fix
      mysql-test/t/drop.test:
        safety fix
      mysql-test/t/multi_update.test:
        ensure we cover all possible errors
      sql/log_event.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/log_event.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/mysql_priv.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_class.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_delete.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_insert.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_load.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_parse.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_select.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_table.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_union.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_update.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_yacc.yy:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      2419fa26
  23. 30 Dec, 2004 2 commits
    • unknown's avatar
      After merge fixes · 2e8d13c7
      unknown authored
      config/ac-macros/character_sets.m4:
        Added latin1_spanish_ci
      dbug/dbug_analyze.c:
        Remove compiler warnings
      include/my_handler.h:
        Reorder structure arguments to be more optimal
      innobase/dict/dict0load.c:
        Fixed wrong define tag (for MySQL 5.0)
      innobase/fil/fil0fil.c:
        Fixed compiler warning
      innobase/os/os0file.c:
        Fixed compiler warning
      myisam/ft_boolean_search.c:
        Fixed compiler warning
      myisam/ft_static.c:
        Update to use new HA_KEYSEG structure
      myisam/mi_open.c:
        Simple optimization
      myisammrg/myrg_static.c:
        Removed compiler warning
      mysql-test/r/grant.result:
        Update results after merge
      mysql-test/r/index_merge.result:
        Update results after merge
      mysql-test/r/information_schema_inno.result:
        Add missing drop table
      mysql-test/r/lowercase_table.result:
        safety fix
      mysql-test/r/multi_update.result:
        safety fix
      mysql-test/r/ps_1general.result:
        safety fix
      mysql-test/r/ps_2myisam.result:
        Update results after merge
        (set is not anymore of binary type)
      mysql-test/r/ps_3innodb.result:
        Update results after merge
      mysql-test/r/ps_4heap.result:
        Update results after merge
      mysql-test/r/ps_5merge.result:
        Update results after merge
      mysql-test/r/ps_6bdb.result:
        Update results after merge
      mysql-test/r/show_check.result:
        Update results after merge
      mysql-test/r/subselect.result:
        Update results after merge
        (added missing quotes)
      mysql-test/r/timezone2.result:
        Update results after merge
      mysql-test/r/view.result:
        Update results after merge
        (note that INSERT IGNORE will work again after next merge from 4.1)
      mysql-test/t/derived.test:
        Removed empty line
      mysql-test/t/grant.test:
        Update results after merge
      mysql-test/t/information_schema_inno.test:
        added missing drop table
      mysql-test/t/lowercase_table.test:
        safety fix
      mysql-test/t/multi_update.test:
        safety fix
      mysql-test/t/ps_1general.test:
        safety fix
      mysql-test/t/view.test:
        update error codes after merge
      ndb/src/mgmsrv/main.cpp:
        after merge fix
      ndb/tools/ndb_test_platform.cpp:
        removed compiler warnings
      regex/main.c:
        remove compiler warnings
      sql/field.cc:
        Remove compiler warning
      sql/gen_lex_hash.cc:
        Added DBUG support
      sql/ha_myisam.cc:
        Removed warning from valgrind
      sql/ha_ndbcluster.cc:
        Remove compiler warning
      sql/item_cmpfunc.cc:
        Better to use val_int() instead of val_real() as we don't want Item_func_nop_all to return different value than the original ref element
      sql/mysqld.cc:
        Remove compiler warning
      sql/sql_acl.cc:
        More debugging
      sql/sql_lex.cc:
        Remove unnecessary 'else'
      sql/sql_parse.cc:
        After merge fixes
        Simplify reset of thd->server_status for SQLCOM_CALL
      sql/sql_prepare.cc:
        After merge fixes
        Removed possible core dump in mysql_stmt_fetch()
      sql/sql_update.cc:
        After merge fixes (together with Sanja)
      strings/ctype-czech.c:
        Remove compiler warning
      strings/ctype-ucs2.c:
        Remove compiler warning
      strings/ctype-win1250ch.c:
        Remove compiler warning
      strings/xml.c:
        Remove compiler warning
      tests/client_test.c:
        Fix test to work with 5.0
      vio/test-sslserver.c:
        Portability fix
      2e8d13c7
    • unknown's avatar
      wl#1629 SHOW with WHERE(final part, after review) · 525242d3
      unknown authored
        added syntax:
        'show variables where', 'show status where', 'show open tables where'
      
      
      mysql-test/r/grant_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/information_schema.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/query_cache.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/temp_table.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/r/union.result:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/information_schema.test:
        wl#1629 SHOW with WHERE(final part,after review)
      mysql-test/t/query_cache.test:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/item.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/mysql_priv.h:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_parse.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_select.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_show.cc:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/sql_yacc.yy:
        wl#1629 SHOW with WHERE(final part,after review)
      sql/table.h:
        wl#1629 SHOW with WHERE(final part,after review)
      525242d3
  24. 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
  25. 27 Dec, 2004 1 commit
  26. 24 Dec, 2004 1 commit
    • unknown's avatar
      logging_ok: · 40d7e74e
      unknown authored
        Logging to logging@openlogging.org accepted
      sql_yacc.yy, sql_parse.cc, sql_lex.h, lex.h:
        Implements the SHOW MUTEX STATUS command
      set_var.cc, mysqld.cc, mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      ha_innodb.h:
        New function innodb_mutex_show_status
      ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      innodb.test, innodb.result:
        Added new row_lock_waits status variables tests.
      variables.test, variables.result:
        test new variable timed_mutexes
      ut0ut.c:
        New function ut_usectime.
      sync0sync.c:
        Mutex counting.
      sync0rw.c:
        New mutex parameters initialization.
      srv0srv.c:
        Counting row lock waits
      row0sel.c, row0mysql.c:
        Setting row_lock or table_lock state to thd.
      que0que.c:
        Added default no_lock_state to thd.
      univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      sync0sync.ic:
        Count mutex using.
      sync0sync.h:
        Added new parameters to mutex structure for counting.
      sync0rw.h:
        Added new parameters to rw_create_func.
      srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      que0que.h:
        Added thread lock states.
      
      
      innobase/include/que0que.h:
        Added thread lock states.
      innobase/include/srv0srv.h:
        Added new innodb varuables to SHOW STATUS.
      innobase/include/sync0rw.h:
        Added new parameters to rw_create_func.
      innobase/include/sync0sync.h:
        Added new parameters to mutex structure for counting.
      innobase/include/sync0sync.ic:
        Count mutex using.
      innobase/include/univ.i:
        Added UNIV_SRV_PRINT_LATCH_WAITS debug define
      innobase/que/que0que.c:
        Added default no_lock_state to thd.
      innobase/row/row0mysql.c:
        Setting row_lock or table_lock state to thd.
      innobase/row/row0sel.c:
        Setting row_lock or table_lock state to thd.
      innobase/srv/srv0srv.c:
        Counting row lock waits
      innobase/sync/sync0rw.c:
        New mutex parameters initialization.
      innobase/sync/sync0sync.c:
        Mutex counting.
      innobase/ut/ut0ut.c:
        New function ut_usectime.
      mysql-test/r/variables.result:
        test new variable timed_mutexes
      mysql-test/r/innodb.result:
        Added new row_lock_waits status variables tests.
      mysql-test/t/variables.test:
        test new variable timed_mutexes
      mysql-test/t/innodb.test:
        Added new row_lock_waits status variables tests.
      sql/ha_innodb.cc:
        Added new innodb variables in SHOW STATUS
        Implements the SHOW MUTEX STATUS command
      sql/ha_innodb.h:
        New function innodb_mutex_show_status
      sql/lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/mysql_priv.h:
        Added new GLOBAL variable timed_mutexes
      sql/mysqld.cc:
        Added new GLOBAL variable timed_mutexes
      sql/set_var.cc:
        Added new GLOBAL variable timed_mutexes
      sql/sql_lex.h:
        Implements the SHOW MUTEX STATUS command
      sql/sql_parse.cc:
        Implements the SHOW MUTEX STATUS command
      sql/sql_yacc.yy:
        Implements the SHOW MUTEX STATUS command
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      40d7e74e
  27. 23 Dec, 2004 1 commit
    • unknown's avatar
      WL#925 - Privileges for stored routines · 09ce0b33
      unknown authored
        Implement fine-grained control over access to stored procedures
        Privileges are cached (same way as existing table/column privs)
        
      
      
      mysql-test/include/system_db_struct.inc:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/connect.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      mysql-test/r/grant.result:
        WL#925 - Privileges for stored routines
          user table has additional privilege attributes
          SHOW PRIVILEGES amended
      mysql-test/r/grant2.result:
        Fix result
      mysql-test/r/information_schema.result:
        WL#925 - Privileges for stored routines
          New system table procs_priv
          New user privileges
      mysql-test/r/show_check.result:
        Fix result
      mysql-test/r/sp-security.result:
        WL#925 - Privileges for stored routines
          Fix existing tests to work with new privileges
          New tests for new privileges
      mysql-test/r/sp.result:
        WL#925 - Privileges for stored routines
          Fix SHOW PRIVILEGES results
      mysql-test/r/system_mysql_db.result:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
          user and db tables have new privilege attributes
      mysql-test/t/grant2.test:
        Fix test
      mysql-test/t/show_check.test:
        Fix test
      mysql-test/t/sp-security.test:
        WL#925 - Privileges for stored routines
          Allow existing tests to run with new privilege checks
          New tests for privileges
      mysql-test/t/system_mysql_db_fix.test:
        WL#925 - Privileges for stored routines
          New system table: procs_priv
      scripts/mysql_create_system_tables.sh:
        WL#925 - Privileges for stored routines
          db and user has new privilege attributes
          new system table: procs_priv
      scripts/mysql_fix_privilege_tables.sql:
        WL#925 - Privileges for stored routines
          new system table: procs_priv
      scripts/mysql_install_db.sh:
        WL#925 - Privileges for stored routines
          Amend comment
      sql/item_func.cc:
        WL#925 - Privileges for stored routines
          Privilege check for stored FUNCTION routine
      sql/lex.h:
        WL#925 - Privileges for stored routines
          new token ROUTINE
      sql/mysql_priv.h:
        WL#925 - Privileges for stored routines
          New function: check_procedure_access()
      sql/mysqld.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/set_var.cc:
        WL#925 - Privileges for stored routines
          system option automatic-sp-privileges
      sql/share/errmsg.txt:
        WL#925 - Privileges for stored routines
          rename errormessage to conform:
            ER_SP_ACCESS_DENIED_ERROR -> ER_PROCACCESS_DENIED_ERROR
          New error messages
            ER_NONEXISTING_PROC_GRANT, ER_PROC_AUTO_GRANT_FAIL, ER_PROC_AUTO_REVOKE_FAIL
      sql/sp.cc:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sp.h:
        WL#925 - Privileges for stored routines
          new function: sp_exists_routine()
      sql/sql_acl.cc:
        WL#925 - Privileges for stored routines
          Implementation for SP privileges.
          Privileges are cached in memory hash.
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_revoke_privileges()
            sp_grant_privileges()
      sql/sql_acl.h:
        WL#925 - Privileges for stored routines
          New privilege bits: CREATE_PROC_ACL, ALTER_PROC_ACL
          Alter confusing bit-segments to be shifted
          New macros: fix_rights_for_procedure() get_rights_for_procedure()
          New functions:
            mysql_procedure_grant()
            check_grant_procedure()
            sp_grant_privileges()
            sp_revoke_privileges()
      sql/sql_lex.h:
        WL#925 - Privileges for stored routines
          new all_privileges attribute in LEX
      sql/sql_parse.cc:
        WL#925 - Privileges for stored routines
          Remove function: check_sp_definer_access()
          Add handling for SP grants/revokes
          Add privilege checks for stored procedure invocation
      sql/sql_show.cc:
        WL#925 - Privileges for stored routines
          update result for SHOW PRIVILEGES
      sql/sql_yacc.yy:
        WL#925 - Privileges for stored routines
          New token ROUTINE
          rename some rules
          handle CREATE ROUTINE / ALTER ROUTINE privileges
      09ce0b33
  28. 21 Dec, 2004 1 commit
  29. 16 Dec, 2004 1 commit
    • unknown's avatar
      Data truncation reporting implementation (libmysql) + post review · 7845f99a
      unknown authored
      fixes. Still to do: 
      -  deploy my_strtoll10 in limbysql.c
      - add mysql_options option to switch MYSQL_DATA_TRUNCATED on and off.
      
      
      include/my_time.h:
        More calls are shared between client and server (libmysql now performs
        more intelligent date->number and number->date conversions).
        TODO: rename those which are not starting with 'my_'
      include/mysql.h:
        MYSQL_BIND:
        - more elaborated comment
        - some of the ex-private members were given public names - 
          it's sometimes convenient to set bind->error to &bind->error_value.
          However Monty questions the idea, so it should be given
          more thought in future.
        - added new members to support data truncation.
        Added new return value of mysql_stmt_fetch, MYSQL_DATA_TRUNCATED.
      libmysql/libmysql.c:
        - added support for data truncation during fetch
        - implementation for is_binary_compatible: now conversion functions
          are used less frequently
        - we now use number_to_datetime and TIME_to_ulonglong for date->number and
          number->date conversions
      sql-common/my_time.c:
        - added implementation of date->number and number->date calls shared 
          between client and server (moved from time.cc).
      sql/field.cc:
        - implemented Field_time::store_time() to better support date->time
          conversions in prepared mode. After-review fixes.
      sql/field.h:
        - Field::store_time now returns int
      sql/mysql_priv.h:
        - removed date->number and number->date conversion functions headers
          (moved to my_time.h)
      sql/time.cc:
        - removed implementation of date->number and number->date conversion
          functions (moved to my_time.c)
      tests/client_test.c:
        - added a test case for data truncation; other test cases adjusted.
        - fixed my_process_stmt_result to set STMT_ATTR_UPDATE_MAX_LENGTH (tables
          are now printed out prettier).
      7845f99a
  30. 14 Dec, 2004 1 commit
  31. 13 Dec, 2004 1 commit
    • unknown's avatar
      WL#2274 - INSERT..SELECT..UPDATE · 46364ddb
      unknown authored
        UPDATE clause conflicts with SELECT for use of item_list field.
        Alter UPDATE clause to use new lex field update_list
        Tests included
      
      
      mysql-test/r/insert_update.result:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      mysql-test/t/insert_update.test:
        WL#2274
          New tests for INSERT..SELECT..UPDATE
      sql/mysql_priv.h:
        Remove function - insert_select_precheck()
      sql/sql_class.h:
        WL#2274
          New constructor for class select_insert
      sql/sql_insert.cc:
        WL#2274
          Move code into mysql_prepare_insert
          Add checks as param values may be NULL
      sql/sql_lex.cc:
        WL#2274
          initialize lex->update_list
      sql/sql_lex.h:
        WL#2274
          New field in LEX: update_list
      sql/sql_parse.cc:
        WL#2274
          INSERT..UPDATE clause now populates lex->update_list
          Remove redundant function: insert_select_precheck()
      sql/sql_prepare.cc:
        WL#2274
          invoke insert_precheck() instead of insert_select_precheck()
      sql/sql_yacc.yy:
        WL#2274
          Enable INSERT..SELECT..UPDATE syntax
          New rule - insert_update_list, to populate lex->update_list
      46364ddb
  32. 11 Dec, 2004 1 commit
    • unknown's avatar
      First commit to mysql-5.0 tree to include MySQL Federated Storage Handler.... · 7d2e580c
      unknown authored
      First commit to mysql-5.0 tree to include MySQL Federated Storage Handler. This includes both the source and header files, test (results, test, require), and modifications to server and handler base files, and autoconf modifications to properly build federated handler.
      
      
      configure.in:
        inclusion of federated handler autoheader macro
      mysql-test/mysql-test-run.sh:
        allow usage of replication tests for federated handler
      sql/Makefile.am:
        inclusion of federated header and source file
      sql/field.h:
        overloaded method val_str() to work with fields in 'old_data' in 'update_row()'
      sql/handler.cc:
        added code to include federated handler
      sql/handler.h:
        add db type for federated
      sql/mysql_priv.h:
        added code for federated handler
      sql/mysqld.cc:
        added code for federated handler
      sql/set_var.cc:
        added code for federated handler
      7d2e580c
  33. 09 Dec, 2004 2 commits
    • unknown's avatar
      Fix for bug #6765 "Implicit access to time zone description · 9ad51c63
      unknown authored
      tables requires privileges for them if some table or column level grants
      present" (with after-review fixes).
      
      We should set SELECT_ACL for implicitly opened tables in 
      my_tz_check_n_skip_implicit_tables() to be able to bypass privilege
      checking in check_grant(). Also we should exclude those tables from
      privilege checking in multi-update.
      
      
      mysql-test/r/timezone2.result:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      mysql-test/t/timezone2.test:
        Extended test for bug #6116 "SET time_zone := ... requires access to
        mysql.time_zone tables"
        Added test for bug #6765 "Implicit access to time zone description 
        tables requires privileges for them if some table or column level grants
        present"
      sql/item_geofunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/item_strfunc.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/log.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/mysql_priv.h:
        Now we have to include sql_acl.h before tztime.h, since 
        my_tz_check_n_skip_implicit_tables() defined there requires
        SELECT_ACL constant defined in sql_acl.h.
      sql/mysqld.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/repl_failsafe.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/set_var.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_acl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_base.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_cache.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_class.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_db.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_derived.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_do.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_insert.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_parse.cc:
        check_one_table_access(): Tweaked comments.
        multi_update_precheck(): Added skipping of implicitly opened tables
          during privilege checking.
      sql/sql_prepare.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_repl.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_show.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_update.cc:
        sql_acl.h is now included via mysql_priv.h
      sql/sql_yacc.yy:
        sql_acl.h is now included via mysql_priv.h
      sql/tztime.h:
        my_tz_check_n_skip_implicit_tables():
          We should set SELECT_ACL for implictly opened tables to be able to
          bypass privilege checking in check_grant().
      9ad51c63
    • unknown's avatar
      Added support for a LOCK TABLES...WHERE ENGINE = InnoDB query which sets · 0f99fe72
      unknown authored
      transactional table locks to tables mentioned in the query. These locks
      are released at the end of the transaction automatically.
      This is fix for bugs #5655, #5998 and issue #3762.
      
      
      
      
      innobase/include/lock0lock.h:
        Added a new lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/include/trx0trx.h:
        Added a varible to store the number of transactional table locks
        reserved by the transaction and stored in the trx_locks list.
      innobase/lock/lock0lock.c:
        Added a lock type LOCK_TABLE_TRANSACTIONAL.
      innobase/row/row0mysql.c:
        Added support for a transactional table lock.
      innobase/trx/trx0roll.c:
        Make compiler happy and format function.
      innobase/trx/trx0trx.c:
        Added information about number of explicit and transactional table locks in
        the innodb monitor.
      sql/ha_innodb.cc:
        Added support for a LOCK_TABLE_TRANSACTIONAL table lock (SQLCOM_LOCK_TABLES_TRANSACTIONAL).
        Transactional table locks are taken in the function ::transactional_table_lock().
      sql/ha_innodb.h:
        Added prototype for a function trandactional_table_lock().
      sql/handler.h:
        Added prototype for a virtual function transactional_table_lock().
        Handler does not need to implement this function.
      sql/lock.cc:
        Added a function transactional_lock_tables() to lock all tables in the list
        with transactional table lock. These locks can cause a deadlock and
        this error should be reported back to user.
      sql/mysql_priv.h:
        Added prototype for a function transactional_lock_tables().
      sql/sql_lex.h:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_parse.cc:
        Added SQLCOM_LOCK_TABLES_TRANSACTIONAL command.
      sql/sql_yacc.yy:
        Added parsing rules for a LOCK TABLES...WHERE ENGINE = x;
      0f99fe72
  34. 06 Dec, 2004 1 commit