1. 18 Jul, 2003 1 commit
    • unknown's avatar
      Fixed memory overrun when doing REPAIR on table with multi-part auto_increment... · 06517dfe
      unknown authored
      Fixed memory overrun when doing REPAIR on table with multi-part auto_increment key where one part was a packed CHAR
      
      
      myisam/mi_check.c:
        Fixed memory overrun in _mi_put_key_in_record
      myisam/mi_key.c:
        Fixed unnecessary memory allocation
      mysql-test/r/insert_select.result:
        Added test case for memory corruption
      mysql-test/t/insert_select.test:
        Added test case for memory corruption
      mysys/safemalloc.c:
        Removed compiler warnings
      sql/sql_acl.cc:
        Fixed core dump when running with --debug
      06517dfe
  2. 15 Jul, 2003 1 commit
    • unknown's avatar
      Portability fixes · 6159cd27
      unknown authored
      
      acinclude.m4:
        Made test for compress more reliable (for Solaris)
      sql/item_strfunc.cc:
        Portability fix (for Linux Alpha)
      6159cd27
  3. 14 Jul, 2003 12 commits
    • unknown's avatar
      merge · c36c37c3
      unknown authored
      
      mysql-test/r/rpl_max_relay_size.result:
        Auto merged
      c36c37c3
    • unknown's avatar
      Fixed wrong test in LOG::close · e97b2766
      unknown authored
      Fixed test for binary build
      
      
      mysql-test/r/rpl_max_relay_size.result:
        Fixed test for binary build
      mysql-test/t/rpl_max_relay_size.test:
        Fixed test for binary build
      sql/log.cc:
        Fixed wrong test in close
      e97b2766
    • unknown's avatar
      Added missing --replace_result for ports in SHOW SLAVE STATUS. · 45db29db
      unknown authored
      
      mysql-test/r/rpl_max_relay_size.result:
        result update
      mysql-test/t/rpl_max_relay_size.test:
        port-independent test
      45db29db
    • unknown's avatar
      errmsg.txt: · aa70f482
      unknown authored
        Correct a misleading error message about max row length
      
      
      sql/share/english/errmsg.txt:
        Correct a misleading error message about max row length
      aa70f482
    • unknown's avatar
      ha_innodb.h: · 66672ad1
      unknown authored
        Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed
      
      
      sql/ha_innodb.h:
        Revert the previous patch: MySQL would not allow creation of VARCHAR columns whose total max length is > 8000 bytes, though InnoDB can easily store them as trailing spaces are removed
      66672ad1
    • unknown's avatar
      ha_innodb.h: · 666d4717
      unknown authored
        Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes
      
      
      sql/ha_innodb.h:
        Fix wrong error message: If one tried to create table with a very big row len, MySQL claimed the max len is 64 kB for InnoDB, while it normally is 8000 bytes
      666d4717
    • unknown's avatar
      Better fix for bug #791: At binlog rotation, INSERTs may not find their way into the binlog · 128feded
      unknown authored
      
      mysql-test/t/rpl_flush_log_loop.test:
        Add timer to avoid problem when 'flush logs' is executed before we have read all data from master
      sql/log.cc:
        Better fix for bug #791:
        Mark log as LOG_TO_BE_OPENED instead of LOG_CLOSED when it's closed and opened.
      sql/mysqld.cc:
        Better startup message
      sql/slave.cc:
        Fix argument to close()
      sql/sql_class.h:
        Better handling of log.close()
      128feded
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · c4daa716
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      
      c4daa716
    • unknown's avatar
      e45b9ab4
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 3611f70a
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      
      3611f70a
    • unknown's avatar
      Safety and speedup fixes: · e1a30696
      unknown authored
      Changed is_open() to work as before.
      Added back inited argument to LOG
      
      
      mysql-test/r/rpl_flush_log_loop.result:
        Fixed results (probably bug in previous rpatch)
      sql/handler.cc:
        Changed is_open() to work as before
      sql/item_func.cc:
        Changed is_open() to work as before
      sql/log.cc:
        Part revert of previous patch.
        The reason for adding back 'inited' is that is that we can't be 100 % sure that init_pthread_objects() is called before mysqld dies (for example on windows)
        I removed mutex lock handling in is_open() as the new code didn't have ANY affect except beeing slower.
        Added back checking of is_open() to some functions as we don't want to do a mutex lock when we are not using logging.
        Indentation/comment fixes
      sql/log_event.cc:
        Changed is_open() to work as before
      sql/repl_failsafe.cc:
        Changed is_open() to work as before
      sql/sql_base.cc:
        Changed is_open() to work as before
      sql/sql_class.h:
        Changed is_open() to work as before. Added back 'inited' variable
      sql/sql_db.cc:
        Changed is_open() to work as before
      sql/sql_delete.cc:
        Changed is_open() to work as before
      sql/sql_insert.cc:
        Changed is_open() to work as before
      sql/sql_load.cc:
        Changed is_open() to work as before
      sql/sql_parse.cc:
        Changed is_open() to work as before
      sql/sql_rename.cc:
        Changed is_open() to work as before
      sql/sql_repl.cc:
        Changed is_open() to work as before
      sql/sql_table.cc:
        Changed is_open() to work as before
      sql/sql_update.cc:
        Changed is_open() to work as before
      e1a30696
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · c4381bb0
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      
      c4381bb0
  4. 13 Jul, 2003 2 commits
    • unknown's avatar
      srv0srv.c: · d1b9076e
      unknown authored
        Put back a 50 millisecond sleep in too high concurrency situations which I removed in the previous push; count also such sleeping threads to the InnoDB queue in SHOW INNODB STATUS
      
      
      innobase/srv/srv0srv.c:
        Put back a 50 millisecond sleep in too high concurrency situations which I removed in the previous push; count also such sleeping threads to the InnoDB queue in SHOW INNODB STATUS
      d1b9076e
    • unknown's avatar
      srv0srv.c: · 706dc59f
      unknown authored
        Fix a benign bug introduced in 4.0.14: InnoDB could complain 'Error: trying to declare trx to enter InnoDB' if several threads tried to init the auto-inc counter for the same table at the same time; in theory, the bug could even lead to a hang of the server, but that shuld be extremely improbable
      
      
      innobase/srv/srv0srv.c:
        Fix a benign bug introduced in 4.0.14: InnoDB could complain 'Error: trying to declare trx to enter InnoDB' if several threads tried to init the auto-inc counter for the same table at the same time; in theory, the bug could even lead to a hang of the server, but that shuld be extremely improbable
      706dc59f
  5. 12 Jul, 2003 6 commits
    • unknown's avatar
      srv0start.c, srv0srv.h, os0file.h, os0file.c: · bc479783
      unknown authored
        Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
      
      
      innobase/os/os0file.c:
        Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
      innobase/include/os0file.h:
        Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
      innobase/include/srv0srv.h:
        Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
      innobase/srv/srv0start.c:
        Allow also O_DIRECT as innodb_flush_method; it only affects writing to data files
      bc479783
    • unknown's avatar
      perror.c: · 91eb7ce1
      unknown authored
        fix typo.
      
      
      extra/perror.c:
        fix typo.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      91eb7ce1
    • unknown's avatar
      Cleaning after removing LOG_INFO_PURGE_NO_ROTATE. · 9480ec82
      unknown authored
      
      sql/sql_repl.cc:
        In my previous change I removed 'no_rotate' from MYSQL_LOG, so this made
        LOG_INFO_PURGE_NO_ROTATE useless (an error code which was never returned),
        so I remove it of the 'switch'.
      9480ec82
    • unknown's avatar
      Member no_rotate in MYSQL_LOG was always 0, I delete it. · 5526d454
      unknown authored
      
      sql/log.cc:
        Member no_rotate of MYSQL_LOG is useless; this shows it for sure:
        [guilhem@gbichot2 mysql-4.0]$ bk -r grep no_rotate
        sql/log.cc      1.83       no_rotate(0), need_start_event(1)
        sql/log.cc      1.75      if (no_rotate)
        sql/log.cc      1.89      if (!no_rotate)
        sql/sql_class.h 1.119     bool no_rotate;
        i.e. no_rotate is 0 all the time. So we don't need it.
        Biggest part of the patch is indentation change.
      sql/sql_class.h:
        suppress no_rotate
      5526d454
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 351a03df
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      351a03df
    • unknown's avatar
      removed 2 small useless if(). · 543208de
      unknown authored
      
      sql/log.cc:
        a comment for the future.
      sql/mysqld.cc:
        if (p) is not needed: fn_ext() always returns a valid pointed; the way
        to test if an extension was found is if (*p), not if (p).
        But here even if there's no extension, we still want to truncate opt_name
        to FN_REFLEN, so we always execute the code.
        By design, the test was always 'false' (because we strip the extension before
        testing if there's an extension) so log->set_no_rotate never executed.
      sql/sql_class.h:
        remove set_no_rotate as we don't need it.
      543208de
  6. 11 Jul, 2003 6 commits
    • unknown's avatar
      - fixed an error in the rpl_error_ignored_table test suite: the master · 1c5773ad
      unknown authored
         port number can be different from 3306 when doing the release builds
         with Do-compile, therefore it has to be replaced with the correct
         value during the test run using the "--replace_result" function.
      
      
      mysql-test/r/rpl_error_ignored_table.result:
         - replaced hard-coded master port number with MASTER_PORT variable, since
           the port number is different when running the test suite during the 
           release builds with "Do-compile".
      mysql-test/t/rpl_error_ignored_table.test:
         - replaced hard-coded master port number with MASTER_PORT variable, since
           the port number is different when running the test suite during the 
           release builds with "Do-compile".
      1c5773ad
    • unknown's avatar
      - fixed a typo in previous push · aa28da79
      unknown authored
      
      Build-tools/Bootstrap:
         - duh!
      aa28da79
    • unknown's avatar
      - fixed a bug in Bootstrap script: simply searching for the last tagged · 762b1346
      unknown authored
         ChangeSet was not sufficient to get the full ChangeLog between two
         released versions (when using "--changelog=last") as merging between 
         trees also merges the BK tags. Now we explicitely search for the last
         tagged ChangeSet that matches our major+minor version number, which 
         should match the last ChangeSet used for the previous release.
      
      
      Build-tools/Bootstrap:
         - fixed a bug: simply searching for the last tagged ChangeSet was not
           sufficient to get the full ChangeLog between two released versions
           (when using "--changelog=last") as merging between trees also merges
           the BK tags. Now we explicitely search for the last tagged ChangeSet
           that matches our major+minor version number, which should match the
           last ChangeSet used for the previous release.
      762b1346
    • unknown's avatar
      Fix for BUG#791: · d974959b
      unknown authored
      a safer way of initing the mutexes in MYSQL_LOG.
      is_open() is now always thread-safe.
      See each file for details.
      
      
      sql/handler.cc:
        is_open() with locks
      sql/item_func.cc:
        is_open() with locks
      sql/log.cc:
        No more 'inited'.
        We now always use is_open() in a thread-safe manner.
        This simplifies some functions (no more need to test is_open() twice).
      sql/log_event.cc:
        is_open() with locks
      sql/mysqld.cc:
        Init mutexes for the global MYSQL_LOG objects.
        We care about no_rotate, because we can't do it in open() anymore (because
        we don't have 'inited' anymore).
      sql/repl_failsafe.cc:
        is_open() with locks
      sql/slave.cc:
        init pthread objects (mutexes, conds) in the constructor of st_relay_log_info.
        Some better locking in rotate_relay_log().
      sql/sql_base.cc:
        is_open() with locks
      sql/sql_class.h:
        Before, we inited LOCK_log in MYSQL_LOG::open(), so in other places of the code
        when we were never 100% sure that it had been inited. For example, if the server
        was running without --log-bin, ::open() was not called so the mutex was not
        inited. We could detect it with !inited, but not safely as 'inited' was not
        protected by any mutex.
        So now:
        we *always* init the LOCK_log mutex, even if the log is not used. We can't init
        the mutex in MYSQL_LOG's constructor, because for global objects like
        mysql_bin_log, mysql_log etc, the constructor is called before MY_INIT(), but
        safe_mutex depends on MY_INIT(). So we have a new function MYSQL_LOG::init_pthread_objects
        which we call in main(), after MY_INIT().
        For the relay log, we call this function in the constructor of
        st_relay_log_info, which is called before any function tries to
        use the relay log (the relay log is always invoked as rli.relay_log).
        So now we should be safe in all cases and we don't need 'inited'.
      sql/sql_db.cc:
        is_open() with locks
      sql/sql_delete.cc:
        is_open() with locks
      sql/sql_insert.cc:
        is_open() with locks
      sql/sql_load.cc:
        is_open() with locks
      sql/sql_parse.cc:
        is_open() with locks
      sql/sql_rename.cc:
        is_open() with locks
      sql/sql_repl.cc:
        is_open() with locks
      sql/sql_table.cc:
        is_open() with locks
      sql/sql_update.cc:
        is_open() with locks
      d974959b
    • unknown's avatar
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · 3a894149
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      
      3a894149
  7. 10 Jul, 2003 2 commits
    • unknown's avatar
      Fix for BUG#812 · f200fa15
      unknown authored
      "mysqlhotcopy fails to copy tables but does not indicate a failure"
      ("does not indicate a failure");
      this is about "mysqlhotcopy fails to copy tables".
      
      
      mysql-test/t/rpl_error_ignored_table-slave.opt:
        added a missing newline
      scripts/mysqlhotcopy.sh:
        Fix for BUG#812.
        The problem was that with many tables to copy (10000 in the bug's example),
        the generated 'cp' command line was 1MB long, whereas (at least on my Linux) it
        should not exceed 128 kB. Testing the 'cp' in a shell terminal gives
        "arguments list too long".
        So we issue several small (100 kB) 'cp' command lines instead of a big one.
        Of course, this will still fail on systems where the limit is below 100 kB.
        We now have safe_system() which cuts the command line in pieces,
        and calls safe_simple_system() (execution) for each piece.
      f200fa15
    • unknown's avatar
      Fix for the bug #803. · 830e53c8
      unknown authored
      Now INTERVAL(NULL, N1, N2, ...) returns NULL.
      
      
      830e53c8
  8. 09 Jul, 2003 2 commits
    • unknown's avatar
      Merge mysql.com:/space/my/mysql-4.0 · 8a1a63de
      unknown authored
      into mysql.com:/space/my/mysql-4.0-build
      
      
      8a1a63de
    • unknown's avatar
      - enhanced the RPM spec file (use more RPM macros, cleanups, allow to · a71c2b3b
      unknown authored
         override CC/CXX when using a special compiler)
       - the RPM should now build on AMD64 and IA64, too
      
      
      support-files/MySQL-shared-compat.spec.sh:
         - use %_libdir macro instead of hardcoded value (required on AMD64,
           where %_libdir is /usr/lib64 instead)
      support-files/mysql.spec.sh:
         - removed the GIF Icon (file was not included in the sources anyway)
         - removed unused variable %shared_lib_version
         - do not run automake before building the standard binary
           (should not be necessary)
         - add server suffix '-standard' to standard binary (to be in line
           with the binary tarball distributions)
         - Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir,
           _datadir, _includedir) throughout the spec file (using _libdir was
           required to be used anyway to be able to build on AMD64).
         - allow overriding CC and CXX (required when building with other compilers)
      a71c2b3b
  9. 08 Jul, 2003 8 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 08843dd1
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      
      08843dd1
    • unknown's avatar
      Cleanups · 3c268e59
      unknown authored
      
      mysql-test/t/distinct.test:
        Cleanup
      sql/log.cc:
        Cleanup
      sql/slave.cc:
        Cleanup
      sql/sql_delete.cc:
        Cleanup
      sql/sql_parse.cc:
        Simple optimization
      3c268e59
    • unknown's avatar
      Merge lgrimmer@build.mysql.com:/home/bk/mysql-4.0 · 075fd01f
      unknown authored
      into mysql.com:/space/my/mysql-4.0
      
      
      075fd01f
    • unknown's avatar
      - Fixed mysqlhotcopy to actually abort if copying the tables failed. · b5b61594
      unknown authored
         (BUG#812)
      
      
      scripts/mysqlhotcopy.sh:
         - Actually die if copying the tables fails instead of going on as if
           nothing was wrong (BUG#812)
      b5b61594
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 5e817c53
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      
      sql/mysqld.cc:
        Auto merged
      5e817c53
    • unknown's avatar
      Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS · e13e857c
      unknown authored
      Removed double my_thread_end() which caused fatal error on windows if mysqld died on startup
      
      
      myisam/mi_extra.c:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      mysql-test/r/alter_table.result:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      mysql-test/t/alter_table.test:
        Test DISABLE/ENABLE KEY
      sql/ha_myisam.cc:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      sql/mysqld.cc:
        Removed double my_thread_end() which caused fatal error on windows if mysqld died on startup
      sql/sql_table.cc:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      sql/table.cc:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      sql/table.h:
        Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS
      e13e857c
    • unknown's avatar
      ha_innodb.cc: · f0f7eccc
      unknown authored
        Prevent the user from creating InnoDB tables with > 1000 columns
      
      
      sql/ha_innodb.cc:
        Prevent the user from creating InnoDB tables with > 1000 columns
      f0f7eccc
    • unknown's avatar
      No commit message · eb271ef8
      unknown authored
      No commit message
      eb271ef8