1. 16 May, 2008 9 commits
  2. 15 May, 2008 1 commit
    • unknown's avatar
      Bug#36570: Parse error of CREATE PROCEDURE stmt with comments on \ · 4a3c5ef3
      unknown authored
      	slave
      
      The stored-routine code took the contents of the (lowest) parser
      and copied it directly to the binlog, which causes problems if there
      is a special case of interpretation at the parser level -- which 
      there is, in the "/*!VER */" comments.  The trailing "*/" caused
      errors on the slave, naturally.
      
      Now, since by that point we have /properly/ created parse-tree (as 
      the rest of the server should do!) for the stored-routine CREATE, we
      can construct a perfect statement from that information, instead of
      writing uncertain information from an unknown parser state.  
      Fortunately, there's already a function nearby that does exactly 
      that.
      ---
      Update for Bug#36570.  Qualify routine names with db name when
      writing to the binlog ONLY if the source text is qualified.
      
      
      mysql-test/r/binlog_innodb.result:
        Offsets changed due to quoting.
        ---
        New offset to account for db-qualified names.
      mysql-test/r/ctype_cp932_binlog.result:
        Offsets changed due to quoting.
        ---
        Qualify routine names with DB.  Offsets change also.
      mysql-test/r/mysqlbinlog.result:
        Case changed in result due to interpretation of data instead of 
        literal recitation.
        ---
        Qualify procedure name with db.
      mysql-test/r/rpl_sp.result:
        Offsets changed due to quoting.  Added tests.
        ---
        Qualify routine names with DB if qualified in query.  Offsets change also.
      mysql-test/t/rpl_sp.test:
        Add version-limiting quotes to exercise bug#36570.  Test that 
        backtick-quoted identifiers and labels work also.
        ---
        Use different db to show qualification works.  Qualify routine names
        with DB if qualified in query.
      sql/sp.cc:
        In create_string, we may not have a sp_name parameter yet, so
        instead pass the char* and length of the only member we'd get out
        of it.
        
        Having done that, we can use the same function to write the 
        CREATE (FUNC|TRIG|PROC) statement to the binlog as we always used
        to display the statement to the user.
        ---
        Make the db name part of the CREATE string if it is specified.
        
        Specify it in part of writing to the binlog when creating a new
        routine.
      sql/sp_head.cc:
        Set the sp_head m_explicit_name member as the sp_name member is set.  
        We can not peek at this later, as the sp_name is gone by then.
      sql/sp_head.h:
        Add a member to track whether the name is qualified with the 
        database.
      4a3c5ef3
  3. 14 May, 2008 1 commit
  4. 13 May, 2008 3 commits
    • unknown's avatar
      Fixed bug #36488: regexp returns false matches, concatenating · 61bb9c86
      unknown authored
                        with previous rows.
      
      The WHERE clause containing expression:
        CONCAT(empty_field1, empty_field2, ..., 'literal constant', ...)
          REGEXP 'regular expression'
      may return wrong matches.
      
      Optimization of the CONCAT function has been fixed.
      
      
      
      mysql-test/r/func_concat.result:
        Added test case for bug #36488.
      mysql-test/t/func_concat.test:
        Added test case for bug #36488.
      sql/item_strfunc.cc:
        Fixed bug #36488.
        The Item_func_concat::val_str method is optimized to
        use first non-empty argument of the CONCAT function for in-place
        result accumulation. This optimization is acceptable if that
        first argument is not a constant.
        However, current implementation checks this condition only for
        the first actual argument of the CONCAT function.
        So, the Item_func_concat::val_str method can corrupt values
        of, for example, literal strings by appending random data.
        
        The Item_func_concat::val_str method has been modified to take
        into account the ability to be modified in-place for the first
        non-empty argument.
      61bb9c86
    • unknown's avatar
      Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-5.0 · 7f555041
      unknown authored
      into  mysql.com:/home/kent/bk/mysql-5.0-release-merge
      
      
      BUILD/Makefile.am:
        Auto merged
      mysql-test/Makefile.am:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/std_data/funcs_1/innodb_tb1.txt:
        Auto merged
      mysql-test/std_data/funcs_1/innodb_tb2.txt:
        Auto merged
      mysql-test/std_data/funcs_1/innodb_tb3.txt:
        Auto merged
      mysql-test/std_data/funcs_1/innodb_tb4.txt:
        Auto merged
      mysql-test/std_data/funcs_1/memory_tb1.txt:
        Auto merged
      mysql-test/std_data/funcs_1/memory_tb2.txt:
        Auto merged
      mysql-test/std_data/funcs_1/memory_tb3.txt:
        Auto merged
      mysql-test/std_data/funcs_1/memory_tb4.txt:
        Auto merged
      mysql-test/std_data/funcs_1/myisam_tb1.txt:
        Auto merged
      mysql-test/std_data/funcs_1/myisam_tb2.txt:
        Auto merged
      mysql-test/std_data/funcs_1/myisam_tb3.txt:
        Auto merged
      mysql-test/std_data/funcs_1/myisam_tb4.txt:
        Auto merged
      mysql-test/std_data/funcs_1/t3.txt:
        Auto merged
      mysql-test/std_data/funcs_1/t4.txt:
        Auto merged
      mysql-test/std_data/funcs_1/t7.txt:
        Auto merged
      mysql-test/std_data/funcs_1/t9.txt:
        Auto merged
      mysql-test/suite/funcs_1/README.txt:
        Auto merged
      mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc:
        Auto merged
      mysql-test/suite/funcs_1/datadict/datadict_load.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/innodb_tb1.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/innodb_tb2.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/innodb_tb3.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/innodb_tb4.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/memory_tb1.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/memory_tb2.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/memory_tb3.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/memory_tb4.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/myisam_tb1.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/myisam_tb2.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/myisam_tb3.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/myisam_tb4.inc:
        Auto merged
      mysql-test/suite/funcs_1/include/sp_tb.inc:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_func_view.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_06.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_07.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_storedproc_10.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_0102.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_0407.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_09.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_trig_frkey.result:
        Auto merged
      mysql-test/suite/funcs_1/r/innodb_views.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_columns_innodb.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_columns_memory.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_columns_myisam.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_columns_ndb.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_tables_innodb.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_tables_memory.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_tables_myisam.result:
        Auto merged
      mysql-test/suite/funcs_1/r/is_tables_ndb.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_func_view.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_06.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_07.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_storedproc_10.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_0102.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_0407.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_09.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_trig_1011ext.result:
        Auto merged
      mysql-test/suite/funcs_1/r/memory_views.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_func_view.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_06.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_07.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_storedproc_10.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_0102.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_03.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_0407.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_08.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_09.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result:
        Auto merged
      mysql-test/suite/funcs_1/r/myisam_views.result:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/storedproc_02.inc:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/storedproc_03.inc:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/storedproc_06.inc:
        Auto merged
      mysql-test/suite/funcs_1/storedproc/storedproc_10.inc:
        Auto merged
      mysql-test/suite/funcs_1/t/innodb_trig_0407.test:
        Auto merged
      mysql-test/suite/funcs_1/t/is_basics_mixed.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_02.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_03.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_06.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_07.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_08.test:
        Auto merged
      mysql-test/suite/funcs_1/t/memory_storedproc_10.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_02.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_03.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_06.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_07.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_08.test:
        Auto merged
      mysql-test/suite/funcs_1/t/myisam_storedproc_10.test:
        Auto merged
      mysql-test/suite/funcs_1/triggers/trig_frkey2.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_0102.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_03.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_0407.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_08.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_09.inc:
        Auto merged
      mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc:
        Auto merged
      mysql-test/suite/funcs_1/views/func_view.inc:
        Auto merged
      mysql-test/suite/funcs_1/views/views_master.inc:
        Auto merged
      BitKeeper/deleted/.del-load_file.txt:
        Delete: mysql-test/std_data/funcs_1/load_file.txt
      7f555041
    • unknown's avatar
      Merge host.loc:/work/bugs/5.0-bugteam-30059 · 80c6f346
      unknown authored
      into  host.loc:/work/bk/5.0-bugteam
      
      80c6f346
  5. 12 May, 2008 2 commits
    • unknown's avatar
      Merge host.loc:/work/bugs/5.0-bugteam-36055 · 3fbcf581
      unknown authored
      into  host.loc:/work/bk/5.0-bugteam
      
      3fbcf581
    • unknown's avatar
      Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables · 32425d4c
      unknown authored
      The REPAIR TABLE ... USE_FRM query silently corrupts data of tables
      with old .FRM file version.
      The mysql_upgrade client program or the REPAIR TABLE query (without
      the USE_FRM clause) can't prevent this trouble, because in the
      common case they don't upgrade .FRM file to compatible structure.
      
      1. Evaluation of the REPAIR TABLE ... USE_FRM query has been
         modified to reject such tables with the message:
         "Failed repairing incompatible .FRM file".
      
      2. REPAIR TABLE query (without USE_FRM clause) evaluation has been
         modified to upgrade .FRM files to current version.
      
      3. CHECK TABLE ... FOR UPGRADE query evaluation has been modified
         to return error status when .FRM file has incompatible version.
      
      4. mysql_upgrade and mysqlcheck client programs call CHECK TABLE
         FOR UPGRADE and REPAIR TABLE queries, so their behaviors have
         been changed too to upgrade .FRM files with incompatible
         version numbers.
      
      
      mysql-test/std_data/bug36055.MYD:
        Added test data for bug #36055.
      mysql-test/std_data/bug36055.MYI:
        Added test data for bug #36055.
      mysql-test/std_data/bug36055.frm:
        Added test data for bug #36055.
      mysql-test/r/repair.result:
        Added test case for bug# 36055.
      mysql-test/t/repair.test:
        Added test case for bug# 36055.
      sql/handler.cc:
        Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables
        
        The handler::ha_check_for_upgrade method has been modified to
        return error if .FRM file has incompatible version number.
      sql/sql_table.cc:
        Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables
        
        The prepare_for_repair function has been modified to reject
        REPAIR TABLE ... USE_FRM queries on incompatible .FRM files
        with the message: "Failed repairing incompatible .FRM file".
      32425d4c
  6. 08 May, 2008 2 commits
    • unknown's avatar
      Merge client-10-129-10-147.upp.off.mysql.com:/Users/mattiasj/clones/bug32575-50-bugteam · e764865d
      unknown authored
      into  client-10-129-10-147.upp.off.mysql.com:/Users/mattiasj/clones/topush-50-bugteam
      
      e764865d
    • unknown's avatar
      Bug#32575 - Parse error of stmt with extended comments on slave side · 61c3310f
      unknown authored
      Problem was that mysql_create_view did not remove all comments characters
      when writing to binlog, resulting in parse error of stmt on slave side.
      
      Solution was to use the recreated select clause
      and add a generated CHECK OPTION clause if needed.
      
      
      mysql-test/r/rpl_sp.result:
        Bug#32575 - Parse error of stmt with extended comments on slave side
        
        Updated test result
      mysql-test/r/rpl_view.result:
        Bug#32575 - Parse error of stmt with extended comments on slave side
        
        Updated test result
      mysql-test/t/rpl_view.test:
        Bug#32575 - Parse error of stmt with extended comments on slave side
        
        Added test case
      sql/sql_view.cc:
        Bug#32575 - Parse error of stmt with extended comments on slave side
        
        Problem was that mysql_create_view did not remove all comments characters
        when writing to binlog, resulting in parse error of stmt on slave side.
        
        Solution was to use the recreated select clause and generate
        'WITH {LOCAL|CASCADED} CHECK OPTION'.
      61c3310f
  7. 06 May, 2008 3 commits
    • unknown's avatar
      Partial rollback of fix for bug #30059: End-space truncation is inconsistent · 13ff21b0
      unknown authored
      or incorrect.
      
      For better conformance with standard, truncation procedure of CHAR columns
      has been changed to ignore truncation of trailing whitespace characters
      (note has been removed).
      
      Finally, for columns with non-binary charsets:
      
      1. CHAR(N) columns silently ignore trailing whitespace truncation;
      2. VARCHAR and TEXT columns issue Note about truncation.
      
      BLOBs and other columns with BINARY charset are unaffected.
      
      
      
      
      
      mysql-test/r/bdb.result:
        Rollback of bug #30059 fix.
      mysql-test/r/heap.result:
        Rollback of bug #30059 fix.
      mysql-test/r/innodb.result:
        Rollback of bug #30059 fix.
      mysql-test/r/myisam.result:
        Rollback of bug #30059 fix.
      mysql-test/r/strict.result:
        Rollback of bug #30059 fix.
      mysql-test/r/type_binary.result:
        Rollback of bug #30059 fix.
      mysql-test/r/warnings.result:
        Updated test case for bug #30059.
      sql/field.cc:
        Post-commit fix for bug #30059.
        
        The Field_longstr::report_if_important_data method
        has been changed to notify about trailing spaces only if
        the new count_spaces parameter is TRUE.
        
        The Field_string::store method has been changed to
        ignore trailing whitespace truncation (CHAR column
        type).
      sql/field.h:
        Post-commit fix for bug #30059.
        
        The Field_longstr::report_if_important_data method declaration
        has been changed to accept extra parameter: bool count_spaces.
      13ff21b0
    • unknown's avatar
      revert the push of bug 35616. · 2da382de
      unknown authored
      2da382de
    • unknown's avatar
      Bug#35616: memory overrun on 64-bit linux on setting large values for keybuffer-size · 496de028
      unknown authored
      We could allocate chunks larger than 4GB, but did our size-accounting in 32-bit
      values. This could lead to spurious warnings, inaccurate accounting, and, in
      theory, data loss.
      
      Affected: 64-bit platforms. Debug-build (with safemalloc). At least one buffer
      larger than 4GB. For potential data loss, a re-alloc on such a buffer would be
      necessary.
      
      
      mysys/my_static.c:
        Make memory-accounting 64-bit safe.
      mysys/my_static.h:
        Make memory-accounting 64-bit safe.
        Move in struct for better alignment when 64-bit.
      496de028
  8. 05 May, 2008 1 commit
  9. 02 May, 2008 5 commits
  10. 01 May, 2008 4 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0-bugteam · 1bbdacf6
      unknown authored
      into  pcrews-mac-local.local:/Users/pcrews/usr/local/bin/data0/build_work/mysql-5.0-trigs
      
      1bbdacf6
    • unknown's avatar
      Bug#36026 - Test funcs_1.<engine>_trig_03 failing on Windows · 2785c111
      unknown authored
      Bug#36028 - Test funcs_1.<engine>_trig_03e failing on Windows
      Bug#36029 - Test funcs_1.<engine>_trig_0407 failing on Windows
      Bug#36030 - Test funcs_1.<engine>_trig_08 failing on Windows
      
      Adding $MASTER_MYSOCK to init_win_path()
      When path names are short, master.sock ends up in MYSQL_TMP_DIR, but with longer path names,
      master.sock ends up in /tmp/<random_string>/ and these tests will fail due to path delimiter difference.
      
      New changeset to start with 5.0 -- Not all of these tests are present in 5.0, but want to keep mysqltest the same
      
      2785c111
    • unknown's avatar
      Fix for bug #35298: GROUP_CONCAT with DISTINCT can crash the server · 4769a764
      unknown authored
      The bug is a regression introduced by the patch for bug32798.
      
      The code in Item_func_group_concat::clear() relied on the 'distinct'
      variable to check if 'unique_filter' was initialized. That, however,
      is not always valid because Item_func_group_concat::setup() can do
      shortcuts in some cases w/o initializing 'unique_filter'.
      
      Fixed by checking the value of 'unique_filter' instead of 'distinct'
      before dereferencing.
      
      
      mysql-test/r/func_gconcat.result:
        Added test cases for bugs #35298 and #36024.
      mysql-test/t/func_gconcat.test:
        Added test cases for bugs #35298 and #36024.
      sql/item_sum.cc:
        Check if unique_filter != NULL before dereferencing it. Non-zero value
        of distinct does not always mean that unique_filter is initialized
        because Item_func_group_concat::setup() can do shortcuts is some cases
      4769a764
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · e514cc59
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/work/merge-5.0-bugteam
      
      e514cc59
  11. 30 Apr, 2008 1 commit
  12. 28 Apr, 2008 8 commits