1. 22 Aug, 2007 1 commit
    • unknown's avatar
      Fixed bug #30201. · 891b1659
      unknown authored
      Killing a SELECT query with KILL QUERY or KILL CONNECTION
      causes a server crash if the query cache is enabled.
      
      Normal evaluation of a query may be interrupted by the
      KILL QUERY/CONNECTION statement, in this case the mysql_execute_command
      function returns TRUE, and the thd->killed flag has true value.
      In this case the result of the query may
      be cached incompletely (omitting call to query_cache_insert inside
      the net_real_write function), and next call to query_cache_end_of_result
      may lead to server crash.
      Thus, the query_cache_end_of_result function has been modified to abort
      query cache in the case of killed thread.
      
      
      
      sql/sql_cache.cc:
        Fixed bug #30201.
        The  query_cache_end_of_result function has been modified to abort query
        cache in the case of query execution failure. Also this function has been
        modified to remove incomplete query block.
      891b1659
  2. 17 Aug, 2007 1 commit
  3. 16 Aug, 2007 1 commit
  4. 15 Aug, 2007 3 commits
    • unknown's avatar
      Fixed bug #30396. · a8f8e548
      unknown authored
      The bug caused memory corruption for some queries with top OR level
      in the WHERE condition if they contained equality predicates and 
      other sargable predicates in disjunctive parts of the condition.
      
      The corruption happened because the upper bound of the memory
      allocated for KEY_FIELD and SARGABLE_PARAM internal structures
      containing info about potential lookup keys was calculated incorrectly
      in some cases. In particular it was calculated incorrectly when the
      WHERE condition was an OR formula with disjuncts being AND formulas
      including equalities and other sargable predicates.
      
      
      mysql-test/r/select.result:
        Added a test case for bug #30396.
      mysql-test/t/select.test:
        Added a test case for bug #30396.
      sql/item_cmpfunc.h:
        Removed max_members from the COND_EQUAL class as not useful anymore.
      sql/sql_base.cc:
        Added the max_equal_elems field to the st_select_lex structure.
      sql/sql_lex.cc:
        Added the max_equal_elems field to the st_select_lex structure.
      sql/sql_lex.h:
        Added the max_equal_elems field to the st_select_lex structure.
        The field contains the maximal number of elements in multiple equalities
        built for the query conditions.
      sql/sql_select.cc:
        Fixed bug #30396.
        The bug caused memory corruption for some queries with top OR level
        in the WHERE condition if they contained equality predicates and 
        other sargable predicates in disjunctive parts of the condition.
        
        The corruption happened because the upper bound of the memory
        allocated for KEY_FIELD and SARGABLE_PARAM internal structures
        containing info about potential lookup keys was calculated incorrectly
        in some cases. In particular it was calculated incorrectly when the
        WHERE condition was an OR formula with disjuncts being AND formulas
        including equalities and other sargable predicates.
         
        The max_equal_elems field to the st_select_lex structure is used now
        to calculate the above mentioned upper bound. The field contains the
        maximal number of elements in multiple equalities built for the query
        conditions.
      a8f8e548
    • unknown's avatar
      mysql_client_test.c: · bbf2211b
      unknown authored
        Post fix for the bug#29948.
      
      
      tests/mysql_client_test.c:
        Post fix for the bug#29948.
      bbf2211b
    • unknown's avatar
      bug#28570: handler::index_read() is called with different find_flag when · 01f8130a
      unknown authored
      ORDER BY is used
      
      The range analysis module did not correctly signal to the 
      handler that a range represents a ref (EQ_RANGE flag). This causes 
      non-range queries like 
      SELECT ... FROM ... WHERE keypart_1=const, ..., keypart_n=const 
      ORDER BY ... FOR UPDATE
      to wait for a lock unneccesarily if another running transaction uses
      SELECT ... FOR UPDATE on the same table.
      
      Fixed by setting EQ_RANGE for all range accesses that represent 
      an equality predicate. 
      
      
      mysql-test/r/innodb_mysql.result:
        bug#28570: Test Result
      mysql-test/t/innodb_mysql.test:
        bug#28570: Test Case
      sql/handler.cc:
        bug#28570: Updated comment
      sql/opt_range.cc:
        bug#28570: Removed the criterion that key has to be unique (HA_NOSAME) in 
        order for the EQ_RANGE flag to be set. It is sufficient that the range 
        represent a ref access.
      01f8130a
  5. 14 Aug, 2007 3 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 83fdcb2b
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/29948-bug-5.0-opt-mysql
      
      
      tests/mysql_client_test.c:
        Manually merged
      83fdcb2b
    • unknown's avatar
      Bug#29948: Unchecked NULL pointer caused server crash. · e34aa82d
      unknown authored
      The cli_read_binary_rows function is used to fetch data from the server
      after a prepared statement execution. It accepts a statement handler and gets
      the connection handler from it. But when the auto-reconnect option is set
      the connection handler is reset to NULL after reconnection because the
      prepared statement is lost and the handler became useless. This case
      wasn't checked in the cli_read_binary_rows function and caused server crash.
      
      Now the cli_read_binary_rows function checks the connection handler to be
      not NULL and returns an error if it is.
      
      
      tests/mysql_client_test.c:
        Added a test case for the bug#29948: Unchecked NULL pointer caused server crash.
      libmysql/libmysql.c:
        Bug#29948: Unchecked NULL pointer caused server crash.
        Now the cli_read_binary_rows function checks the connection handler to be
        not NULL and returns an error if it is.
      e34aa82d
    • unknown's avatar
      Merge gleb.loc:/home/uchum/work/bk/5.0 · de619bd1
      unknown authored
      into  gleb.loc:/home/uchum/work/bk/5.0-opt
      
      
      de619bd1
  6. 13 Aug, 2007 3 commits
  7. 10 Aug, 2007 1 commit
  8. 08 Aug, 2007 1 commit
  9. 06 Aug, 2007 8 commits
  10. 05 Aug, 2007 8 commits
    • unknown's avatar
      mysql-test-run.pl: · 57e225bb
      unknown authored
        Search "relwithdebinfo" directory in CMake Visual Studio build
        Search for "mysqld-debug" even in source tree
      
      
      mysql-test/mysql-test-run.pl:
        Search "relwithdebinfo" directory in CMake Visual Studio build
        Search for "mysqld-debug" even in source tree
      57e225bb
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · e106b09a
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug30219
      
      
      e106b09a
    • unknown's avatar
      Fix bug #30219. · 4e6e1220
      unknown authored
      This bug manifested itself for queries with grouping by columns of
      the BIT type. It led to wrong comparisons of bit-field values and
      wrong result sets.
      Bit-field values never cannot be compared as binary values. Yet
      the class Field_bit had an implementation of the cmp method that
      compared bit-fields values as binary values. 
      Also the get_image and set_image methods of the base class Field 
      cannot be used for objects of the Field_bit class. 
      Now these methods are declared as virtual and specific implementations
      of the methods are provided for the class Field_bit.
      
      
      mysql-test/r/type_bit.result:
        Added a test case for bug #30219.
      mysql-test/t/type_bit.test:
        Added a test case for bug #30219.
      sql/field.h:
        Fix bug #30219.
        This bug manifested itself for queries with grouping by columns of
        the BIT type. It led to wrong comparisons of bit-field values and
        wrong result sets.
        Bit-field values never cannot be compared as binary values. Yet
        the class Field_bit had an implementation of the cmp method that
        compared bit-fields values as binary values.
        Also the get_image and set_image methods of the base class Field
        cannot be used for objects of the Field_bit class. 
        Now these methods are declared as virtual and specific implementations
        of these methods are provided for the class Field_bit.
      4e6e1220
    • unknown's avatar
      Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build · 308c6448
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
      
      
      308c6448
    • unknown's avatar
      Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0 · fe87e88f
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
      
      
      fe87e88f
    • unknown's avatar
      Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1 · a3d5f64c
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-4.1-build
      
      
      a3d5f64c
    • unknown's avatar
      Fix for bug #21281 "Pending write lock is incorrectly removed when its · af2d0f87
      unknown authored
      statement being KILLed".
      
      When statement which was trying to obtain write lock on then table and
      which was blocked by existing read lock was killed, concurrent statements
      that were trying to obtain read locks on the same table and that were
      blocked by the presence of this pending write lock were not woken up and
      had to wait until this first read lock goes away.
      
      This problem was caused by the fact that we forgot to wake up threads
      which pending requests could have been satisfied after removing lock
      request for the killed thread.
      
      The patch solves the problem by waking up those threads in such situation.
      
      Test for this bug will be added to 5.1 only as it has much better
      facilities for its implementation. Particularly, by using I_S.PROCESSLIST
      and wait_condition.inc script we can wait until thread will be blocked on
      certain table lock without relying on unconditional sleep (which usage
      increases time needed for test runs and might cause spurious test
      failures on slower platforms).
      
      
      mysys/thr_lock.c:
        After removing lock request from the list of waiting lock requests
        (e.g. when we discover that current thread was killed) we should
        wake up other threads waiting for the same lock which pending
        requests now can be satisfied. To implement this behavior we
        move code responsible for waking up threads which pending requests
        can be satisfied from thr_unlock() to new wake_up_waiters() procedure
        and use it in wait_for_lock() and hr_abort_locks_for_thread().
      af2d0f87
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0 · 983cda8d
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-merge
      
      
      sql/mysqld.cc:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      983cda8d
  11. 04 Aug, 2007 2 commits
  12. 03 Aug, 2007 8 commits
    • unknown's avatar
      CMakeLists.txt: · edc99e12
      unknown authored
        Removed space between '-D' and symbol
      
      
      CMakeLists.txt:
        Removed space between '-D' and symbol
      edc99e12
    • unknown's avatar
      CMakeLists.txt, README, configure.js · 29bd01e6
      unknown authored
        Several adjustments to make client libraries pass the link test
        on both win32 and winx64, Visual Studio 2003 and 2005 (bug#30118)
      
      
      win/README:
        - Removed references to PARTITION engine, 5.1 only
      win/configure.js:
        - Removed references to PARTITION engine, 5.1 only
      extra/CMakeLists.txt:
        Use the special 'debug' list element to mark that "dbug" library
        is only to be linked against if build type "Debug".
      myisam/CMakeLists.txt:
        Use the special 'debug' list element to mark that "dbug" library
        is only to be linked against if build type "Debug".
      scripts/CMakeLists.txt:
        Use the special 'debug' list element to mark that "dbug" library
        is only to be linked against if build type "Debug".
      server-tools/instance-manager/CMakeLists.txt:
        Use the special 'debug' list element to mark that "dbug" library
        is only to be linked against if build type "Debug".
      sql/CMakeLists.txt:
        Use the special 'debug' list element to mark that "dbug" library
        is only to be linked against if build type "Debug".
      mysys/CMakeLists.txt:
        Restored include path to "mysys" itself
      dbug/CMakeLists.txt:
        Changed to optionally be included to give a file list only
      extra/yassl/CMakeLists.txt:
        Changed to optionally be included to give a file list only
      extra/yassl/taocrypt/CMakeLists.txt:
        Changed to optionally be included to give a file list only
      zlib/CMakeLists.txt:
        Changed to optionally be included to give a file list only
      libmysql/CMakeLists.txt:
        For compatibility with Visual Studio 2005, list all files that are to
        be part of the library build, i.e. libraries can't be built from other
        libraries. Set SOURCE_SUBLIBS and include the file listings from
        "zlib", "dbug", "taocrypt" and "yassl"
      29bd01e6
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl · 6c1edb11
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-2team
      
      
      mysql-test/r/func_time.result:
        Auto merged
      mysql-test/t/func_time.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      6c1edb11
    • unknown's avatar
      .del-readme.txt-grumble-grumble: · 712d7fa2
      unknown authored
        Rename: BitKeeper/deleted/.del-readme.txt -> BitKeeper/deleted/.del-readme.txt-grumble-grumble
      
      
      BitKeeper/deleted/.del-readme.txt-grumble-grumble:
        Rename: BitKeeper/deleted/.del-readme.txt -> BitKeeper/deleted/.del-readme.txt-grumble-grumble
      712d7fa2
    • unknown's avatar
      Bug #25228: rpl_relayspace.test fails on powermacg5, vm-win2003-32-a · 71c3c0cf
      unknown authored
      A test case was waiting for a fixed number of seconds for a specific 
      state of the slave IO thread to take place.
      Fixed by waiting in a loop for that specific thread state instead 
      (or timeout).
      
      
      mysql-test/t/rpl_relayspace.test:
        Bug #25228: fixed test case
      71c3c0cf
    • unknown's avatar
      After merge fix · be04bf55
      unknown authored
      be04bf55
    • unknown's avatar
      Merge mysql.com:/home/bar/mysql-work/mysql-5.0.b28875 · 0d1972aa
      unknown authored
      into  mysql.com:/home/bar/mysql-work/mysql-5.0-rpl
      
      
      mysql-test/r/ctype_utf8.result:
        Auto merged
      mysql-test/t/ctype_utf8.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_timefunc.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      strings/conf_to_src.c:
        Auto merged
      strings/ctype-extra.c:
        Auto merged
      mysql-test/r/ctype_ucs.result:
        After merge fix
      mysql-test/t/ctype_ucs.test:
        After merge fix
      0d1972aa
    • unknown's avatar
      Bug#28875 Conversion between ASCII and LATIN1 charsets does not function · 53df09a9
      unknown authored
      (Regression, caused by a patch for the bug 22646).
      Problem: when result type of date_format() was changed from
      binary string to character string, mixing date_format()
      with a ascii column in CONCAT() stopped to work.
      Fix:
      - adding "repertoire" flag into DTCollation class,
      to mark items which can return only pure ASCII strings.
      - allow character set conversion from pure ASCII to other character sets.
      
      
      include/m_ctype.h:
        Defining new flags.
        Adding new function prototypes.
      mysql-test/r/ctype_ucs.result:
        Adding tests.
      mysql-test/r/ctype_utf8.result:
        Adding tests.
      mysql-test/r/func_time.result:
        Adding tests.
      mysql-test/t/ctype_ucs.test:
        Adding tests.
      mysql-test/t/ctype_utf8.test:
        Adding tests.
      mysql-test/t/func_time.test:
        Adding test.
      mysys/charset.c:
        Adding pure ASCII detection when loading a dynamic character set.
      sql/item.cc:
        - Moving detection of a Unicode superset into function.
        - Adding detection of a ASCII subset.
        - Adding creation of to-ASCII character set convertor when
          safe_charset_converter() failed and when the argument.
          repertoire is know to be pure ASCII.
      sql/item.h:
        - Adding "repertoire" member into DTCollation class.
        - Adding "repertoire" argument to constructors.
        - Adding new methods:
          set_repertoire_from_charset()
          set_repertoire_from_value()
      sql/item_func.cc:
        Adding "repertoire" argument.
      sql/item_strfunc.cc:
        Adding "repertoire" argument.
      sql/item_timefunc.cc:
        Initializing the result repertoire taking into account the "is_ascii"
        flag of the current locale.
      sql/sql_lex.cc:
        Detect 7bit strings, return in Lex->text_string_is_7bit.
      sql/sql_lex.h:
        Adding new member into LEX structure.
        Adding new member into Lex_input_stream
      sql/sql_string.cc:
        Allow simple copy from pure ASCII to a ASCII-based character set.
      sql/sql_yacc.yy:
        Depening on Lex->text_string_is_7bit and character set features,
        create Item_string with MY_REPERTOIRE_ASCII when it is possible.
      strings/conf_to_src.c:
        - Adding printing of the "MY_CS_PUREASCII" flag
        - Adding printing of copyright
      strings/ctype-extra.c:
        Recreating ctype-extra.c: ascii_general_ci and ascii_bin
        are now marked with MY_CS_PUREASCII flag.
      strings/ctype.c:
        Adding new functions.
      53df09a9