1. 07 Dec, 2006 1 commit
    • unknown's avatar
      A fix and test cases for · cd8c9ef0
      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
      cd8c9ef0
  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 · a61be9aa
      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
      a61be9aa
    • unknown's avatar
      Makefile.am: · 3d9319e6
      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.
      3d9319e6
  4. 27 Nov, 2006 3 commits
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1 · 3ebe7e2a
      unknown authored
      into  mysql.com:/home/kent/bk/mysql-4.1-merge
      
      3ebe7e2a
    • unknown's avatar
      Makefile.am: · 0169639a
      unknown authored
        BSD compatibility
      
      
      Docs/Makefile.am:
        BSD compatibility
      0169639a
    • unknown's avatar
      gen_rec.awk: · ba1dde1a
      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
      ba1dde1a
  5. 24 Nov, 2006 1 commit
    • unknown's avatar
      fixes for mtr_unique.pl · 0cdb8896
      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
      0cdb8896
  6. 22 Nov, 2006 3 commits
    • unknown's avatar
      Cleanup: remove const. · 8d82e99c
      unknown authored
      8d82e99c
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 9bdd7750
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug21635
      
      
      tests/mysql_client_test.c:
        Manual merge.
      9bdd7750
    • unknown's avatar
      BUG#21635: MYSQL_FIELD struct's member strings seem to misbehave for · 71a6bf42
      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.
      71a6bf42
  7. 21 Nov, 2006 2 commits
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 34295668
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23159
      
      34295668
    • unknown's avatar
      BUG#23159: prepared_stmt_count should be status variable · 512b1094
      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.
      512b1094
  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) · 4da8a66a
      unknown authored
      
      mysql-test/lib/mtr_unique.pl:
        Library file used by mysql-test-run.pl to determine unique test run identifiers.
      4da8a66a
    • unknown's avatar
      ABI fix · d24da25c
      unknown authored
      
      include/mysql_h.ic:
        this one should actually be removed from the ABI
      d24da25c
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 68571082
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug23383
      
      68571082
    • unknown's avatar
      BUG#23383: mysql_affected_rows() returns different values than · eb3a54e6
      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().
      eb3a54e6
  9. 16 Nov, 2006 7 commits
    • unknown's avatar
      Merge trift2.:/MySQL/M41/mysql-4.1 · 2cdd947c
      unknown authored
      into  trift2.:/MySQL/M41/push-4.1
      
      2cdd947c
    • unknown's avatar
      merging · 5a0cf28a
      unknown authored
      5a0cf28a
    • unknown's avatar
      merging · aa681ccf
      unknown authored
      aa681ccf
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-4.1 · 08ab6848
      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
      08ab6848
    • unknown's avatar
      support-files/mysql.spec.sh : Add an "Obsoletes" note relative to SuSE RPMs (bug#22081). · d43d5e03
      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).
      d43d5e03
    • unknown's avatar
      Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-runtime · 467211be
      unknown authored
      into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-4.1-bug17047
      
      467211be
    • unknown's avatar
      BUG#17047: CHAR() and IN() can return NULL without signaling NULL result · f77509f1
      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.
      f77509f1
  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 · bf3b563a
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B19216-4.1-opt
      
      bf3b563a
    • unknown's avatar
      Merge mysql.com:/home/bkroot/mysql-4.1-rpl · 0ce4e107
      unknown authored
      into  mysql.com:/home/bk/MERGE/mysql-4.1-merge
      
      0ce4e107
    • unknown's avatar
      Bug #19216: Client crashes on long SELECT · e04385d8
      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).
      e04385d8
  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 · fdaef4e7
      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
      fdaef4e7
    • unknown's avatar
      Correcting BUG/WL identifier extraction to allow multiple references to auxilary · 34f12b36
      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
      34f12b36
  14. 11 Nov, 2006 1 commit
    • unknown's avatar
      mysql-test-run.pl: · c60d8fb1
      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
      c60d8fb1
  15. 10 Nov, 2006 3 commits