1. 28 Apr, 2004 10 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 7afbb734
      unknown authored
      into mysql.com:/home/my/mysql-4.0
      
      
      7afbb734
    • unknown's avatar
      Merge ltantony.dsl-verizon.net:/usr/home/antony/work/mysql-4.0 · 87026280
      unknown authored
      into ltantony.dsl-verizon.net:/usr/home/antony/work/bug3481
      
      
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      87026280
    • unknown's avatar
      Fix for Bug 3481 · 0d07fe42
      unknown authored
        CREATE statement allowed extra unnecessary commas
      
      
      mysql-test/r/alias.result:
        Extra comma removed in CREATE statement
      mysql-test/r/create.result:
        New test for Bug 3481
      mysql-test/r/func_str.result:
        Extra comma removed in CREATE statement
      mysql-test/r/rpl_multi_update.result:
        Extra comma removed in CREATE statement
      mysql-test/t/alias.test:
        Extra comma removed in CREATE statement
      mysql-test/t/create.test:
        New test for bug 3481
      mysql-test/t/func_str.test:
        Extra comma removed in CREATE statement
      mysql-test/t/rpl_multi_update.test:
        Extra comma removed in CREATE statement
      sql/sql_yacc.yy:
        Fix for bug 3481
          No path through the grammar which has no clauses
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      0d07fe42
    • unknown's avatar
      Fixed http address in some scripts (Bug #3460) · 8b9ecce0
      unknown authored
      Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19)) (portability fix)
      Fixed that INTERVAL can handle big integers. (Bug #3498)
      Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
      
      
      mysql-test/mysql-test-run.sh:
        Fixed wrong http address (Bug #3460)
      mysql-test/r/func_time.result:
        Results for new test cases
      mysql-test/t/func_time.test:
        Added test of INTERVAL with big integers
      scripts/mysqld_safe.sh:
        Added html address to manual in case of error
      sql/field.cc:
        Output TIMESTAMP in 4.1 format for 4.1 tables (or for TIMESTAMP(19))
      sql/item_timefunc.cc:
        Fixed that INTERVAL can handle big integers. (Bug #3498)
      sql/mysql_priv.h:
        Removed not needed prototype
      sql/sql_acl.cc:
        Fixed that hostname="" works identical as hostname="%" for table/column grants (Bug #3473)
        Moved GRANT_TABLE::GRANT_TABLE functions ou from class definition to make it possible to debug them
      sql/structs.h:
        Fix for long values to INTERVAL
      8b9ecce0
    • unknown's avatar
      Merge marko@build.mysql.com:/home/bk/mysql-4.0 · 4118e3fb
      unknown authored
      into hundin.mysql.fi:/home/marko/l/mysql-4.0
      
      
      4118e3fb
    • unknown's avatar
      InnoDB: make UNIV_SYNC_DEBUG useable again · 74b70e0d
      unknown authored
      
      innobase/include/sync0sync.h:
        mutex_get_debug_info(): add const qualifier
      innobase/srv/srv0start.c:
        Set srv_monitor_file_mutex at level SYNC_NO_ORDER_CHECK
      innobase/sync/sync0arr.c:
        sync_array_detect_deadlock(): Remove extraneous declaration of "lock"
      innobase/sync/sync0sync.c:
        mutex_get_debug_info(): add const qualifier
      74b70e0d
    • unknown's avatar
      memory overflow in replace.c fixed · 3ac0c7d8
      unknown authored
      3ac0c7d8
    • unknown's avatar
      ad3d7a21
    • unknown's avatar
      bug#3556 - soundex · fdee1cbb
      unknown authored
      fdee1cbb
    • unknown's avatar
      Fixed stack overrun with some INSERT ... SELECT ... GROUP BY queries (Bug #3265) · b0a8fde8
      unknown authored
      Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE. (Bug #3182)
      
      
      mysql-test/r/raid.result:
        Test of raid_chunks > 255
      mysql-test/t/raid.test:
        Test of raid_chunks > 255
      sql/item.cc:
        Fixed wrong usage of str_value in Item::save_in_field
        This could caused a stack overrun with some very special INSERT ... SELECT ... GROUP BY queries where the GROUP BY value was an expression that generated a NULL value. (Bug #3265)
        The Item_copy_string::save_in_field() function is from 4.1 and helps optimized this case a bit
      sql/item.h:
        Fixed wrong usage of str_value in Item_copy_string::save_in_field
      sql/sql_insert.cc:
        More debug information
      sql/table.cc:
        Ensure that raid_chunks is not set to higher than 255 as this could cause problems with DROP DATABASE.
        Another problem with values > 255 is that in the .frm file we store the chunks value in one byte.
        (Bug #3182)
      b0a8fde8
  2. 27 Apr, 2004 1 commit
  3. 24 Apr, 2004 2 commits
  4. 21 Apr, 2004 1 commit
  5. 13 Apr, 2004 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · d1214e2c
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      d1214e2c
    • unknown's avatar
      Fix for BUG#3461 "multi-table DELETE replicated despite replicate-wild-ignore-table": · 0cd58c6c
      unknown authored
      In tables_ok(), when there is no table having "updating==TRUE" in the list,
          return that we don't replicate this statement (the slave is supposed to
          replicate *changes* only).
          In practice, the case can only happen for this statement:
          DELETE t FROM t,u WHERE ... ;
          tables_ok(t,u) will now return 0, which (check all_tables_not_ok())
          will give a chance to tables_ok(t) to run.
      
      
      sql/slave.cc:
        In tables_ok(), when there is no table having "updating==TRUE" in the list,
        return that we don't replicate this statement (the slave is supposed to
        replicate *changes* only).
        In practice, the case can only happen for this statement:
        DELETE t FROM t,u WHERE ... ;
        tables_ok(t,u) will now return 0, which (check all_tables_not_ok())
        will give a chance to tables_ok(t) to run.
      0cd58c6c
  6. 12 Apr, 2004 1 commit
    • unknown's avatar
      Fix typos that resulted in adding names to the global namespace that · c73efc80
      unknown authored
      were never defined.  This potentially caused problems when trying to link
      libmysqld with shared libraries.
      
      
      strings/longlong2str-x86.s:
        typo: longlong10_str -> longlong10_to_str
      strings/strings-x86.s:
        typo: strxmov_end-strxmov -> .strxmov_end-strxmov
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      c73efc80
  7. 09 Apr, 2004 4 commits
  8. 08 Apr, 2004 4 commits
    • unknown's avatar
      Fix for BUG#3422 "In 3.23 -> 4.0 replication, slave segfault when replicating LOAD DATA INFILE": · 1f01df0e
      unknown authored
      as we transform the 3.23 Load_log_event into a 4.0 Create_file_log_event which is one
      byte longer, we need to increment event_len. The bug was that we did not increment it,
      so later in code the end 0 was not seen so there was for example a segfault in
      strlen(fname) because fname was not 0-terminated.
      Other problems remain in 3.23->4.0 replication of LOAD DATA INFILE but they are less serious:
      Exec_master_log_pos and Relay_log_space are incorrect. I'll document them.
      They are not fixable without significant code changes (if you fix those problems in 4.0,
      you get assertion failures somewhere else etc), * which are already done in 5.0.0 *.
      
      
      sql/slave.cc:
        In 3.23->4.0 replication of LOAD DATA INFILE:
        as we transform the 3.23 Load_log_event into a 4.0 Create_file_log_event which is one
        byte longer, we need to increment event_len.
        So we need to modify the event_len stored in the event.
        And we need to decrement event_len when we compute the offset in the master's binlog.
      1f01df0e
    • unknown's avatar
      Merge marko@build.mysql.com:/home/bk/mysql-4.0 · a5d016ec
      unknown authored
      into hundin.mysql.fi:/home/marko/j/mysql-4.0
      
      
      a5d016ec
    • unknown's avatar
      InnoDB: Fix a preprocessor error introduced in ChangeSet 1.1772 · 97f6935e
      unknown authored
      
      innobase/sync/sync0sync.c:
        Fix a preprocessor error introduced in ChangeSet 1.1772
      97f6935e
    • unknown's avatar
      sql_select.cc: · 26764a7b
      unknown authored
        Fix a glitch reported by Philippe Lewicki on the general mailing list: do not print a warning to the .err log if read_key fails with a lock wait timeout error 146
      
      
      sql/sql_select.cc:
        Fix a glitch reported by Philippe Lewicki on the general mailing list: do not print a warning to the .err log if read_key fails with a lock wait timeout error 146
      26764a7b
  9. 07 Apr, 2004 3 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · d94cf5fb
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      d94cf5fb
    • unknown's avatar
      Fix for BUG#3415 "mysqlbinlog loses a USE command when LOAD DATA INFILE is involved": · 726917a2
      unknown authored
      if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you
      have not actually changed the db in the server).
      
      
      sql/log_event.cc:
        if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you
        have not actually changed the db in the server).
      726917a2
    • unknown's avatar
      InnoDB: Remove debug functions unless #ifdef UNIV_DEBUG · 095d6463
      unknown authored
      
      innobase/btr/btr0btr.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0buf.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0flu.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0lru.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/buf/buf0rea.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/data/data0type.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/dict/dict0dict.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/fsp/fsp0fsp.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/fut/fut0lst.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/ibuf/ibuf0ibuf.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/btr0btr.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0buf.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0buf.ic:
        Remove global declaration of buf_dbg_counter
      innobase/include/buf0flu.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/buf0lru.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/data0type.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/dict0dict.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/fsp0fsp.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/fut0lst.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/lock0lock.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/mem0dbg.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/mem0dbg.ic:
        Add #ifdef UNIV_MEM_DEBUG around debug code
      innobase/include/mem0pool.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/mtr0mtr.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/pars0opt.h:
        Add #ifdef UNIV_SQL_DEBUG around debug code
      innobase/include/sync0rw.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/sync0sync.h:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/include/trx0sys.h:
        Add #ifdef UNIV_HOTBACKUP around InnoDB Hot Backup specific code
      innobase/lock/lock0lock.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/mem/mem0dbg.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/mem/mem0pool.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/mtr/mtr0mtr.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/pars/pars0opt.c:
        Add #ifdef UNIV_SQL_DEBUG around debug code
      innobase/srv/srv0start.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/sync/sync0rw.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/sync/sync0sync.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/trx/trx0roll.c:
        Add #ifdef UNIV_DEBUG around debug code
      innobase/trx/trx0sys.c:
        Add #ifdef UNIV_HOTBACKUP around InnoDB Hot Backup specific code
      095d6463
  10. 06 Apr, 2004 6 commits
    • unknown's avatar
      Fix for BUG#3401 "Rare replication bug which leads to "Binlog has bad magic number" from slave": · 1f50a034
      unknown authored
      Backport of a part of this changeset of 4.1:
      ChangeSet@1.1753.1.1, 2004-04-05 13:56:05+03:00, monty@mysql.com
      which fixes the bug.
      
      
      sql/slave.cc:
        even if mi is already inited (replication already run once before),
        we need to seek back to the beginning of the relay log to be able
        to later check the binlog's magic number.
      1f50a034
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · aacdf1ee
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      aacdf1ee
    • unknown's avatar
      This is a fix for a bug in 3.23 -> 4.0 replication: Exec_master_log_pos is always · e3f0177b
      unknown authored
      too big by 6 bytes. So I add code to substract 6 bytes if the master is 3.23.
      This is not perfect (because it won't work if the slave I/O thread has not
      noticed yet that the master is 3.23), but as long as the slave I/O thread
      starts Exec_master_log_pos will be ok.
      It must be merged to 4.1 but not to 5.0 (or it can be, because of #if MYSQL_VERSION_ID),
      because 5.0 already works if the master is 3.23 (and in a more natural way:
      in 5.0 we store the end_log_pos in the binlog and relay log).
      I had to move functions from slave.h to slave.cc to satisfy gcc.
      
      
      sql/log_event.cc:
        make the event's length 6 bytes shorter if the master is 3.23
      sql/slave.cc:
        Moving several st_relay_log_info methods out of the declaration of the struct,
        because gcc complained that 'mi' was not declared.
        Substracting 6 bytes from the event's length in inc_pos() if the master is 3.23.
      sql/slave.h:
        moving several methods out of the declaration of st_relay_log_info.
        Removing 'inline', let's have the compiler decide.
      e3f0177b
    • unknown's avatar
      InnoDB: send diagnostic output to stderr or files · 80fe399f
      unknown authored
      instead of stdout or fixed-size memory buffers
      
      
      innobase/btr/btr0btr.c:
        Output to stderr; quote table and index names
      innobase/btr/btr0cur.c:
        Output to stderr; quote table and index names
      innobase/btr/btr0sea.c:
        Output to stderr
      innobase/buf/buf0buf.c:
        Output to stderr; quote table and index names
      innobase/buf/buf0flu.c:
        Output to stderr
      innobase/buf/buf0lru.c:
        Output to stderr
      innobase/buf/buf0rea.c:
        Output to stderr
      innobase/data/data0data.c:
        Remove dtuple_validate() unless #ifdef UNIV_DEBUG
        Remove unnecessary sprintf() calls
        Output to stderr
      innobase/data/data0type.c:
        Output to stderr
      innobase/dict/dict0boot.c:
        Remove dummy call to printf()
      innobase/dict/dict0crea.c:
        Output diagnostic information to stream, not to memory
      innobase/dict/dict0dict.c:
        Output diagnostics to a file, not to a memory buffer
      innobase/dict/dict0load.c:
        Output to stderr; quote table and index names
      innobase/eval/eval0eval.c:
        Output to stderr
      innobase/fil/fil0fil.c:
        Output to stderr
      innobase/fsp/fsp0fsp.c:
        Output to stderr
        Avoid sprintf()
      innobase/fut/fut0lst.c:
        Output to stderr
      innobase/ha/ha0ha.c:
        Output to stream, not to memory buffer
      innobase/ibuf/ibuf0ibuf.c:
        Output to stderr
        Avoid sprintf()
      innobase/include/buf0buf.h:
        Output to stream, not to memory buffer
      innobase/include/buf0buf.ic:
        Use %p for displaying pointers
      innobase/include/data0data.h:
        Remove dtuple_sprintf()
      innobase/include/dict0dict.h:
        Output to stream, not to memory buffer
      innobase/include/ha0ha.h:
        Output to stream, not to memory buffer
      innobase/include/ibuf0ibuf.h:
        Output to stream, not to memory buffer
      innobase/include/lock0lock.h:
        Output to stream, not to memory buffer
      innobase/include/log0log.h:
        Output to stream, not to memory buffer
      innobase/include/mtr0log.ic:
        Output to stderr
        Display pointers with %p
      innobase/include/os0file.h:
        Output to stream, not to memory buffer
      innobase/include/rem0rec.h:
        Remove rec_sprintf()
      innobase/include/rem0rec.ic:
        Output to stderr
      innobase/include/row0sel.ic:
        Output to stderr
      innobase/include/row0upd.ic:
        Quote table and index names
      innobase/include/srv0srv.h:
        Remove srv_sprintf_innodb_monitor()
      innobase/include/sync0arr.h:
        Output to stream, not to memory buffer
      innobase/include/sync0sync.h:
        Output to stream, not to memory buffer
      innobase/include/trx0sys.h:
        Output to stderr
      innobase/include/trx0trx.h:
        Output to stream, not to memory buffer
      innobase/include/ut0ut.h:
        Remove ut_sprintf_buf()
        Add ut_print_name(), ut_print_namel() and ut_copy_file()
      innobase/lock/lock0lock.c:
        Output to stream, not to memory buffer
      innobase/log/log0log.c:
        Output to stderr
      innobase/log/log0recv.c:
        Output to stderr
      innobase/mem/mem0dbg.c:
        Output to stderr
      innobase/mtr/mtr0log.c:
        Display pointers with %p
      innobase/mtr/mtr0mtr.c:
        Output to stderr
      innobase/os/os0file.c:
        Output to stream, not to memory buffer
      innobase/os/os0proc.c:
        Output to stderr
      innobase/os/os0thread.c:
        Output to stderr
      innobase/page/page0cur.c:
        Output to stderr
      innobase/page/page0page.c:
        Avoid sprintf()
        Output to stderr instead of stdout
      innobase/pars/pars0opt.c:
        Output to stderr instead of stdout
      innobase/rem/rem0rec.c:
        Remove rec_sprintf()
        Output to stderr instead of stdout
      innobase/row/row0ins.c:
        Output diagnostics to stream instead of memory buffer
      innobase/row/row0mysql.c:
        Output to stderr instead of stdout
        Quote table and index names
      innobase/row/row0purge.c:
        Output to stderr instead of stdout
      innobase/row/row0row.c:
        Quote table and index names
      innobase/row/row0sel.c:
        Output to stderr instead of stdout
        Quote table and index names
      innobase/row/row0umod.c:
        Avoid sprintf()
        Quote table and index names
      innobase/row/row0undo.c:
        Output to stderr instead of stdout
      innobase/row/row0upd.c:
        Avoid sprintf()
      innobase/srv/srv0srv.c:
        Output to stderr instead of stdout
      innobase/srv/srv0start.c:
        Handle srv_monitor_file
        Make some global variables static
      innobase/sync/sync0arr.c:
        Output to stderr instead of stdout
        Output to stream instead of memory buffer
      innobase/sync/sync0rw.c:
        Output to stderr instead of stdout
      innobase/sync/sync0sync.c:
        Output to stderr instead of stdout
        Output to stream instead of memory buffer
      innobase/trx/trx0purge.c:
        Output to stderr instead of stdout
      innobase/trx/trx0rec.c:
        Quote index and table names
        Avoid sprintf()
      innobase/trx/trx0roll.c:
        Quote identifier names
        Output to stderr instead of stdout
      innobase/trx/trx0sys.c:
        Output to stderr instead of stdout
      innobase/trx/trx0trx.c:
        Output to stream instead of memory buffer
      innobase/trx/trx0undo.c:
        Output to stderr instead of stdout
      innobase/ut/ut0ut.c:
        Declare mysql_get_identifier_quote_char()
        Remove ut_sprintf_buf()
        Add ut_print_name() and ut_print_namel()
        Add ut_copy_file()
      sql/ha_innodb.cc:
        innobase_mysql_print_thd(): output to stream, not to memory buffer
        Add mysql_get_identifier_quote_char()
        Remove unused function innobase_print_error()
        Display pointers with %p
        Buffer InnoDB output via files, not via statically allocated memory
      80fe399f
    • unknown's avatar
      Merge marko@build.mysql.com:/home/bk/mysql-4.0 · d809c441
      unknown authored
      into hundin.mysql.fi:/home/marko/j/mysql-4.0
      
      
      d809c441
    • unknown's avatar
      Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0 · 68ffa06f
      unknown authored
      into eagle.mysql.r18.ru:/home/vva/work/BUG_3361/mysql-4.0
      
      
      68ffa06f
  11. 05 Apr, 2004 6 commits