1. 07 Dec, 2006 1 commit
    • unknown's avatar
      A fix and test cases for · e47ded81
      unknown authored
      Bug#4968 "Stored procedure crash if cursor opened on altered table"
      Bug#19733 "Repeated alter, or repeated create/drop, fails"
      Bug#19182 "CREATE TABLE bar (m INT) SELECT n FROM foo; doesn't work from 
      stored procedure."
      Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing"
      Bug#22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server"
      
      Test cases for bugs 4968, 19733, 6895 will be added in 5.0.
      
      Re-execution of CREATE DATABASE, CREATE TABLE and ALTER TABLE 
      statements in stored routines or as prepared statements caused
      incorrect results (and crashes in versions prior to 5.0.25).
      In 5.1 the problem occured only for CREATE DATABASE, CREATE TABLE
      SELECT and CREATE TABLE with INDEX/DATA DIRECTOY options).
      
      The problem of bugs 4968, 19733, 19282 and 6895 was that functions
      mysql_prepare_table, mysql_create_table and mysql_alter_table were not
      re-execution friendly: during their operation they used to modify contents
      of LEX (members create_info, alter_info, key_list, create_list),
      thus making the LEX unusable for the next execution.
      In particular, these functions removed processed columns and keys from
      create_list, key_list and drop_list. Search the code in sql_table.cc 
      for drop_it.remove() and similar patterns to find evidence.
      
      The fix is to supply to these functions a usable copy of each of the
      above structures at every re-execution of an SQL statement. 
      
      To simplify memory management, LEX::key_list and LEX::create_list
      were added to LEX::alter_info, a fresh copy of which is created for
      every execution.
      
      The problem of crashing bug 22060 stemmed from the fact that the above 
      metnioned functions were not only modifying HA_CREATE_INFO structure in 
      LEX, but also were changing it to point to areas in volatile memory of 
      the execution memory root.
       
      The patch solves this problem by creating and using an on-stack
      copy of HA_CREATE_INFO (note that code in 5.1 already creates and
      uses a copy of this structure in mysql_create_table()/alter_table(),
      but this approach didn't work well for CREATE TABLE SELECT statement).
      
      
      mysql-test/r/ps.result:
        Update test results (Bug#19182, Bug#22060)
      mysql-test/t/ps.test:
        Add a test case for Bug#19182, Bug#22060 (4.1-only parts)
      sql/mysql_priv.h:
        LEX::key_list and LEX::create_list were moved to LEX::alter_info.
        Update declarations to use LEX::alter_info instead of these two
        members.
      sql/sql_class.h:
        Replace pair<columns, keys> with an instance of Alter_info in
        select_create constructor. We create a new copy of Alter_info
        each time we re-execute SELECT .. CREATE prepared statement.
      sql/sql_insert.cc:
        Adjust to a new signature of create_table_from_items.
      sql/sql_lex.cc:
        Implement Alter_info::Alter_info that would make a "deep" copy
        of all definition lists (keys, columns).
      sql/sql_lex.h:
        Move key_list and create_list to class Alter_info. Implement
        Alter_info::Alter_info that can be used with PS and SP.
      sql/sql_list.h:
        Implement a copy constructor of class List that makes a deep copy
        of all list nodes.
      sql/sql_parse.cc:
        Adjust to new signatures of mysql_create_table, mysql_alter_table,
        select_create. Functions mysql_create_index and mysql_drop_index has
        become identical after initialization of alter_info was moved to the 
        parser, and were merged. Flag enable_slow_log was not updated for 
        SQLCOM_DROP_INDEX, which is a bug. Just like CREATE INDEX, DROP INDEX
        is currently done via complete table rebuild and is rightfully a slow
        administrative statement.
      sql/sql_show.cc:
        Adjust mysqld_show_create_db to a new signature.
      sql/sql_table.cc:
        Adjust mysql_alter_table, mysql_recreate_table, mysql_create_table,
        mysql_prepare_table to new signatures.
      sql/sql_yacc.yy:
        LEX::key_list and LEX::create_list moved to class Alter_info
      e47ded81
  2. 29 Nov, 2006 3 commits
  3. 28 Nov, 2006 2 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1 · 760bd9d1
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-4.1-runtime
      
      
      libmysql/libmysql.c:
        Auto merged
      libmysqld/lib_sql.cc:
        Auto merged
      sql/item_sum.cc:
        Auto merged
      760bd9d1
    • unknown's avatar
      Makefile.am: · 0fb76499
      unknown authored
        If using \$(srcdir)/mysql.info in action, use same in rule.
      
      
      Docs/Makefile.am:
        If using \$(srcdir)/mysql.info in action, use same in rule.
      0fb76499
  4. 27 Nov, 2006 3 commits
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · eb63927c
      unknown authored
      into  mysql.com:/home/kent/bk/mysql-4.1-merge
      
      
      eb63927c
    • unknown's avatar
      Makefile.am: · f53733db
      unknown authored
        BSD compatibility
      
      
      Docs/Makefile.am:
        BSD compatibility
      f53733db
    • unknown's avatar
      gen_rec.awk: · 8d6f67f3
      unknown authored
        Fix undefined behaviour.
      Many files:
        Reenabled build outside ource tree
      
      
      bdb/dist/gen_rec.awk:
        Fix undefined behaviour.
      acinclude.m4:
        Reenabled build outside ource tree
      configure.in:
        Reenabled build outside ource tree
      libmysql_r/Makefile.am:
        Reenabled build outside ource tree
      libmysqld/Makefile.am:
        Reenabled build outside ource tree
      ndb/config/common.mk.am:
        Reenabled build outside ource tree
      ndb/config/type_kernel.mk.am:
        Reenabled build outside ource tree
      ndb/config/type_ndbapi.mk.am:
        Reenabled build outside ource tree
      ndb/config/type_ndbapitest.mk.am:
        Reenabled build outside ource tree
      ndb/config/type_ndbapitools.mk.am:
        Reenabled build outside ource tree
      ndb/config/type_util.mk.am:
        Reenabled build outside ource tree
      ndb/src/kernel/Makefile.am:
        Reenabled build outside ource tree
      8d6f67f3
  5. 24 Nov, 2006 1 commit
    • unknown's avatar
      fixes for mtr_unique.pl · 6de6b97e
      unknown authored
      
      mysql-test/lib/mtr_unique.pl:
        - add info message to mtr_require_unique_id_and_wait as suggested
        - fix for security issue
        - locks for pids of processes that don't exist anymore are reused, if ps is present and working as expected
      6de6b97e
  6. 22 Nov, 2006 3 commits
    • unknown's avatar
      Cleanup: remove const. · a7aecabc
      unknown authored
      a7aecabc
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 33d63bec
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug21635
      
      
      tests/mysql_client_test.c:
        Manual merge.
      33d63bec
    • unknown's avatar
      BUG#21635: MYSQL_FIELD struct's member strings seem to misbehave for · 18770d2f
      unknown authored
      expression cols.
      
      The problem was that MYSQL_FIELD::org_name was set for MIN() and MAX()
      functions (COUNT() is also mentioned in the bug report but was already
      fixed).
      
      After this patch for expressions MYSQL_FIELD::name is set to either
      expression itself or its alias, and other data origin fields of
      MYSQL_FILED (db, org_table, table, org_name) are empty strings.
      
      
      sql/item_sum.cc:
        For expressions only col_name should be non-empty string.
      tests/mysql_client_test.c:
        Add test case for bug#21635: MYSQL_FIELD struct's member strings seem
        to misbehave for expression cols.
      18770d2f
  7. 21 Nov, 2006 2 commits
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 75432f3f
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23159
      
      
      75432f3f
    • unknown's avatar
      BUG#23159: prepared_stmt_count should be status variable · 7a45fb54
      unknown authored
      Make Prepared_stmt_count a global status variable, accessible via
      SHOW STATUS LIKE 'Prepared_stmt_count';.  Documentation should be
      updated.
      
      
      mysql-test/r/ps.result:
        Update result for bug#16365: Prepared Statements: DoS with too many
        open statements, according to bug#23159: prepared_stmt_count should be
        status variable.
      mysql-test/t/ps.test:
        Update test case for bug#16365: Prepared Statements: DoS with too many
        open statements, according to bug#23159: prepared_stmt_count should be
        status variable.
      sql/mysqld.cc:
        Add Prepared_stmt_count as global status variable.
      sql/set_var.cc:
        Remove prepared_stmt_count as system variable.
      7a45fb54
  8. 17 Nov, 2006 4 commits
    • unknown's avatar
      MTR_BUILD_THREAD=auto selects a value for MTR_BUILD_THREAD from a pool (WL#2690) · c3d6927d
      unknown authored
      
      mysql-test/lib/mtr_unique.pl:
        Library file used by mysql-test-run.pl to determine unique test run identifiers.
      c3d6927d
    • unknown's avatar
      ABI fix · a3d04155
      unknown authored
      
      include/mysql_h.ic:
        this one should actually be removed from the ABI
      a3d04155
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 07a6c293
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23383
      
      
      07a6c293
    • unknown's avatar
      BUG#23383: mysql_affected_rows() returns different values than · 2d04b191
      unknown authored
      mysql_stmt_affected_rows()
      
      The problem was that affected_rows for prepared statement wasn't updated
      in the client library on the error.  The solution is to always update
      affected_rows, which will be equal to -1 on the error.
      
      
      libmysql/libmysql.c:
        Update status variables even in the case of an error.  Some variables
        have a defined value on the error (like affected_rows is -1), others are
        undefined, so updating them won't harm.
      libmysqld/lib_sql.cc:
        Update status variables even in the case of an error.  Some variables
        have a defined value on the error (like affected_rows is -1), others are
        undefined, so updating them won't harm.
      tests/mysql_client_test.c:
        Add test for bug#23383: mysql_affected_rows() returns different values
        than mysql_stmt_affected_rows().
      2d04b191
  9. 16 Nov, 2006 7 commits
    • unknown's avatar
      Merge trift2.:/MySQL/M41/mysql-4.1 · 16599454
      unknown authored
      into  trift2.:/MySQL/M41/push-4.1
      
      
      16599454
    • unknown's avatar
      merging · e78fd1d1
      unknown authored
      e78fd1d1
    • unknown's avatar
      merging · 83a7bbf7
      unknown authored
      83a7bbf7
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1 · 17c238a1
      unknown authored
      into  mysql.com:/home/hf/work/mysql-4.1-mrg
      
      
      include/mysql.h:
        Auto merged
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/t/rename.test:
        Auto merged
      mysql-test/t/subselect.test:
        Auto merged
      sql-common/client.c:
        Auto merged
      sql/sql_class.h:
        Auto merged
      Makefile.am:
        merging
      client/mysqltest.c:
        merging
      mysql-test/t/mysql_client.test:
        merging
      17c238a1
    • unknown's avatar
      support-files/mysql.spec.sh : Add an "Obsoletes" note relative to SuSE RPMs (bug#22081). · aa13653a
      unknown authored
      
      support-files/mysql.spec.sh:
        Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB) replace 
        "mysql-shared" (as distributed by SuSE) to allow easy upgrading (bug#22081).
      aa13653a
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · db336c05
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
      
      
      db336c05
    • unknown's avatar
      BUG#17047: CHAR() and IN() can return NULL without signaling NULL result · e40e8052
      unknown authored
      The problem was that some functions (namely IN() starting with 4.1, and
      CHAR() starting with 5.0) were returning NULL in certain conditions,
      while they didn't set their maybe_null flag.  Because of that there could
      be some problems with 'IS NULL' check, and statements that depend on the
      function value domain, like CREATE TABLE t1 SELECT 1 IN (2, NULL);.
      
      The fix is to set maybe_null correctly.
      
      
      mysql-test/r/func_in.result:
        Add result for bug#17047: CHAR() and IN() can return NULL without
        signaling NULL result.
      mysql-test/t/func_in.test:
        Add test case for bug#17047: CHAR() and IN() can return NULL without
        signaling NULL result.
      sql/item_cmpfunc.cc:
        Remove assignment to maybe_null, as it was already set in fix_fields()
        based on all arguments, not only on the first.
      e40e8052
  10. 15 Nov, 2006 3 commits
  11. 14 Nov, 2006 2 commits
  12. 13 Nov, 2006 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · e56742d7
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B19216-4.1-opt
      
      
      e56742d7
    • unknown's avatar
      Merge mysql.com:/home/bkroot/mysql-4.1-rpl · 8fd48cce
      unknown authored
      into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
      
      
      8fd48cce
    • unknown's avatar
      Bug #19216: Client crashes on long SELECT · f53af7b8
      unknown authored
       The server sends a number of columns to the client.
       It uses a limited "fast" function for that instead of the
       general one. This fast function cannot send numbers larger 
       than 2 bytes. 
       This causes the client to expect smaller number of columns. 
       The client writes outside of the allocated memory buffer 
       as a result.
       Fixed the server to use the general function to send column
       count.
       Fixed the client to check the column count before writing
       column data. 
      
      
      mysql-test/t/mysql_client.test:
        Bug #19216: Client crashes on long SELECT
         - test case
      sql/protocol.cc:
        Bug #19216: Client crashes on long SELECT
         - renamed the function for bether comprehention
           and made it local
         - used the right (non-local) function to transfer 
           the column count in Protocol::send_fields
      sql/protocol.h:
        Bug #19216: Client crashes on long SELECT
         - made optimized net_store_length local
      sql-common/client.c:
        Bug #19216: Client crashes on long SELECT
         - fixed the client to check for older servers (without the fix).
      f53af7b8
  13. 12 Nov, 2006 2 commits
    • unknown's avatar
      bug#19402 SQL close to the size of the max_allowed_packet fails on the slave · 57ba34ff
      unknown authored
      comments are fixed as was suggested in reviews.
      
      
      sql/log_event.h:
        fixing comments
      sql/slave.cc:
        fixing comments
      sql/sql_repl.cc:
        fixing comments
      57ba34ff
    • unknown's avatar
      Correcting BUG/WL identifier extraction to allow multiple references to auxilary · a403c2f9
      unknown authored
      bugs/wls in cset's comments. The targetted BUG's or WL's identifier must be specified
      the first in the comments. The referred bugs wls can be typed in same as the targeted
      clickable format.
      If the the target of the fix is a WL and there are some references to bugs
      then the first found reference is regarded as "co-target" so that the bug's identifier
      comes up on the subject line along with the WL's and commit mail will update
      the bug page. The latter feature can be disarmed (if there is no need to update
      the referred bug's page) with typing the first a pseudo-bug pattern (bug#0).
      
      This paticular cset will generate subject line containing bug#0 (as it was the first
      referred) whereas the old version would put in the subject line the last referred
      pattern (e.g bug#2147483648).
      
      
      BitKeeper/triggers/post-commit:
        fixing greedyness of old extraction
      a403c2f9
  14. 11 Nov, 2006 1 commit
    • unknown's avatar
      mysql-test-run.pl: · c6d31783
      unknown authored
        Test for base directory when a RPM install corrected
      
      
      mysql-test/mysql-test-run.pl:
        Test for base directory when a RPM install corrected
      c6d31783
  15. 10 Nov, 2006 3 commits