1. 08 Sep, 2009 4 commits
    • Joerg Bruehe's avatar
      Make sure that variables which are (or may be) used · 98ea9cdc
      Joerg Bruehe authored
      in an ".opt" file are defined to some value (even
      if it is empty). Without this, a test suite run
      aborted on Windows for "embedded".
      
      This fix was applied dusing the build of 5.4.2-beta.
      
      
      mysql-test/mysql-test-run.pl:
        From the code (function "envsubst()"), it is obvious
        that any variable which is used in an ".opt" file needs
        to be defined.
        If the value is wrong, starting the server may fail -
        but if the variable is undefined, the whole test suite
        will abort.
        
        So variables which are used in an ".opt" file should
        always be defined to some value, even if it is blank.
        
        This fix may be overkill, I did not check in detail
        whether all these variables are really used in an ".opt"
        file - but some are.
      98ea9cdc
    • Joerg Bruehe's avatar
      The former "Instance Manager" (program "mysqlmanager") · b4d8134a
      Joerg Bruehe authored
      is not being built in 5.4.2-beta,
      so it cannot be included in a RPM:
      Remove both the program and the man page from the spec file.
      
      This patch was applied during the build of 5.4.2-beta.
      b4d8134a
    • Joerg Bruehe's avatar
      Some fixes to make 5.4.2-beta compile on the less common · 3942e1d0
      Joerg Bruehe authored
      platforms like AIX, HP-UX, and Solaris 8.
      
      All these are upmerges from 5.1 which came too late to be
      included when 5.4.2-beta was cloned, so they were applied
      during the build phase.
      3942e1d0
    • Joerg Bruehe's avatar
      This is the 5.4 version of the fix for bug#47007 · 52e61da2
      Joerg Bruehe authored
         Unresolved reference to 'innodb_system_libs' in "mysql_config"
      
      In 5.4.2, we use InnoDB 1.0.4 which does file IO via separate
      threads, opposed to the use of asynchronous IO previously.
      
      So there is no InnoDB call to "aio_read()" which was searched
      in "librt", causing a "-lrt" value of "innodb_system_libs",
      that whole variable is gone.
      
      This fix was applied in the build of 5.4.2-beta.
      
      scripts/Makefile.am:
        There is no "innodb_system_libs" variable any more,
        so it cannot be replaced by its value.
      scripts/mysql_config.pl.in:
        InnoDB does not need any platform-specific libraries any more,
        "innodb_system_libs" may go.
      scripts/mysql_config.sh:
        InnoDB does not need any platform-specific libraries any more,
        "innodb_system_libs" may go.
      52e61da2
  2. 25 Aug, 2009 1 commit
  3. 24 Aug, 2009 1 commit
  4. 19 Aug, 2009 1 commit
  5. 13 Aug, 2009 1 commit
  6. 12 Aug, 2009 5 commits
  7. 11 Aug, 2009 8 commits
  8. 10 Aug, 2009 3 commits
  9. 08 Aug, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#45010: invalid memory reads during parsing some strange statements · 357430de
      Davi Arnaut authored
      The problem is that the lexer could inadvertently skip over the
      end of a query being parsed if it encountered a malformed multibyte
      character. A specially crated query string could cause the lexer
      to jump up to six bytes past the end of the query buffer. Another
      problem was that the laxer could use unfiltered user input as
      a signed array index for the parser maps (having upper and lower
      bounds 0 and 256 respectively).
      
      The solution is to ensure that the lexer only skips over well-formed
      multibyte characters and that the index value of the parser maps
      is always a unsigned value.
      
      mysql-test/r/ctype_recoding.result:
        Update test case result: ending backtick is not skipped over anymore.
      sql/sql_lex.cc:
        Characters being analyzed must be unsigned as they can be
        used as indexes for the parser maps. Only skip over if the
        string is a valid multi-byte sequence.
      tests/mysql_client_test.c:
        Add test case for Bug#45010
      357430de
  10. 07 Aug, 2009 5 commits
    • Guilhem Bichot's avatar
      small cmake fix for Windows build · 5e98bffa
      Guilhem Bichot authored
      storage/innobase/CMakeLists.txt:
        ${WIN64} fails if variable is undefined
      5e98bffa
    • Guilhem Bichot's avatar
    • Guilhem Bichot's avatar
      Fixes to tests and their results, to account for differences between InnoDB... · 60dead9c
      Guilhem Bichot authored
      Fixes to tests and their results, to account for differences between InnoDB 1.0.4 and the old builtin.
      All committed result differences have either been verified by me or copied from Oracle's provided
      results (storage/innodb_plugin/mysql-test/*.result, storage/innodb_plugin/mysql-test/patches).
      
      mysql-test/r/information_schema.result:
        queries changed a bit
      mysql-test/r/information_schema_db.result:
        queries changed a bit
      mysql-test/r/innodb-autoinc.result:
        importing piece from storage/innodb_plugin/mysql-test/innodb-autoinc.result
      mysql-test/r/innodb.result:
        result close to storage/innodb_plugin/innodb.result, except 4095 pages instead of 8191, which makes
        sense as Summit runs with a buffer pool of 64M, whereas the mentioned result file was made with
        a buffer pool of 128M.
      mysql-test/r/mysqlshow.result:
        InnoDB I_S tables have arrived
      mysql-test/suite/funcs_1/r/is_columns_is.result:
        queries changed a bit
      mysql-test/suite/funcs_1/r/is_columns_is_embedded.result:
        queries changed a bit
      mysql-test/suite/funcs_1/r/is_tables_is.result:
        queries changed a bit
      mysql-test/suite/funcs_1/t/is_columns_is.test:
        making I_S queries ignore InnoDB I_S tables
      mysql-test/suite/funcs_1/t/is_columns_is_embedded.test:
        making I_S queries ignore InnoDB I_S tables
      mysql-test/suite/funcs_1/t/is_tables_is.test:
        making I_S queries ignore InnoDB I_S tables
      mysql-test/suite/innodb/r/innodb-zip.result:
        result update
      mysql-test/suite/innodb/t/innodb-zip.test:
        439, as size of prefix key, throws error with certain system zlib (ubuntu
        "intrepid") but not with zlib bundled with MySQL, because zlib's
        compressBound() are different (and used by InnoDB's page_zip_empty_size()).
      mysql-test/suite/sys_vars/r/innodb_file_per_table_basic.result:
        result update
      mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result:
        result update
      mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_32.result:
        result update (default value is 30 in the plugin, 20 in the builtin)
      mysql-test/suite/sys_vars/r/innodb_sync_spin_loops_basic_64.result:
        result update (default value is 30 in the plugin, 20 in the builtin)
      mysql-test/suite/sys_vars/r/table_definition_cache_basic.result:
        result update (default value is 400 in Summit)
      mysql-test/suite/sys_vars/t/innodb_file_per_table_basic.test:
        variable is writable in the plugin (patch from Oracle)
      mysql-test/suite/sys_vars/t/innodb_lock_wait_timeout_basic.test:
        variable is per-session in the plugin (patch from Oracle)
      mysql-test/t/information_schema.test:
        making I_S queries ignore InnoDB I_S tables
      mysql-test/t/information_schema_db.test:
        making I_S queries ignore InnoDB I_S tables
      mysql-test/t/innodb-autoinc.test:
        importing piece from storage/innodb_plugin/mysql-test/innodb-autoinc.test
      mysql-test/t/innodb.test:
        importing most of storage/innodb_plugin/t/innodb.test. Most replace_result were not needed (no path printed), some where (for --embedded).
      mysql-test/t/mysqlshow.test:
        output of test now depends on InnoDB or not InnoDB. As there is no way to make mysqlshow
        produce a single output in those two cases (no way to make it exclude InnoDB I_S
        tables), let the test depend on InnoDB, it isn't a very selective condition, and the
        test is simple enough.
      storage/innobase/CMakeLists.txt:
        thanks Vlad for the noticing () vs {}
      60dead9c
    • Martin Hansson's avatar
      Bug#46454: MySQL wrong index optimisation leads to incorrect result & crashes · 1164f8a6
      Martin Hansson authored
      Problem 1:
      When the 'Using index' optimization is used, the optimizer may still - after
      cost-based optimization - decide to use another index in order to avoid using
      a temporary table. But when this happens, the flag to the storage engine to 
      read index only (not table) was still set. Fixed by resetting the flag in the 
      storage engine and TABLE structure in the above scenario, unless the new index
      allows for the same optimization.
      Problem 2:
      When a 'ref' access method was employed by cost-based optimizer, (when the column
      is non-NULLable), it was assumed that it needed no initialization if 'quick' access
      methods (since they are based on range scan). When ORDER BY optimization overrides 
      the decision, however, it expects to have this initialized and hence crashes. 
      Fixed in 5.1 (was fixed in 6.0 already) by initializing 'quick' even when there's 
      'ref' access. 
      
      mysql-test/r/order_by.result:
        Bug#46454: Test result.
      mysql-test/t/order_by.test:
        Bug#46454: Test case.
      sql/sql_select.cc:
        Bug#46454: 
        Problem 1 fixed in make_join_select()
        Problem 2 fixed in test_if_skip_sort_order()
      sql/table.h:
        Bug#46454: Added comment to field.
      1164f8a6
    • Guilhem Bichot's avatar
      Renamed storage/innodb_plugin to storage/innobase, so that 1) it's the same · 7f2dd157
      Guilhem Bichot authored
      layout as we always had in trees containing only the builtin
      2) win\configure.js WITH_INNOBASE_STORAGE_ENGINE still works.
      
      storage/innobase/CMakeLists.txt:
        fix to new directory name (and like 5.1)
      storage/innobase/Makefile.am:
        fix to new directory name (and like 5.1)
      storage/innobase/handler/ha_innodb.cc:
        fix to new directory name (and like 5.1)
      storage/innobase/plug.in:
        fix to new directory name (and like 5.1)
      7f2dd157
  11. 06 Aug, 2009 4 commits
    • Ignacio Galarza's avatar
      Auto-merge · 2c190aea
      Ignacio Galarza authored
      2c190aea
    • Ignacio Galarza's avatar
      046267cf
    • Satya B's avatar
      Fix for BUG#45816 - assertion failure with index containing double · ee9aff79
      Satya B authored
                          column on partitioned table
            
            
      An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
      is executed with index containing double column on partitioned table.
      The problem is that assertion expects all the fields which are read,
      to be in the read_set.
            
      In this query only the field 'a' is in the readset as the tables in
      the query are joined by the field 'a' and so the assertion fails 
      expecting other field 'b'.
            
      Since the function cmp() is just comparison of two parameters passed, 
      the assertion is not required.
            
      Fixed by removing the assertion in the double fields comparision
      function and also fixed the index initialization to do ordered
      index scan with RW LOCK which ensures all the fields from a key are in
      the read_set.
       
      
      Note: this bug is not reproducible with other datatypes because the
            assertion doesn't exist in comparision function for other 
            datatypes.
      
      mysql-test/r/partition.result:
        Testcase for BUG#45816
      mysql-test/t/partition.test:
        Testcase for BUG#45816
      sql/field.cc:
        Removed the assertion ASSERT_COLUMN_MARED_FOR_READ in Field_double::cmp()
        function
      sql/ha_partition.cc:
        Fixed index_int() method to make it initialize the read_set properly if
        ordered index scan with RW lock is requested.
      ee9aff79
    • unknown's avatar
      Bug #45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hack_handler · 13c44afe
      unknown authored
      The server shutdown and start code triggered the valgrind failures 
      within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64) 
      in rpl_trigger.test file.
      
      For fixing the bug, suppress valgrind failures within nptl_pthread_exit_hack_handler 
      on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
      code has been heavily used in mysql test set.
      
      mysql-test/valgrind.supp:
        Add code for suppressing valgrind failures within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64).
      13c44afe
  12. 05 Aug, 2009 2 commits
    • Jim Winstead's avatar
      Merge approved bug fix · 5d99ee25
      Jim Winstead authored
      5d99ee25
    • Guilhem Bichot's avatar
      InnoDB plugin is built-in: remove test code which depended on the plugin property · 10080d54
      Guilhem Bichot authored
      mysql-test/lib/mtr_cases.pm:
        there is only one InnoDB in this tree, no need to run an InnoDB test twice
      mysql-test/suite/innodb/include/have_innodb_plugin.inc:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb-analyze.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb-timeout.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb-use-sys-malloc.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb-zip.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb_bug36169.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb_bug36172.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb_file_format.test:
        plugin is now the builtin
      mysql-test/suite/innodb/t/innodb_information_schema.test:
        plugin is now the builtin
      storage/innodb_plugin/plug.in:
        build libinnobase.a, to have it built-in
      10080d54
  13. 04 Aug, 2009 4 commits