1. 30 Dec, 2004 11 commits
    • unknown's avatar
      Manual merge of fix for bugs of #7297 and #7515 into 4.1 tree. · e107535f
      unknown authored
      
      mysql-test/r/func_time.result:
        Manual merge.
      mysql-test/r/type_datetime.result:
        Manual merge.
      mysql-test/t/func_time.test:
        Manual merge.
      mysql-test/t/type_datetime.test:
        Manual merge.
      sql/item_timefunc.cc:
        Manual merge.
      sql/item_timefunc.h:
        Manual merge.
      sql/time.cc:
        Manual merge.
      e107535f
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.0 · 15017480
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-4.0-bg7297
      
      
      15017480
    • unknown's avatar
      Fix for bug #7515 "from_unixtime(0) now returns NULL instead of · 1ffd688a
      unknown authored
      the Epoch". (With after review fixes).
      
      
      mysql-test/r/func_time.result:
        Added test for bug #7515 "from_unixtime(0) now returns NULL instead of
        the Epoch".
      mysql-test/t/func_time.test:
        Added test for bug #7515 "from_unixtime(0) now returns NULL instead of
        the Epoch".
      sql/item_timefunc.cc:
        Item_func_from_unixtime:
         from_unixtime(0) should return Epoch instead of NULL.
      sql/item_timefunc.h:
        Item_func_from_unixtime:
         - Removed unused method definition.
         - fix_length_and_dec() should set maybe_null to true since now
           from_unixtime() can return NULL even in case when none of its
           arguments is NULL.
      1ffd688a
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 12b08e56
      unknown authored
      into mysql.com:/home/dlenev/src/mysql-4.1-dtbug
      
      
      12b08e56
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1 · 81a81a95
      unknown authored
      into mysql.com:/dbdata/psergey/mysql-4.1-look
      
      
      81a81a95
    • unknown's avatar
      Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1 · 63af18b5
      unknown authored
      into mysql.com:/M41/mysql-4.1
      
      
      63af18b5
    • unknown's avatar
      Merge mysql.com:/M41/mysql-4.1 into mysql.com:/M41/push-4.1 · 2ec8327e
      unknown authored
      
      configure.in:
        Auto merged
      2ec8327e
    • unknown's avatar
      Many files: · 4ad77748
      unknown authored
        Perl version of mysql-test-run
        new file
      
      
      mysql-test/lib/init_db.sql:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_gcov.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_gprof.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_io.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_match.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_misc.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_process.pl:
        Perl version of mysql-test-run
      mysql-test/lib/mtr_report.pl:
        Perl version of mysql-test-run
      mysql-test/mysql-test-run.pl:
        Perl version of mysql-test-run
      4ad77748
    • unknown's avatar
      Clean up the handling of "server" and "client" directories, while still... · f116ac5c
      unknown authored
      Clean up the handling of "server" and "client" directories, while still avoiding the double listing of
      common directories in 'SUBDIRS' macro ("make distclean" had failed due to that).
      Solves bug#7368: "regex make error in 4.1.8"
      
      
      BitKeeper/etc/ignore:
        Added ndb/include/ndb_version.h ndb/include/ndb_global.h to the ignore list
      Makefile.am:
        Build the 'SUBDIRS' list from the new variable 'sql_union_dirs', not the old "client" and "servers" lists which will overlap.
        That overlap worked for build runs, but it caused failures of 'make distclean' etc because the overlapping directories
        were cleaned twice which could not work.
        Solves bug#7368: "regex make error in 4.1.8"
      configure.in:
        Introduce a new variable 'sql_union_dirs' to contain those directories which are needed for either server or client.
        This is needed to have complete "server" and "client" directory lists in 'Makefile' but prevent double listing
        in 'SUBDIRS' (see the comment for 'Makefile.am').
        Solves bug#7368: "regex make error in 4.1.8"
      f116ac5c
    • unknown's avatar
    • unknown's avatar
      Fix for bug #6914 "Problems using time()/date() output in expressions". · 1382df5a
      unknown authored
      When we cast datetime value to DATE (TIME) type we should throw away its
      time (date) part. This was not done properly if CAST() function was used
      in datetime expressions.
      
      
      mysql-test/r/cast.result:
        Added test for bug #6914 "Problems using time()/date() output in
        expressions".
      mysql-test/t/cast.test:
        Added test for bug #6914 "Problems using time()/date() output in
        expressions".
      sql/item_timefunc.cc:
        Item_time_typecast::get_time()/Item_date_typecast::get_date():
          When we cast datetime value to DATE we should throw away its time part.
          When we cast such value to TIME type we should throw away its date part.
      1382df5a
  2. 29 Dec, 2004 1 commit
    • unknown's avatar
      srv0start.c: · 49501611
      unknown authored
        Print a more descriptive error and refuse to start InnoDB if the size of ibdata files is smaller than what is stored in the tablespace header; innodb_force_recovery will override this
      
      
      innobase/srv/srv0start.c:
        Print a more descriptive error and refuse to start InnoDB if the size of ibdata files is smaller than what is stored in the tablespace header; innodb_force_recovery will override this
      49501611
  3. 28 Dec, 2004 5 commits
  4. 27 Dec, 2004 19 commits
    • unknown's avatar
      row0mysql.c: · 05fb4757
      unknown authored
        Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0
      
      
      innobase/row/row0mysql.c:
        Manually merge the latest FOREIGN KEY lock wait + DROP TABLE fix from 4.0
      05fb4757
    • unknown's avatar
      Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1 · 41216fff
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      
      
      41216fff
    • unknown's avatar
      Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-4.1 · 695c851c
      unknown authored
      into mysql.com:/home/bkroot/mysql-4.1
      
      
      695c851c
    • unknown's avatar
      Merge · 766fc0d2
      unknown authored
      
      innobase/row/row0mysql.c:
        SCCS merged
      766fc0d2
    • unknown's avatar
      WL#2319 V2: Exclude tables from dump · 0ab90532
      unknown authored
      - Added a hash to keep track of database-table pairs.
      - Specified database-table tables do not get dumped
      
      
      client/client_priv.h:
        WL#2319 V2: Exclude tables from dump
      client/mysqldump.c:
        WL#2319 V2: Exclude tables from dump
      mysql-test/r/mysqldump.result:
        WL#2319 V2: Exclude tables from dump
      mysql-test/t/mysqldump.test:
        WL#2319 V2: Exclude tables from dump
      0ab90532
    • unknown's avatar
      row0mysql.c: · 4ba981e5
      unknown authored
        Fix the previous bug fix: dropping a table with FOREIGN KEY checks running on it caused a cascade of failed drops while the foreign key check was waiting for a lock
      
      
      innobase/row/row0mysql.c:
        Fix the previous bug fix: dropping a table with FOREIGN KEY checks running on it caused a cascade of failed drops while the foreign key check was waiting for a lock
      4ba981e5
    • unknown's avatar
      - make sure that MYSQL_VERSION_ID created by "configure" does not contain any · dc29b1b9
      unknown authored
        non-numerical characters (if $VERSION was e.g. "4.1.8a", $MYSQL_VERSION_ID
        resulted in "40108a", which broke the build as MYSQL_VERSION_ID must be
        numerical)
      
      
      configure.in:
        - make sure that MYSQL_VERSION_ID does not contain any non-numerical characters
          (if $VERSION was e.g. "4.1.8a", $MYSQL_VERSION_ID resulted in "40108a", which
          broke the build as MYSQL_VERSION_ID must be numerical)
      dc29b1b9
    • unknown's avatar
      row0mysql.c: · 030842ed
      unknown authored
        Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment
      
      
      innobase/row/row0mysql.c:
        Merge the two FOREIGN KEY bug fixes from 4.0, and add a TODO comment
      030842ed
    • unknown's avatar
      Merge hundin.mysql.fi:/home/heikki/mysql-4.0 · 5f6d8e65
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      
      
      innobase/row/row0ins.c:
        Auto merged
      innobase/row/row0mysql.c:
        Auto merged
      5f6d8e65
    • unknown's avatar
      row0ins.c: · a7b984d2
      unknown authored
        Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
      row0mysql.c:
        Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint
      
      
      innobase/row/row0mysql.c:
        Fix bug: InnoDB failed to drop a table in the background drop queue if the table was referenced by a foreign key constraint
      innobase/row/row0ins.c:
        Fix bug: if we dropped a table where an INSERT was waiting for a lock to check a FOREIGN KEY constraint, then an assertion would fail in lock_reset_all_on_table(), since that operation assumes no waiting locks on the table or its records
      a7b984d2
    • unknown's avatar
      Merge mysql.com:/home/timka/mysql/src/4.1-virgin · 47efc5f3
      unknown authored
      into mysql.com:/home/timka/mysql/src/4.1-dbg
      
      
      47efc5f3
    • unknown's avatar
      Fix for BUG#7377. This fix adds the same implementation for... · b4c61152
      unknown authored
      Fix for BUG#7377. This fix adds the same implementation for ha_myisammgr::index_type as in version 5.0.
      
      
      mysql-test/r/merge.result:
        Added test result for BUG#7377.
      mysql-test/t/merge.test:
        Added test for BUG#7377.
      sql/ha_myisammrg.cc:
        Added implementation for handler::index_type.
      sql/ha_myisammrg.h:
        Added implementation for handler::index_type.
      b4c61152
    • unknown's avatar
      merge · 7ab0561f
      unknown authored
      7ab0561f
    • unknown's avatar
      sql_table.cc: · 2d9eeb04
      unknown authored
        Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY
      
      
      sql/sql_table.cc:
        Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY
      2d9eeb04
    • unknown's avatar
      ha_innodb.cc: · 562df4ee
      unknown authored
        Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY
      
      
      sql/ha_innodb.cc:
        Return a sensible error code from DISCARD TABLESPACE, if it fails because the table is referenced by a FOREIGN KEY
      562df4ee
    • unknown's avatar
      row0mysql.c: · 92655f14
      unknown authored
        Fix typo
      
      
      innobase/row/row0mysql.c:
        Fix typo
      92655f14
    • unknown's avatar
      ha_innodb.cc, row0ins.c, fil0fil.c: · 1b7282e3
      unknown authored
        Correct typo
      
      
      innobase/fil/fil0fil.c:
        Correct typo
      innobase/row/row0ins.c:
        Correct typo
      sql/ha_innodb.cc:
        Correct typo
      1b7282e3
    • unknown's avatar
      Merge heikki@bk-internal.mysql.com:/home/bk/mysql-4.1 · 00cc66f6
      unknown authored
      into hundin.mysql.fi:/home/heikki/mysql-4.1
      
      
      00cc66f6
    • unknown's avatar
      Many files: · 708eebea
      unknown authored
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      
      
      innobase/buf/buf0rea.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/dict0load.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/fil0fil.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/row0mysql.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/include/trx0trx.h:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/dict/dict0load.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/fil/fil0fil.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0ins.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0mysql.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/row/row0sel.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/srv/srv0start.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      innobase/trx/trx0trx.c:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      sql/ha_innodb.cc:
        Fix InnoDB critical bug #7496; we scan the InnoDB data dictionary also at a normal mysqld startup, and create the spaces, so that we know the mapping space id -> .ibd file name; fix an infinite loop if DISCARD TABLESPACE coincides with INSERT or some other table operation; fix a potential crash if DISCARD TABLESPACE coincides with a cascaded FOREIGN KEY operation in the same table; do not allow DISCARD TABLESPACE of a referenced table if FOREIGN_KEY_CHECKS=1
      708eebea
  5. 26 Dec, 2004 3 commits
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1 · 3217790b
      unknown authored
      into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
      
      
      3217790b
    • unknown's avatar
      subselect.result, subselect.test: · a9eef185
      unknown authored
        Added a couple of new test cases for bug #7351.
      
      
      mysql-test/t/subselect.test:
        Added a couple of new test cases for bug #7351.
      mysql-test/r/subselect.result:
        Added a couple of new test cases for bug #7351.
      a9eef185
    • unknown's avatar
      subselect.result, subselect.test: · a4d840a0
      unknown authored
        Added test cases for bug #7351.
      item_cmpfunc.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        If in the predicate v IN (SELECT a FROM t WHERE cond)
        v is null, then the result of the predicate is either
        INKNOWN or FALSE. It is FALSE if the subquery returns
        an empty set.
      item_subselect.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        The problem was due to not a quite legal transformation
        for 'IN' subqueries. A subquery containing a predicate
        of the form
        v IN (SELECT a FROM t WHERE cond)
        was transformed into
        EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)).
        Yet, this transformation is valid only if v is not null.
        If v is null, then, in the case when
        (SELECT a FROM t WHERE cond) returns an empty set the value
        of the predicate is FALSE, otherwise the result of the
        predicate is INKNOWN.
        The fix resolves this problem by changing the result
        of the transformation to
        EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL)))
        in the case when v is nullable.
        The new transformation prevents applying the lookup
        optimization for IN subqueries. To make it still
        applicable we have to introduce guarded access methods.
      
      
      sql/item_subselect.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        The problem was due to not a quite legal transformation
        for 'IN' subqueries. A subquery containing a predicate
        of the form
        v IN (SELECT a FROM t WHERE cond)
        was transformed into
        EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)).
        Yet, this transformation is valid only if v is not null.
        If v is null, then, in the case when
        (SELECT a FROM t WHERE cond) returns an empty set the value
        of the predicate is FALSE, otherwise the result of the
        predicate is INKNOWN.
        The fix resolves this problem by changing the result
        of the transformation to
        EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL)))
        in the case when v is nullable.
        The new transformation prevents applying the lookup
        optimization for IN subqueries. To make it still
        applicable we have to introduce guarded access methods.
      sql/item_cmpfunc.cc:
        Fixed bug #7351: incorrect result for a query with a
        subquery returning empty set.
        If in the predicate v IN (SELECT a FROM t WHERE cond)
        v is null, then the result of the predicate is either
        INKNOWN or FALSE. It is FALSE if the subquery returns
        an empty set.
      mysql-test/t/subselect.test:
        Added test cases for bug #7351.
      mysql-test/r/subselect.result:
        Added test cases for bug #7351.
      a4d840a0
  6. 24 Dec, 2004 1 commit