1. 29 Jul, 2004 2 commits
    • unknown's avatar
      Reverting a line I had just added to slave.cc (mutex is already locked · faad9918
      unknown authored
      when we come at this place).
      
      
      sql/slave.cc:
        stupid me; this line is a mistake
      faad9918
    • unknown's avatar
      Avoiding a theoretically possible crash (pthread_mutex_lock(0)) which could... · e62048fa
      unknown authored
      Avoiding a theoretically possible crash (pthread_mutex_lock(0)) which could (at least in POSIX Threads books)
      happen on SMP machines, when a thread is going to wait on a condition and it is KILLed at the
      same time.
      Cleaning code a bit by adding a test in enter_cond() that we have the mutex (was already the case in all places
      where it's called except one which is fixed here).
      
      
      sql/log.cc:
        safe_mutex_assert_owner() is now in THD::enter_cond()
      sql/slave.cc:
        lock mutex before waiting on condition.
      sql/sql_class.cc:
        THD::awake(): before locking the mutex, let's test it's not zero;
        in theory indeed, the killer thread may see current_cond non-zero and current_mutex zero
        (order of assignments is not guaranteed by POSIX).
        A comment noting that there is still a small chance a KILL does not work and needs
        being re-issued.
      sql/sql_class.h:
        Assert in enter_cond() that we have the mutex.
        It is already the case in all places where we call enter_cond(), so better ensure it there.
      e62048fa
  2. 18 Jul, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT" · fc488787
      unknown authored
      The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
      of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
      
      
      sql/sql_insert.cc:
        Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
        The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
        of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
        And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
        as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
        back and so nothing is written in the binlog. So temp table MUST be deleted.
      fc488787
  3. 17 Jul, 2004 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 301e972a
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      301e972a
    • unknown's avatar
      Fixes for · fe3e2470
      unknown authored
      BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
      BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
      It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
      which does not display the "# at" lines.
      
      
      client/mysqlbinlog.cc:
        Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
        when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
      sql/sql_table.cc:
        Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
        we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
        in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
      fe3e2470
  4. 15 Jul, 2004 2 commits
    • unknown's avatar
      InnoDB: limit the recursion depth for ON (UPDATE|DELETE) CASCADE · 95fb41b2
      unknown authored
      (Bug #4446)
      
      
      innobase/row/row0ins.c:
        row_ins_foreign_check_on_constraint(): limit recursion for UPDATE too
      mysql-test/r/innodb.result:
        Add test for recursion depth limit
      mysql-test/t/innodb.test:
        Add test for recursion depth limit
      95fb41b2
    • unknown's avatar
      btr0cur.c: · 90aa7d70
      unknown authored
        Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
      
      
      innobase/btr/btr0cur.c:
        Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
      90aa7d70
  5. 13 Jul, 2004 5 commits
  6. 12 Jul, 2004 4 commits
    • unknown's avatar
      InnoDB: LOCK TABLES clean-up, part 2 · ed4e47a6
      unknown authored
      
      innobase/lock/lock0lock.c:
        Decrement n_lock_table_exp in lock_table_dequeue(), not elsewhere
      ed4e47a6
    • unknown's avatar
      InnoDB: LOCK TABLE clean-up · 922fbbab
      unknown authored
      
      innobase/include/lock0lock.h:
        Improve comments regarding LOCK_TABLE_EXP
      innobase/include/row0mysql.h:
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
        and improve its comment
      innobase/include/trx0trx.h:
        Rename n_tables_locked to n_lock_table_exp
      innobase/lock/lock0lock.c:
        Rename n_tables_locked to n_lock_table_exp
        Increment n_lock_table_exp already in lock_table_create()
        Replace some ut_ad() assertions with ut_a()
      innobase/row/row0mysql.c:
        Rename n_tables_locked to n_lock_table_exp
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
        and improve its comment
      innobase/trx/trx0trx.c:
        Rename n_tables_locked to n_lock_table_exp
      sql/ha_innodb.cc:
        Rename n_tables_locked to n_lock_table_exp
        Rename row_unlock_table_for_mysql() to row_unlock_tables_for_mysql()
      922fbbab
    • unknown's avatar
      InnoDB: Increment the lock wait watchdog timeout during CHECK TABLE · 994c762f
      unknown authored
      (Bug #2694)
      
      
      innobase/include/srv0srv.h:
        Add srv_fatal_semaphore_wait_threshold
      innobase/include/sync0arr.h:
        Improve comment of sync_array_print_long_waits()
      innobase/row/row0mysql.c:
        Lengthen the srv_fatal_semaphore_wait_threshold by 2 hours during
        CHECK TABLE
      innobase/srv/srv0srv.c:
        Add srv_fatal_semaphore_wait_threshold
      innobase/sync/sync0arr.c:
        Improve comment of sync_array_print_long_waits().
        Replace the fixed timeout of 600 seconds with
        srv_fatal_semaphore_wait_threshold.
      994c762f
    • unknown's avatar
      srv0start.c: · f9f7608e
      unknown authored
        innobase_start_or_create_for_mysql(): Rename innodb.status.<pid>
        to innodb_status.<pid> to avoid problems on VMS
      
      
      innobase/srv/srv0start.c:
        innobase_start_or_create_for_mysql(): Rename innodb.status.<pid>
        to innodb_status.<pid> to avoid problems on VMS
      f9f7608e
  7. 10 Jul, 2004 2 commits
  8. 09 Jul, 2004 1 commit
    • unknown's avatar
      mysqlhotcopy: · a85115a3
      unknown authored
        fix MYI copying with scp
        safer tempfile creation
      
      
      scripts/mysqlhotcopy.sh:
        fix MYI copying with scp
        safer tempfile creation
      a85115a3
  9. 08 Jul, 2004 7 commits
  10. 07 Jul, 2004 3 commits
  11. 05 Jul, 2004 2 commits
    • unknown's avatar
      my_lib.c: · 416fd822
      unknown authored
        more accurate comment
      
      
      mysys/my_lib.c:
        more accurate comment
      416fd822
    • unknown's avatar
      Windows-specific: · e6ff5f23
      unknown authored
      Fix for BUG#4375 "Windows specific directories are copied during
      replication": in the Windows version of my_dir(), do not show hidden
      or system files which Windows sometimes creates in the root directory
      of drive (like RECYCLER and SYSTEM VOLUME INFORMATION directories) (so
      this problem showed up only when the datadir was the root dir of a
      drive).
      This will make SHOW DATABASES display better, and will do no harm to
      MySQL. For example, DROP DATABASE will not miss some files, as MySQL
      creates no hidden or system files.
      
      
      mysys/my_lib.c:
        In my_dir(), do not show hidden or system files
        which Windows sometimes creates.
      e6ff5f23
  12. 02 Jul, 2004 1 commit
    • unknown's avatar
      Fixing a bug in mysqltest.c: · 844c4973
      unknown authored
      if a command has a comment at the end of line, like:
      error 2002 ; # this is error 2002
      then the parsing of comment should not make mysqltest
      forget about the value of expected error.
      Reason it forgot it (so the next query caused the test to fail)
      is that internally the above line is 2 queries.
      
      
      
      client/mysqltest.c:
        if a command has a comment at the end of line, like:
        error 2002 ; # this is error 2002
        then the parsing of comment should not make mysqltest
        forget about the value of expected error.
      844c4973
  13. 01 Jul, 2004 1 commit
  14. 30 Jun, 2004 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 584be1f9
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      584be1f9
    • unknown's avatar
      Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in · 3dca1b36
      unknown authored
      processlist on slave":
      we now report in SHOW PROCESSLIST that we are writing to the temp
      files or loading the table. When we are writing to the tmp file:
      | 3  | system user |                 |    | Connect | 6    | Making temp file /tmp/SQL_LOAD-2-1-2.data | 
      and when we are actually loading the .data temp file into the table:
      | 3  | system user |                 | test | Connect | 2    | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> |
      
      
      sql/log_event.cc:
        Replication of LOAD DATA INFILE:
        we now report in SHOW PROCESSLIST that we are creating
        the temp files or loading the table.
        Plus removing a line which had a comment "should not be needed"
        and a guarding assertion which we have never heard fail (and logic
        says it should not fail).
      3dca1b36
  15. 29 Jun, 2004 1 commit
    • unknown's avatar
      my_md5sum: · 6239e522
      unknown authored
        Added code to use locally installed perl modules first
      
      
      Build-tools/my_md5sum:
        Added code to use locally installed perl modules first
      6239e522
  16. 28 Jun, 2004 1 commit
  17. 27 Jun, 2004 2 commits
  18. 25 Jun, 2004 1 commit