1. 09 Dec, 2007 1 commit
  2. 08 Dec, 2007 4 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 51c42b31
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug32815
      
      51c42b31
    • unknown's avatar
      Fix for BUG#32694 "NOT NULL table field in a subquery produces invalid results" · b5640b1f
      unknown authored
        
      The problem was that when convert_constant_item is called for subqueries,
      this happens when we already started executing the top-level query, and
      the field argument of convert_constant_item pointed to a valid table row.
      In turn convert_constant_item used the field buffer to compute the value
      of its item argument. This copied the item's value into the field,
      and made equalities with outer references always true.
        
      The fix saves/restores the original field's value when it belongs to an
      outer table.
      
      
      mysql-test/r/type_datetime.result:
        Test for BUG#32694.
      mysql-test/t/type_datetime.test:
        Test for BUG#32694.
      sql/item_cmpfunc.cc:
        - Changed convert_constant_item() so that it doesn't destroy the contents
          of its field argument when the field originates from table in an outer
          query.
      b5640b1f
    • unknown's avatar
      Fixed bug #27545. · 5d71f3d8
      unknown authored
      Both arguments of the function NAME_CONST must be constant expressions.
      This constraint is checked in the Item_name_const::fix_fields method. 
      Yet if the argument of the function was not a constant expression no
      error message was reported. As a result the client hanged waiting for a
      response.
      Now the function Item_name_const::fix_fields reports an error message
      when any of the additional context conditions imposed on the function
      NAME_CONST is not satisfied. 
      
      
      mysql-test/r/func_misc.result:
        Added a test case for bug #26545.
      mysql-test/t/func_misc.test:
        Added a test case for bug #26545.
      5d71f3d8
    • unknown's avatar
      Fixed bug #32815. · 62b65e98
      unknown authored
      The index (key_part_1, key_part-2) was erroneously considered as compatible
      with the required ordering in the function test_test_if_order_by_key when 
      a query with an ORDER BY clause contained a condition of the form
        key_part_1=const OR key_part_1 IS NULL 
      and the order list contained only key_part_2. This happened because the value
      of the const_key_parts field in the KEYUSE structure was not formed correctly
      for the keys that could be used for ref_or_null access. 
      This was fixed in the code of the update_ref_and_keys function.
      The problem could not manifest itself for MyISAM databases because the
      implementation of the keys_to_use_for_scanning() handler function always
      returns an empty bitmap for the MyISAM engine.
      
      
      mysql-test/r/innodb_mysql.result:
        Added a test case for bug #32815.
      mysql-test/t/innodb_mysql.test:
        Added a test case for bug #32815.
      sql/sql_select.cc:
        Fixed bug #32815.
        The index (key_part_1, key_part-2) was erroneously considered as compatible
        with the required ordering in the function test_test_if_order_by_key when 
        a query with an ORDER BY clause contained a condition of the form
          key_part_1=const OR key_part_1 IS NULL 
        and the order list contained only key_part_2. This happened because the value
        of the const_key_parts field in the KEYUSE structure was not formed correctly
        for the keys that could be used for ref_or_null access. 
        This was fixed in the code of the update_ref_and_keys function.
      62b65e98
  3. 06 Dec, 2007 2 commits
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · d9acf406
      unknown authored
      into  mysql.com:/misc/mysql/31177/50-31177
      
      
      mysql-test/r/ps_2myisam.result:
        Auto merged
      mysql-test/r/ps_3innodb.result:
        Auto merged
      mysql-test/r/ps_4heap.result:
        Auto merged
      mysql-test/r/ps_5merge.result:
        Auto merged
      mysql-test/r/ps_6bdb.result:
        Auto merged
      mysql-test/r/ps_7ndb.result:
        Auto merged
      mysql-test/t/variables.test:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      d9acf406
    • unknown's avatar
      Bug#31177: Server variables can't be set to their current values · 240f0f27
      unknown authored
      additional fixes for BDB and correct assignment of both signed
      and unsigned 64-bit data to unsigned system variables
      
      
      mysql-test/r/ps_2myisam.result:
        account for UNSIGNED_FLAG
      mysql-test/r/ps_3innodb.result:
        account for UNSIGNED_FLAG
      mysql-test/r/ps_4heap.result:
        account for UNSIGNED_FLAG
      mysql-test/r/ps_5merge.result:
        account for UNSIGNED_FLAG
      mysql-test/r/ps_6bdb.result:
        account for UNSIGNED_FLAG
      mysql-test/r/ps_7ndb.result:
        account for UNSIGNED_FLAG
      mysys/my_getopt.c:
        We have correct signed/unsigned information now, so we no longer
        need to err on the side of caution.
      sql/item_func.cc:
        Copy unsigned info over from entry so the item's data
        correctly describe it.
      sql/mysqld.cc:
        BDB log buffer size: default can't be less than minimum
      sql/set_var.cc:
        Handle signedness of in-values correctly when assigning to
        unsigned types, all the way up to 64-bit. Use handler from
        all three unsigned sysvar types.
      sql/set_var.h:
        thd_ulonglong: Override default check with one for unsigned types
      240f0f27
  4. 04 Dec, 2007 1 commit
  5. 03 Dec, 2007 2 commits
    • unknown's avatar
      Bug#30234: Unexpected behavior using DELETE with AS and USING · 13b1feca
      unknown authored
      Anti-patch. This patch undoes the previously pushed patch. It is 
      null-merged in versions 5.1 and above since there the original 
      patch is still desired.
      
      
      mysql-test/r/delete.result:
        Bug#30234: Anti-patch
      mysql-test/t/delete.test:
        Bug#30234: Anti-patch
      sql/sql_yacc.yy:
        Bug#30234: Anti-patch
      13b1feca
    • unknown's avatar
      Bug#31177: Server variables can't be set to their current values · bef2f26b
      unknown authored
      additional fixes for 64-bit
      
      
      mysql-test/t/variables.test:
        replace 32-bit and 64-bit values
      mysys/my_getopt.c:
        'mod' no longer used.
        on 64-bit, limit to (signed) (LONG)LONG_MAX to prevent badness
        in classes using longlong.
      bef2f26b
  6. 02 Dec, 2007 1 commit
    • unknown's avatar
      Merge tnurnberg@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 20e0b90a
      unknown authored
      into  mysql.com:/misc/mysql/31177/50-31177
      
      
      client/mysql.cc:
        Auto merged
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/r/type_bit.result:
        Auto merged
      mysql-test/t/variables.test:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      20e0b90a
  7. 01 Dec, 2007 5 commits
  8. 30 Nov, 2007 8 commits
    • unknown's avatar
      Merge mysql.com:/home/hf/work/mrg/my41-mrg · 31549fa8
      unknown authored
      into  mysql.com:/home/hf/work/mrg/my50-mrg
      
      
      include/mysql_com.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      31549fa8
    • unknown's avatar
      Merge mysql.com:/home/hf/work/32624/my50-32624 · 46be75f8
      unknown authored
      into  mysql.com:/home/hf/work/mrg/my50-mrg
      
      46be75f8
    • unknown's avatar
      Merge mysql.com:/home/hf/work/32374/my50-32374 · b7c0474b
      unknown authored
      into  mysql.com:/home/hf/work/mrg/my50-mrg
      
      b7c0474b
    • unknown's avatar
      Merge mysql.com:/home/hf/work/31900/my41-31900 · ffb2c59c
      unknown authored
      into  mysql.com:/home/hf/work/mrg/my41-mrg
      
      ffb2c59c
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug9481/my50-bug9481 · 6d447e6a
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      tests/mysql_client_test.c:
        Auto merged
      6d447e6a
    • unknown's avatar
      Bug #32374 crash with filesort when selecting from federated table and view. · 17b47894
      unknown authored
      filesort() uses file->estimate_rows_upper_bound() call to allocate
      internal buffers. If this function returns a value smaller than
      a number of row that will be returned later in find_all_keys(),
      that can cause server crash.
      Fixed by implementing ha_federated::estimate_rows_upper_bound() to
      return maximum possible number of rows.
      Present estimation for FEDERATED always returns 0 if the linked to the VIEW.
      
      
      mysql-test/r/federated.result:
        Bug #32374 crash with filesort when selecting from federated table and view.
        
        test result
      mysql-test/t/federated.test:
        Bug #32374 crash with filesort when selecting from federated table and view.
        
        test case
      sql/ha_federated.cc:
        Bug #32374 crash with filesort when selecting from federated table and view.
        
        ha_federated::estimate_rows_upper_bound() implemented
      sql/ha_federated.h:
        Bug #32374 crash with filesort when selecting from federated table and view.
        
        ha_federated::estimate_rows_upper_bound() interface
      17b47894
    • unknown's avatar
      Merge mysql.com:/misc/mysql/32707/41-32707 · fcec20ee
      unknown authored
      into  mysql.com:/misc/mysql/32707/50-32707
      
      
      sql/protocol.cc:
        manual merge
      fcec20ee
    • unknown's avatar
      Bug#31177: Server variables can't be set to their current values · a7ff6e90
      unknown authored
      Default values of variables were not subject to upper/lower bounds
      and step, while setting variables was. Bounds and step are also
      applied to defaults now; defaults are corrected quietly, values
      given by the user are corrected, and a correction-warning is thrown
      as needed. Lastly, very large values could wrap around, starting
      from 0 again. They are bounded at the maximum value for the
      respective data-type now if no lower maximum is specified in the
      variable's definition.
      
      
      client/mysql.cc:
        correct maxima in options array
      client/mysqltest.c:
        adjust minimum for "sleep" option so default value is no longer
        out of bounds.
      include/m_string.h:
        ullstr() - the unsigned brother of llstr()
      include/my_getopt.h:
        Flag if we bounded the value (that is, correct anything aside from
        making value a multiple of block-size)
      mysql-test/r/delayed.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/index_merge.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/innodb.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/innodb_mysql.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/key_cache.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/packet.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/ps.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/subselect.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/type_bit.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/type_bit_innodb.result:
        We throw a warning now when we adjust out of range parameters.
      mysql-test/r/variables.result:
        correct results: bounds and step apply to variables' default values, too
      mysql-test/t/variables.test:
        correct results: bounds and step apply to variables' default values, too
      mysys/my_getopt.c:
        - apply bounds/step to default values of variables (based on work by serg)
        - print complaints about incorrect values for variables (truncation etc.,
          by requestion of consulting)
        - if no lower maximum is specified in variable definition, bound unsigned
          values at their maximum to prevent wrap-around
        - some calls to error_reporter had a \n, some didn't. remove \n from calls,
          let reporter-function handle it, so the default reporter behaves like that
          in mysqld
      sql/mysql_priv.h:
        correct RANGE_ALLOC_BLOCK_SIZE (cleared with monty)
      sql/mysqld.cc:
        correct maxima to correct data-type.
        correct minima where higher than default.
        correct range-alloc-block-size.
        correct inno variables so GET_* corresponds to actual variable's type.
      sql/set_var.cc:
        When the new value for a variable is out of bounds, we'll send the
        client a warning (but not if the value was simply not a multiple of
        'blocksize').  sys_var_thd_ulong had this, sys_var_long_ptr_global
        didn't; broken out and streamlined to avoid duplication of code.
      strings/llstr.c:
        ullstr() - the unsigned brother of llstr()
      a7ff6e90
  9. 29 Nov, 2007 2 commits
    • unknown's avatar
      Bug #29085 A small double precision number becomes zero. · a8dada1e
      unknown authored
      Denormalized DOUBLE-s can't be properly handled by old MIPS processors.
      So we need to enable specific mode for them so IRIX will do use
      software round to handle such numbers. 
      
      
      sql/mysqld.cc:
        Bug #29085 A small double precision number becomes zero.
        
        reset_floating_point_exeption() renamed as set_proper_floating_point_mode()
        #ifdef __sgi code added to enable denormalized DOUBLE-s on IRIX
      a8dada1e
    • unknown's avatar
      Bug #32624 Error with multi queries in MySQL embedded server 5.1.22. · 084c93b5
      unknown authored
      server status wasn't properly sent to the client after the error
      by the embedded server. Wasn't noticed before as one usually stopped
      retrieving results after he gets an error.
      
      
      libmysqld/lib_sql.cc:
        Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
        
        server status transferred to the client after errors
      sql/protocol.cc:
        Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
        
        set server status before net_send_error_packet() call as this
        function sends it to the client in the embedded server
      tests/mysql_client_test.c:
        Bug #32624 Error with multi queries in MySQL embedded server 5.1.22.
        
        testcase added
      084c93b5
  10. 27 Nov, 2007 6 commits
    • unknown's avatar
      Bug#32707: misdimensioned buffer in protocol layer · cace6c96
      unknown authored
      Miscalculation in protocol-layer: size buffer correctly so
      even really long error messages cannot overflow our buffer.
      
      
      sql/protocol.cc:
        size buffer correctly so really long error messages cannot overflow it.
      cace6c96
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 77294a12
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B30355-5.0-opt
      
      77294a12
    • unknown's avatar
      Merge gleb.loc:/work/bk/5.0-opt-32403 · 39940f73
      unknown authored
      into  gleb.loc:/work/bk/5.0-opt
      
      
      sql/opt_range.cc:
        Auto merged
      39940f73
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 1478dc19
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B30355-5.0-opt
      
      1478dc19
    • unknown's avatar
      Bug #30355: Incorrect ordering of UDF results · 56973f1b
      unknown authored
      There's currently no way of knowing the determinicity of an UDF.
      And the optimizer and the sequence() UDFs were making wrong
      assumptions about what the is_const member means.
      Plus there was no implementation of update_system_tables()
      causing the optimizer to overwrite the information returned by
      the <udf>_init function.
      
      Fixed by equating the assumptions about the semantics of 
      is_const and providing a implementation of update_used_tables().
      Added a TODO item for the UDF API change needed to make a better 
      implementation.
      
      
      include/mysql_com.h:
        Bug #30355: comment added
      mysql-test/r/udf.result:
        Bug #30355: test case
      mysql-test/t/udf.test:
        Bug #30355: test case
      sql/item_func.cc:
        Bug #30355: keep const_item_cache and used_tables_cache in sync
      sql/item_func.h:
        Bug #30355: 
         - a better implementation of update_used_tables()
         - keep const_item_cache and used_tables_cache in sync
      sql/udf_example.c:
        Bug #30355: Wrong value for const_item fixed.
      56973f1b
    • unknown's avatar
      Fixed bug #32403: query causes a crash due to stack and · f95a0ca6
      unknown authored
                        memory corruptions.
      
      The right pointer field of the SEL_ARG structure was not
      initialized in the constructor and sometimes that led to
      server crashes.
      
      There is no testcase because the bug occurs only when
      uninitialized memory has particular values, which can't be
      re-created in the test suite.
      
      
      sql/opt_range.cc:
        Fixed bug #32403.
        
        The eq_tree function requires that SEL_ARG::left and
        SEL_ARG::right are equal to null pointer if SEL_ARG
        type is MAYBE_KEY, but SEL_ARG::right was not initialized
        and contained garbage.
      f95a0ca6
  11. 26 Nov, 2007 8 commits
    • unknown's avatar
      Merge polly.(none):/home/kaa/src/opt/bug28837/my50-bug29131 · de75ba2d
      unknown authored
      into  polly.(none):/home/kaa/src/opt/mysql-5.0-opt
      
      
      sql/ha_myisam.cc:
        Auto merged
      mysql-test/r/merge.result:
        Manual merge.
      mysql-test/r/myisam.result:
        Manual merge.
      mysql-test/t/merge.test:
        Manual merge.
      mysql-test/t/myisam.test:
        Manual merge.
      de75ba2d
    • unknown's avatar
      Fix for bug #28837: MyISAM storage engine error (134) doing delete with · 60a1e86c
      unknown authored
      self-join
      
      When doing DELETE with self-join on a MyISAM or MERGE table, it could
      happen that a record being retrieved in join_read_next_same() has
      already been deleted by previous iterations. That caused the engine's
      index_next_same() method to fail with HA_ERR_RECORD_DELETED error and
      the whole DELETE query to be aborted with an error.
      
      Fixed by suppressing the HA_ERR_RECORD_DELETED error in
      hy_myisam::index_next_same() and ha_myisammrg::index_next_same(). Since
      HA_ERR_RECORD_DELETED can only be returned by MyISAM, there is no point
      in filtering this error in the SQL layer.
      
      
      mysql-test/r/merge.result:
        Added a test case for bug #28837.
      mysql-test/r/myisam.result:
        Added a test case for bug #28837.
      mysql-test/t/merge.test:
        Added a test case for bug #28837.
      mysql-test/t/myisam.test:
        Added a test case for bug #28837.
      sql/ha_myisam.cc:
        Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
      sql/ha_myisammrg.cc:
        Skip HA_ERR_RECORD_DELETED silently when calling mi_rnext_same().
      60a1e86c
    • unknown's avatar
      5.0 version of the fix for bug #9481: mysql_insert_id() returns 0 after · fe9bccc3
      unknown authored
      insert ... select.
      
      The 5.0 manual page for mysql_insert_id() does not mention anything
      about INSERT ... SELECT, though its current behavior is incosistent
      with what the manual says about the plain INSERT.
      
      Fixed by changing the AUTO_INCREMENT and mysql_insert_id() handling
      logic in INSERT ... SELECT to be consistent with the INSERT behavior,
      the manual, and the changes in 5.1 introduced by WL3146:
      
      
      - mysql_insert_id() now returns the first automatically generated
      AUTO_INCREMENT value that was successfully inserted by INSERT ... SELECT
      
      -  if an INSERT ... SELECT statement is executed, and no automatically
      generated value is successfully inserted, mysql_insert_id() now returns
      the ID of the last inserted row.
      
      
      sql/sql_class.h:
        Replaced last_insert_id with autoinc_value_of_last_inserted_row to be
        consistent with 5.1 code.
      sql/sql_insert.cc:
        Revised the AUTO_INCREMENT and mysql_insert_id() handling logic in
        INSERT ... SELECT to be consistent with INSERT behavior, the manual, and
        changes in 5.1 introduced by WL3146:
        
        - mysql_insert_id() now returns the first automatically generated
        AUTO_INCREMENT value that was successfully inserted;
        
        -  if an INSERT ... SELECT statement is executed, and no automatically
        generated value is successfully inserted, mysql_insert_id() now returns
        the ID of the last inserted row.
      tests/mysql_client_test.c:
        Backported the test cases related to INSERT ... SELECT and
        mysql_insert_id() from WL3146 patch to 5.0.
      fe9bccc3
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 6c15f84b
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
      
      6c15f84b
    • unknown's avatar
      Bug #31900 Wrong confusing comment in mysql_com.h header file. · 31f78be2
      unknown authored
      comment fixed as we truly need const_item to be 1 to mark
      constant function
      
      
      include/mysql_com.h:
        Bug #31900 Wrong confusing comment in mysql_com.h header file.
        
        comment fixed
      31f78be2
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 3996a746
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32036-5.0-opt
      
      
      mysql-test/r/subselect.result:
        merge of fix for bug 32036 to 5.0-opt
      mysql-test/t/subselect.test:
        merge of fix for bug 32036 to 5.0-opt
      3996a746
    • unknown's avatar
      Bug #32036: EXISTS within a WHERE clause with a UNION · 3315addf
      unknown authored
        crashes MySQL 5.122
      There was a difference in how UNIONs are handled
      on top level and when in sub-query.
      Because the rules for sub-queries were syntactically
      allowing cases that are not currently supported by
      the server we had crashes (this bug) or wrong results
      (bug 32051).
      Fixed by making the syntax rules for UNIONs match the 
      ones at top level.
      
      These rules however do not support nesting UNIONs, e.g.
      (SELECT a FROM t1 UNION ALL SELECT b FROM t2) 
       UNION
      (SELECT c FROM t3 UNION ALL SELECT d FROM t4)
      Supports for statements with nested UNIONs will be
      added in a future version.
      
      
      mysql-test/r/subselect.result:
        Bug #32036: test case
      mysql-test/t/subselect.test:
        Bug #32036: test case
      sql/sql_yacc.yy:
        Bug #32036: Make the syntax rules for UNIONs in subqueries the same
        as for top level UNIONs.
      3315addf
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5ab07bf3
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B32268-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      5ab07bf3