1. 14 Jul, 2003 5 commits
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · c5a45c1c
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      c5a45c1c
    • unknown's avatar
      7ec4bd95
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · d2739887
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      d2739887
    • unknown's avatar
      Safety and speedup fixes: · 852e2b0f
      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
      852e2b0f
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · f3b5cbcb
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      f3b5cbcb
  2. 13 Jul, 2003 2 commits
    • unknown's avatar
      srv0srv.c: · 78f1ee24
      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
      78f1ee24
    • unknown's avatar
      srv0srv.c: · 0e0cb1f3
      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
      0e0cb1f3
  3. 12 Jul, 2003 6 commits
    • unknown's avatar
      srv0start.c, srv0srv.h, os0file.h, os0file.c: · f177b92f
      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
      f177b92f
    • unknown's avatar
      perror.c: · e542d8a1
      unknown authored
        fix typo.
      
      
      extra/perror.c:
        fix typo.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      e542d8a1
    • unknown's avatar
      Cleaning after removing LOG_INFO_PURGE_NO_ROTATE. · b6ad6d5c
      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'.
      b6ad6d5c
    • unknown's avatar
      Member no_rotate in MYSQL_LOG was always 0, I delete it. · a0a2be1d
      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
      a0a2be1d
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 835dabd9
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      835dabd9
    • unknown's avatar
      removed 2 small useless if(). · 9b8f7a09
      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.
      9b8f7a09
  4. 11 Jul, 2003 6 commits
    • unknown's avatar
      - fixed an error in the rpl_error_ignored_table test suite: the master · dd2d33d7
      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".
      dd2d33d7
    • unknown's avatar
      - fixed a typo in previous push · bfe3dba9
      unknown authored
      
      Build-tools/Bootstrap:
         - duh!
      bfe3dba9
    • unknown's avatar
      - fixed a bug in Bootstrap script: simply searching for the last tagged · 43b22490
      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.
      43b22490
    • unknown's avatar
      Fix for BUG#791: · 917b4fb0
      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
      917b4fb0
    • unknown's avatar
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0 · 397f5143
      unknown authored
      into mysql.r18.ru:/usr/home/ram/work/4.0
      
      397f5143
  5. 10 Jul, 2003 2 commits
    • unknown's avatar
      Fix for BUG#812 · 92fd3249
      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.
      92fd3249
    • unknown's avatar
      Fix for the bug #803. · f9625482
      unknown authored
      Now INTERVAL(NULL, N1, N2, ...) returns NULL.
      
      f9625482
  6. 09 Jul, 2003 2 commits
    • unknown's avatar
      Merge mysql.com:/space/my/mysql-4.0 · 95971ba6
      unknown authored
      into mysql.com:/space/my/mysql-4.0-build
      
      95971ba6
    • unknown's avatar
      - enhanced the RPM spec file (use more RPM macros, cleanups, allow to · 87826743
      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)
      87826743
  7. 08 Jul, 2003 14 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 623a015b
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      623a015b
    • unknown's avatar
      Cleanups · cf092c8c
      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
      cf092c8c
    • unknown's avatar
      Merge lgrimmer@build.mysql.com:/home/bk/mysql-4.0 · 58c07482
      unknown authored
      into mysql.com:/space/my/mysql-4.0
      
      58c07482
    • unknown's avatar
      - Fixed mysqlhotcopy to actually abort if copying the tables failed. · 62edc2cd
      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)
      62edc2cd
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 0d360862
      unknown authored
      into mashka.mysql.fi:/home/my/mysql-4.0
      
      
      sql/mysqld.cc:
        Auto merged
      0d360862
    • unknown's avatar
      Fixed bug in ALTER TABLE ... DISABLE/ENABLE KEYS · 9388c6fd
      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
      9388c6fd
    • unknown's avatar
      ha_innodb.cc: · 030df074
      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
      030df074
    • unknown's avatar
      No commit message · 9b574248
      unknown authored
      No commit message
      9b574248
    • unknown's avatar
      mysqlhotcopy.sh: · 2206d208
      unknown authored
        Undo serg's patch that used my_print_defaults,
        and instead simply do not define $opt{user}.
        This allows the script to use option files properly.
      
      
      scripts/mysqlhotcopy.sh:
        Undo serg's patch that used my_print_defaults,
        and instead simply do not define $opt{user}.
        This allows the script to use option files properly.
      2206d208
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.0/ · 70a25895
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.0
      
      70a25895
    • unknown's avatar
      a2c8e6fa
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 22945c5d
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      22945c5d
    • unknown's avatar
      Fix for · 0a93e156
      unknown authored
      BUG#797 "If query ignored on slave (replicate-ignore-table) the slave still checks if
      the returned error (0) is the same as the one on the master, whereas it shouldn't
      test this.
      Plus a new test for BUG#797.
      
      
      include/mysqld_error.h:
        New error code (can be sent only to the slave thread, not to normal clients).
      sql/log.cc:
        removed comment from a previous debugging.
      sql/log_event.cc:
        ER_SLAVE_IGNORED_TABLE is an ignorable error.
      sql/share/czech/errmsg.txt:
        for BUG#797
      sql/share/danish/errmsg.txt:
        for BUG#797
      sql/share/dutch/errmsg.txt:
        for BUG#797
      sql/share/english/errmsg.txt:
        for BUG#797
      sql/share/estonian/errmsg.txt:
        for BUG#797
      sql/share/french/errmsg.txt:
        for BUG#797
      sql/share/german/errmsg.txt:
        for BUG#797
      sql/share/greek/errmsg.txt:
        for BUG#797
      sql/share/hungarian/errmsg.txt:
        for BUG#797
      sql/share/italian/errmsg.txt:
        for BUG#797
      sql/share/japanese/errmsg.txt:
        for BUG#797
      sql/share/korean/errmsg.txt:
        for BUG#797
      sql/share/norwegian-ny/errmsg.txt:
        for BUG#797
      sql/share/norwegian/errmsg.txt:
        for BUG#797
      sql/share/polish/errmsg.txt:
        for BUG#797
      sql/share/portuguese/errmsg.txt:
        for BUG#797
      sql/share/romanian/errmsg.txt:
        for BUG#797
      sql/share/russian/errmsg.txt:
        for BUG#797
      sql/share/slovak/errmsg.txt:
        for BUG#797
      sql/share/spanish/errmsg.txt:
        for BUG#797
      sql/share/swedish/errmsg.txt:
        for BUG#797
      sql/share/ukrainian/errmsg.txt:
        for BUG#797
      sql/sql_parse.cc:
        when in sql_parse in the slave thread we ignore the query because of replicate-do
        and replicate-ignore options, we return a specific error to the slave thread,
        so that it knows that the query has been ignored (which is different from a
        successful query).
        A small cleanup (test was done twice).
      0a93e156
    • unknown's avatar
      trx0trx.c: · 919aeebe
      unknown authored
        A cosmetic change: set trx id to zero at creation so that SHOW INNODB STATUS does not print a random value for the id of a transaction object for which the transaction has never been started yet (for example, running SHOW INNODB STATUS as the first command from a mysql prompt printed a random id for the trx object associated with the session itself running the SHOW INNODB STATUS command)
      
      
      innobase/trx/trx0trx.c:
        A cosmetic change: set trx id to zero at creation so that SHOW INNODB STATUS does not print a random value for the id of a transaction object for which the transaction has never been started yet (for example, running SHOW INNODB STATUS as the first command from a mysql prompt printed a random id for the trx object associated with the session itself running the SHOW INNODB STATUS command)
      919aeebe
  8. 07 Jul, 2003 3 commits