1. 17 May, 2011 2 commits
  2. 16 May, 2011 7 commits
    • unknown's avatar
      Fix LP BUG#778413 · 4a9c027a
      unknown authored
      Analysis:
      The subquery is evaluated first during ref-optimization of the outer
      query because the subquery is considered constant from the perspective
      of the outer query. Thus an attempt is made to evaluate the MAX subquery
      and use the new constant to drive an index nested loops join.
      During this evaluation the inner-most subquery replaces the JOIN_TAB
      with a new one that fetches the data from a temp table.
      The function select_describe crashes at the lines:
              TABLE_LIST *real_table= table->pos_in_table_list; 
      	item_list.push_back(new Item_string(real_table->alias,
      					    strlen(real_table->alias),
      					    cs));
      because 'table' is a temp table, and it has no corresponding table
      reference. This 'real_table' is NULL, and real_table->alias results
      in a crash.
      
      Solution:
      In the spirit of MWL#89 prevent the evaluation of expensive predicates
      during optimization. This patch prevents the evaluation of expensive
      predicates during ref optimization.
      
      
      sql/item_subselect.h:
        Remove unused class member. Not needed for the fix, but noticed now and removed.
      4a9c027a
    • unknown's avatar
      fix dynco test on Windows, really now · 3565a470
      unknown authored
      (from Wlad)
      3565a470
    • unknown's avatar
      Fix of compiler errors. · 157a9453
      unknown authored
      storage/maria/ma_loghandler.c:
        Awoiding signed and unsigned comporison.
      storage/maria/ma_loghandler.h:
        debug function.
      storage/maria/unittest/ma_loghandler_examples.c:
        debug function.
      157a9453
    • Michael Widenius's avatar
      Automatic merge · ae0b6f6d
      Michael Widenius authored
      ae0b6f6d
    • Michael Widenius's avatar
      Merge with 5.3 main · 8543621f
      Michael Widenius authored
      8543621f
    • Michael Widenius's avatar
      Merge with 5.2 · f458e198
      Michael Widenius authored
      f458e198
    • Michael Widenius's avatar
      Added more asserts to find out how maria.maria-big could have failed in buildbot. · 8c5e18c9
      Michael Widenius authored
      
      storage/maria/ma_loghandler.c:
        Added assert if we give wrong type to translog_write_record().
        (This should be impossible, but the failure record in buildbot also looks impossible so we need more information...)
      storage/maria/ma_loghandler.h:
        Added prototype for check_translog_description_table()
      storage/maria/unittest/ma_loghandler_examples.c:
        Call check_translog_description_table() to register number of log_record_type_descriptor[] events.
      8c5e18c9
  3. 15 May, 2011 1 commit
    • Vladislav Vaintroub's avatar
      Small CMake fixes : · 19f0d6b2
      Vladislav Vaintroub authored
      - add version info for the client library, dynamic plugins and some utilities
      - do not recompile client library sources 3 times (for mysqlclient , mysqlclient_notls and libmysql)
        One time is sufficient, so get rid of mysqlclient_notls, and link  static client library  to  the shared.
      - remove incremental linking flag
      19f0d6b2
  4. 14 May, 2011 5 commits
  5. 13 May, 2011 6 commits
    • Vladislav Vaintroub's avatar
      Fix PBXT bugs found while testing with Application Verifier : · 218c7665
      Vladislav Vaintroub authored
      LPBUG#782269 : critical sections are initialized twice in   xt_xn_init_db() 
      LPBUG#782431: active lock in memory released by   xt_ind_exit()
      LPBUG#782433 : xt_heap_release() does not release spinlock  hp->h_lock initialized in xt_heap_new().
      LPBUG#782435: xt_exit_row_locks() tries to release unallocated locks
      218c7665
    • Vladislav Vaintroub's avatar
    • unknown's avatar
      Fix LP BUG#777597 · b757f734
      unknown authored
      Analysis:
      During optimization of the subquery, in the call chain:
      
      update_ref_and_keys -> add_key_fields ->
      merge_key_fields -> Item_direct_ref::is_null -> Item_cache::is_null
      
      The call to Item_cache::is_null() returns TRUE, which is wrong.
      This results in Item_null replacing the field 'f3' in the KEY_FIELD,
      then this Item_null is used for index access, producing a wrong result.
      
      The reason why Item_cache::is_null returns wrong result is that
      this Item_cache object is a cache of the left operand of IN, and was
      updated in Item_in_optimizer::val_int. In MWL#89 the latter method is
      called during the execution phase, which is after we optimize the subquery.
      Therefore during the optization phase the left operand cache of IN was
      not updated.
      
      Solution:
      Update the left operand cache during optimization if it is a constant.
      
      This bug fix also discoveres and fixes a wrong IF statement in
      convert_constant_item().
      b757f734
    • Oleksandr Byelkin's avatar
      Directories with .dylib files added to DYLD_LOIBRARY_PATH to allow plugins to use them. · bcee6652
      Oleksandr Byelkin authored
      mysql-test/mysql-test-run.pl:
        Directories added for mac to lybrary search paths.
      plugin/handler_socket/libhsclient/Makefile.am:
        Static build of library removed.
      bcee6652
    • Michael Widenius's avatar
      Made test-unit run in parlallel. This was achived by having all aria tests... · 5933619c
      Michael Widenius authored
      Made test-unit run in parlallel. This was achived by having all aria tests that uses temporary files to create the temporary file in an unique tempdirectory.
      aria_chk now returns 1 if one got any warnings during check and 2 if one got errors.
      lp:728919 maria_chk should fail on all detected corruptions
      
      mysql-test/lib/My/SafeProcess.pm:
        Removed ^M lines from the file
      storage/maria/ma_check.c:
        Fixed indentation
      storage/maria/maria_chk.c:
        aria_chk now returns 1 if one got any warnings during check and 2 if one got errors.
      storage/maria/unittest/ma_control_file-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_maria_log_cleanup.c:
        Added help function create_tmpdir()
      storage/maria/unittest/ma_pagecache_consist.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_rwconsist.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_rwconsist2.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_pagecache_single.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_all-t:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_first_lsn-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_max_lsn-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_multithread-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_noflush-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_nologs-t.c:
        Use unique sub directory for test results
      storage/maria/unittest/ma_test_loghandler_pagecache-t.c:
        Use unique sub directory for test results
        remove delete of files that are already deleted by maria_log_remove()
      storage/maria/unittest/ma_test_loghandler_purge-t.c:
        Use unique sub directory for test results
      support-files/compiler_warnings.supp:
        Supress some warnings
      unittest/unit.pl:
        Run 4 unittests in parallel
      5933619c
    • Michael Widenius's avatar
      Fixed test differences on windows · 3a6da123
      Michael Widenius authored
      3a6da123
  6. 12 May, 2011 7 commits
  7. 11 May, 2011 11 commits
    • Michael Widenius's avatar
      Fixed bug when accessing wrong decimal value in dynamic string (Fixed lp:781233) · 4c81cef7
      Michael Widenius authored
      Store decimal 0.0 in zero bytes in dynamic strings.
      mysqltest: Don't ignore error from mysql_stmt_fetch;  This could cause rows to be missing from log when running with --ps-protocol
      Fixed wrong result length for CAST(... as TIME)
      
      
      
      
      
      
      client/mysqltest.cc:
        Don't ignore error from mysql_stmt_fetch;  This could cause rows to be missing from log when running with --ps-protocol
      libmysql/libmysql.c:
        The max length for a TIME column is 17, not 15.
      mysql-test/r/dyncol.result:
        More tests
      mysql-test/t/dyncol.test:
        More tests
      mysys/ma_dyncol.c:
        Check content of decimal value on read and store to not get assert in decimal_bin_size().
        Store decimal 0.0 in zero bytes in dynamic strings. This also solves a problem where decimal 0 had different internal representations.
      sql-common/my_time.c:
        Fixed DBUG_PRINT
      sql/item_timefunc.h:
        Fixed wrong result length for CAST(... as TIME). This was the cause of failures in buildbot when doing cast(... as time);
      sql/protocol.cc:
        More DBUG_PRINT
      4c81cef7
    • unknown's avatar
      Automatic merge with MWL148 · 88408233
      unknown authored
      88408233
    • unknown's avatar
      Post review fixes of MWL#148 (moving max/min optimization in optimize phase). · 18d08eea
      unknown authored
      sql/item_subselect.cc:
        Cleanup. Comments added.
      sql/item_subselect.h:
        Cleanup.
      sql/mysql_priv.h:
        Comments added.
      sql/opt_subselect.cc:
        The function renamed and turned to method.
        Comments added.
      sql/opt_subselect.h:
        The function turned to method of JOIN.
      sql/sql_select.cc:
        Comment added. The function turned to method.
      sql/sql_select.h:
        The function turned to method.
      18d08eea
    • Michael Widenius's avatar
      automatic merge · 3a537679
      Michael Widenius authored
      3a537679
    • Michael Widenius's avatar
      Fixed a memory overrun in dynamic columns when sending in a mailformed (too... · f940c2ca
      Michael Widenius authored
      Fixed a memory overrun in dynamic columns when sending in a mailformed (too short in this case) string.
      
      mysql-test/t/dyncol.test:
        Added test case for mailformed string usage
      mysys/ma_dyncol.c:
        Added test for wrong dynamic string data
      f940c2ca
    • unknown's avatar
      Bugfix: New table creation/renaming block added if old encoded table present. · 520927a7
      unknown authored
      mysql-test/r/create.result:
        test of renaming
      mysql-test/r/upgrade.result:
        Now such behaviour prohibited to avoid problems.
      mysql-test/t/create.test:
        test of renaming
      mysql-test/t/upgrade.test:
        Now such behaviour prohibited to avoid problems.
      sql/mysql_priv.h:
        Function to test table name presence added.
      sql/sql_rename.cc:
        Rename fixed.
      sql/sql_table.cc:
        Function to test table name presence added.
        Create fixed.
      520927a7
    • Michael Widenius's avatar
      Fixed compiler warnings and test cases problems found by buildbot · 8d52c2cf
      Michael Widenius authored
      
      mysql-test/r/dyncol.result:
        Updated test results
      mysql-test/r/index_intersect.result:
        Updated results
      mysql-test/r/index_intersect_innodb.result:
        Updated results
      mysql-test/t/dyncol.test:
        Added replace_result for floating point results that are different on windows
        Added round() around a result to get same result on all platforms.
      mysql-test/t/index_intersect.test:
        Added replace_result to fix that index_merge may put key names in different order.
      mysys/ma_dyncol.c:
        Fixed compiler warnings on Solaris
      sql/key.cc:
        Fixed compiler warnings on Solaris
      sql/mysqld.cc:
        Fixed compiler warning on windows
      support-files/compiler_warnings.supp:
        Suppressed an unintersting warning on Solaris
      8d52c2cf
    • Sergey Petrunya's avatar
      Merge fix for BUG#779885 · 0a5026b0
      Sergey Petrunya authored
      0a5026b0
    • unknown's avatar
      automerge · fedeacee
      unknown authored
      fedeacee
    • unknown's avatar
      Fix race in testcase innodb_plugin.group_commit_no_optimize_thread · 6695c6f1
      unknown authored
      The problem was that connection con5, which is supposed to be the leader for
      the third group, could if timing was bad end up as participant in the second
      group, causing the test to fail.
      
      Fixed by ensuring that group 2 is running before starting the transaction
      for group 3.
      6695c6f1
    • Vladislav Vaintroub's avatar
      Fix compile error by changing #include <mysys_priv.h> to #include "mysys_priv.h" · c735c1b7
      Vladislav Vaintroub authored
      Fix various warnings about conversion from bigger to smaller integer types in assignments
      c735c1b7
  8. 10 May, 2011 1 commit
    • Michael Widenius's avatar
      Fixed all reported bugs for dynamic columns. · 052d1bfb
      Michael Widenius authored
      Bugs fixed:
      - Added automatic detection of unsigned arguments to COLUMN_CREATE()
      - If string length is not know for COLUMN_GET() use MAX_DYNAMIC_COLUMN_LENGTH instead of MAX_FIELD_BLOBLENGTH
      - null_value flag was not propery reset for COLUMN_LIST() and COLUMN_CREATE() which could lead to crashes later:
      - lp:778905 Assertion `value->year <= 9999' failed in dynamic_column_date_store
      - lp:778912 Assertion `field_pos < field_count' failed in Protocol_text::store in maria-5.3-mwl34
      
      include/ma_dyncol.h:
        Added define for max dynamic column length.
      mysql-test/r/cast.result:
        Added test of cast big unsigned int to signed (this test case was missing)
      mysql-test/r/dyncol.result:
        Added tests from reported bugs
        Added testing of automatic store of signed/unsigned integers
      mysql-test/t/cast.test:
        Added test of cast big unsigned int to signed (this test case was missing)
      mysql-test/t/dyncol.test:
        Added tests from reported bugs
        Added testing of automatic store of signed/unsigned integers
      sql/item.cc:
        Added assert to catch cases where null_value is not set properly
      sql/item_strfunc.cc:
        Added automatic detection of unsigned arguments to COLUMN_CREATE()
        COLUMN_GET() returned wrong value for illegal strings which lead to assert later
        null_value flag was not propery reset for COLUMN_LIST() and COLUMN_CREATE() which could lead to crashes later.
      sql/item_strfunc.h:
        If string length is not know for COLUMN_GET() use MAX_DYNAMIC_COLUMN_LENGTH
      052d1bfb