1. 04 May, 2006 6 commits
    • unknown's avatar
      Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1 · 144d2ec9
      unknown authored
      into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
      
      
      144d2ec9
    • unknown's avatar
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-4.1 · ac941700
      unknown authored
      into  hundin.mysql.fi:/home/jani/mysql-4.1
      
      
      sql/sql_show.cc:
        Auto merged
      ac941700
    • unknown's avatar
      Merge mysql.com:/home/tomash/src/mysql_ab/mysql-4.1 · a5a4f767
      unknown authored
      into  mysql.com:/home/tomash/src/mysql_ab/mysql-4.1-bug16501
      
      
      a5a4f767
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-4.1 · 66d4b40c
      unknown authored
      into  mysql.com:/home/mysql-4.1-19025e
      
      
      66d4b40c
    • unknown's avatar
      test result fixed · 812a82ed
      unknown authored
      
      mysql-test/r/mysqltest.result:
        result fixed
      812a82ed
    • unknown's avatar
      Bug#19025 4.1 mysqldump doesn't correctly dump "auto_increment = [int]" · d300ceea
      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.
      d300ceea
  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 · e93b203d
      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
      e93b203d
    • unknown's avatar
      Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1 · 7400f10a
      unknown authored
      into  mysql.com:/usr/home/ram/work/4.1.b7643
      
      
      sql/sql_table.cc:
        Auto merged
      7400f10a
  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 · 180cecdc
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      180cecdc
    • unknown's avatar
      config-win.h: · 59a73f17
      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"
      59a73f17
    • unknown's avatar
      configure.in: · 4fadc751
      unknown authored
        Changed version to 4.1.20
      
      
      configure.in:
        Changed version to 4.1.20
      4fadc751
  7. 28 Apr, 2006 7 commits
    • unknown's avatar
      mysql.spec.sh: · 9cffcab4
      unknown authored
        Backport of changes in 5.0 (bug#18294)
      
      
      support-files/mysql.spec.sh:
        Backport of changes in 5.0 (bug#18294)
      9cffcab4
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · fb7a6143
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      fb7a6143
    • unknown's avatar
      BUG#19145: mysqld crashes if you set the default value of an enum field to NULL · dd68976a
      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.
      dd68976a
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · a59807d8
      unknown authored
      into mysql.com:/Users/kent/mysql/bk/mysql-4.1-new
      
      
      a59807d8
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · e92e1dac
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      e92e1dac
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-4.1 · 62e09b3e
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-4.1
      
      
      62e09b3e
    • unknown's avatar
      BUG#18492: mysqld reports ER_ILLEGAL_REFERENCE in --ps-protocol · 3a0d0b4c
      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
      3a0d0b4c
  8. 27 Apr, 2006 3 commits
  9. 26 Apr, 2006 5 commits