1. 04 May, 2006 5 commits
    • unknown's avatar
      Fix for Bug#11326. · 4806b1a4
      unknown authored
      
      mysql-test/r/date_formats.result:
        Added test cases for Bug#11326
      mysql-test/t/date_formats.test:
        Added test cases for Bug#11326
      4806b1a4
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · 029e4410
      unknown authored
      into  hundin.mysql.fi:/home/jani/mysql-4.1
      
      
      sql/sql_show.cc:
        Auto merged
      029e4410
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1 · 7c68a3ee
      unknown authored
      into  mysql.com:/home/mysql-4.1-19025e
      
      7c68a3ee
    • unknown's avatar
      test result fixed · 6104ece0
      unknown authored
      
      mysql-test/r/mysqltest.result:
        result fixed
      6104ece0
    • unknown's avatar
      Bug#19025 4.1 mysqldump doesn't correctly dump "auto_increment = [int]" · 64828eeb
      unknown authored
      mysqldump / SHOW CREATE TABLE will show the NEXT available value for
      the PK, rather than the *first* one that was available (that named in
      the original CREATE TABLE ... AUTO_INCREMENT = ... statement).
      
      This should produce correct and robust behaviour for the obvious use
      cases -- when no data were inserted, then we'll produce a statement
      featuring the same value the original CREATE TABLE had; if we dump
      with values, INSERTing the values on the target machine should set the
      correct next_ID anyway (and if not, we'll still have our AUTO_INCREMENT =
      ... to do that). Lastly, just the CREATE statement (with no data) for
      a table that saw inserts would still result in a table that new values
      could safely be inserted to).
      
      There seems to be no robust way however to see whether the next_ID
      field is > 1 because it was set to something else with CREATE TABLE
      ... AUTO_INCREMENT = ..., or because there is an AUTO_INCREMENT column
      in  the table (but no initial value was set with AUTO_INCREMENT = ...)
      and then one or more rows were INSERTed, counting up next_ID. This
      means that in both cases, we'll generate an AUTO_INCREMENT =
      ... clause in SHOW CREATE TABLE / mysqldump.  As we also show info on,
      say, charsets even if the user did not explicitly give that info in
      their own CREATE TABLE, this shouldn't be an issue.
      
      As per above, the next_ID will be affected by any INSERTs that have
      taken place, though.  This /should/ result in correct and robust
      behaviour, but it may look non-intuitive to some users if they CREATE
      TABLE ... AUTO_INCREMENT = 1000 and later (after some INSERTs) have
      SHOW CREATE TABLE give them a different value (say, CREATE TABLE
      ... AUTO_INCREMENT = 1006), so the docs should possibly feature a
      caveat to that effect.
      
      It's not very intuitive the way it works now (with the fix), but it's
      *correct*.  We're not storing the original value anyway, if we wanted
      that, we'd have to change on-disk representation?
      
      If we do dump/load cycles with empty DBs, nothing will change.  This
      changeset includes an additional test case that proves that tables
      with rows will create the same next_ID for AUTO_INCREMENT = ... across
      dump/restore cycles.
      
      Confirmed by support as likely solution for client's problem.
      
      
      mysql-test/r/auto_increment.result:
        test for creation of AUTO_INCREMENT=... clause
      mysql-test/r/gis-rtree.result:
        Add AUTO_INCREMENT=... clauses where appropriate
      mysql-test/r/mysqldump.result:
        show that AUTO_INCREMENT=... will survive dump/restore cycles
      mysql-test/r/symlink.result:
        Add AUTO_INCREMENT=... clauses where appropriate
      mysql-test/t/auto_increment.test:
        test for creation of AUTO_INCREMENT=... clause
      mysql-test/t/mysqldump.test:
        show that AUTO_INCREMENT=... will survive dump/restore cycles
      sql/sql_show.cc:
        Add AUTO_INCREMENT=... to output of SHOW CREATE TABLE if there is an
        AUTO_INCREMENT column, and NEXT_ID > 1 (the default).  We must not print
        the clause for engines that do not support this as it would break the
        import of dumps, but as of this writing, the test for whether
        AUTO_INCREMENT columns are allowed and wether AUTO_INCREMENT=...
        is supported is identical, !(file->table_flags() & HA_NO_AUTO_INCREMENT))
        Because of that, we do not explicitly test for the feature,
        but may extrapolate its existence from that of an AUTO_INCREMENT column.
      64828eeb
  2. 03 May, 2006 7 commits
  3. 02 May, 2006 2 commits
    • unknown's avatar
      ndb - bug#19201 (4.1), see comment in NdbBlob.cpp · 9c1067c1
      unknown authored
      
      ndb/test/ndbapi/testBlobs.cpp:
        option -fac (fetch across commit)
      ndb/tools/delete_all.cpp:
        option --transactional (default remains truncate)
      mysql-test/r/ndb_blob.result:
        bug#19201
      mysql-test/t/ndb_blob.test:
        bug#19201
      ndb/include/kernel/signaldata/TcKeyReq.hpp:
        bug#19201
      ndb/include/ndbapi/NdbBlob.hpp:
        bug#19201
      ndb/src/ndbapi/NdbBlob.cpp:
        bug#19201
      9c1067c1
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 7d00f8eb
      unknown authored
      into  mysql.com:/usr/home/ram/work/4.1.b7643
      
      
      sql/sql_table.cc:
        Auto merged
      7d00f8eb
  4. 01 May, 2006 5 commits
  5. 30 Apr, 2006 2 commits
  6. 29 Apr, 2006 3 commits
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · 01c039f4
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      01c039f4
    • unknown's avatar
      config-win.h: · 7c8f4d4e
      unknown authored
        Fix strange "double" define for popen.
        Avoid warnings about sprintf() etc. being unsafe.
        Corrected typo "#endfif"
      
      
      include/config-win.h:
        Fix strange "double" define for popen.
        Avoid warnings about sprintf() etc. being unsafe.
        Corrected typo "#endfif"
      7c8f4d4e
    • unknown's avatar
      configure.in: · 53d9cdf6
      unknown authored
        Changed version to 4.1.20
      
      
      configure.in:
        Changed version to 4.1.20
      53d9cdf6
  7. 28 Apr, 2006 7 commits
    • unknown's avatar
      mysql.spec.sh: · c76ebcd1
      unknown authored
        Backport of changes in 5.0 (bug#18294)
      
      
      support-files/mysql.spec.sh:
        Backport of changes in 5.0 (bug#18294)
      c76ebcd1
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · 5db717b1
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      5db717b1
    • unknown's avatar
      BUG#19145: mysqld crashes if you set the default value of an enum field to NULL · cba31c3c
      unknown authored
      Now test for NULLness the pointers returned from objects created from the
      default value. Pushing patch on behalf of cmiller.
      
      
      mysql-test/r/null.result:
        Add test case
      mysql-test/t/null.test:
        Add test case
      sql/sql_table.cc:
        No longer blindly dereference pointer of the string representation of the
        values, where "NULL" is NUL. Raise INVALID DEFAULT error messages where
        appropriate.
        
        Note that the -O1 optimization flag made debugging this extremely tricky, with
        misleading results, and that removing it from the Makefile during debugging can
        be invaluable.
      cba31c3c
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · 81711828
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      81711828
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · cdfdc044
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      cdfdc044
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · d75a802a
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      d75a802a
    • unknown's avatar
      BUG#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol · 0e0d0d9d
      unknown authored
      In the code that converts IN predicates to EXISTS predicates it is changing
      the select list elements to constant 1. Example :
      SELECT ... FROM ...  WHERE a IN (SELECT c FROM ...)
      is transformed to :
      SELECT ... FROM ... WHERE EXISTS (SELECT 1 FROM ...  HAVING a = c)
      However there can be no FROM clause in the IN subquery and it may not be
      a simple select : SELECT ... FROM ... WHERE a IN (SELECT f(..) AS
      c UNION SELECT ...) This query is transformed to : SELECT ... FROM ...
      WHERE EXISTS (SELECT 1 FROM (SELECT f(..) AS c UNION SELECT ...)
      x HAVING a = c) In the above query c in the HAVING clause is made to be
      an Item_null_helper (a subclass of Item_ref) pointing to the real
      Item_field (which is not referenced anywhere else in the query anymore).
      This is done because Item_ref_null_helper collects information whether
      there are NULL values in the result.  This is OK for directly executed
      statements, because the Item_field pointed by the Item_null_helper is
      already fixed when the transformation is done.  But when executed as
      a prepared statement all the Item instances are "un-fixed" before the
      recompilation of the prepared statement. So when the Item_null_helper
      gets fixed it discovers that the Item_field it points to is not fixed
      and issues an error.  The remedy is to keep the original select list
      references when there are no tables in the FROM clause. So the above
      becomes : SELECT ... FROM ...  WHERE EXISTS (SELECT c FROM (SELECT f(..)
      AS c UNION SELECT ...) x HAVING a = c) In this way c is referenced
      directly in the select list as well as by reference in the HAVING
      clause. So it gets correctly fixed even with prepared statements.  And
      since the Item_null_helper subclass of Item_ref_null_helper is not used
      anywhere else it's taken out.
      
      
      mysql-test/r/ps_11bugs.result:
        Test case for the bug
      mysql-test/r/subselect.result:
        Explain updated because of the tranformation
      mysql-test/t/ps_11bugs.test:
        Testcase for the bug
      sql/item.cc:
        Taking out Item_null_helper as it's no longer needed
      sql/item.h:
        Taking out Item_null_helper as it's no longer needed
      sql/item_subselect.cc:
        The described change to the IN->EXISTS transformation
      0e0d0d9d
  8. 27 Apr, 2006 3 commits
  9. 26 Apr, 2006 6 commits