1. 24 Jan, 2007 3 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.1-opt · 19ce8656
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/merge-5.1-opt
      
      
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      sql/item_func.cc:
        Auto merged
      19ce8656
    • unknown's avatar
      merge of 5.0-opt -> 5.1-opt · 6098f770
      unknown authored
      6098f770
    • unknown's avatar
      bug #22682 Test fails --without-geometry · f469aa00
      unknown authored
      geometry dependent parts moved to proper .test files
      
      
      mysql-test/r/gis.result:
        result fixed
      mysql-test/r/innodb.result:
        result fixed
      mysql-test/r/innodb_gis.result:
        result fixed
      mysql-test/r/view.result:
        result fixed
      mysql-test/t/gis.test:
        HAVE_GEOMETRY dependent part moved here from view.test
      mysql-test/t/innodb.test:
        HAVE_GEOMETRY dependent part moved to innodb_gis.test
      BitKeeper/etc/ignore:
        Added libmysqld/sql_servers.cc to the ignore list
      mysql-test/t/innodb_gis.test:
        HAVE_GEOMETRY dependent part moved here from innodb.test
      mysql-test/t/view.test:
        HAVE_GEOMETRY dependent part moved to gis.test
      f469aa00
  2. 23 Jan, 2007 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt · 72ae6eab
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B6172-5.1-opt
      
      
      72ae6eab
    • unknown's avatar
      Bug #6172: RAND(a) should only accept constant values as arguments · d74a7b9d
      unknown authored
       RAND() must accept scalar expressions regardless of their kind.
       That includes both constant expressions and expressions that 
       depend on column values.
       When the expression is constant the random seed can be initialized
       at compile time.
       However when the expression is not constant the random seed must be
       initialized at each invocation (while it still can be allocated at
       compile time).
       Implemented the above rules by extending Item_func_rand::val_real()
       to initialize the random seed at the correct place.
      
      
      mysql-test/r/func_math.result:
        Bug #6172: RAND(a) should only accept constant values as arguments
         - extened the test case
      mysql-test/t/func_math.test:
        Bug #6172: RAND(a) should only accept constant values as arguments
         - extened the test case
      sql/item_func.cc:
        Bug #6172: RAND(a) should only accept constant values as arguments
         - allow specifying non-const expressions as RAND() arguments
      sql/item_func.h:
        Bug #6172: RAND(a) should only accept constant values as arguments
         - allow specifying non-const expressions as RAND() arguments
      d74a7b9d
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/mysql-5.0-opt · 276f0d4c
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/merge-5.1-opt
      
      
      mysql-test/r/func_in.result:
        Auto merged
      mysql-test/r/range.result:
        Auto merged
      mysql-test/r/select.result:
        Auto merged
      mysql-test/r/sp-code.result:
        Auto merged
      mysql-test/r/trigger.result:
        Auto merged
      mysql-test/r/udf.result:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/func_in.test:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      mysql-test/t/range.test:
        Auto merged
      mysql-test/t/select.test:
        Auto merged
      mysql-test/t/trigger.test:
        Auto merged
      mysql-test/t/udf.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/opt_range.h:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_prepare.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/sql_union.cc:
        Auto merged
      sql/sql_update.cc:
        Auto merged
      mysql-test/r/func_str.result:
        merge 5.0-opt -> 5.1-opt
      mysql-test/r/group_by.result:
        merge 5.0-opt -> 5.1-opt
      mysql-test/r/insert.result:
        merge 5.0-opt -> 5.1-opt
      mysql-test/r/subselect.result:
        merge 5.0-opt -> 5.1-opt
      mysql-test/t/group_by.test:
        merge 5.0-opt -> 5.1-opt
      mysql-test/t/insert.test:
        merge 5.0-opt -> 5.1-opt
      mysql-test/t/subselect.test:
        merge 5.0-opt -> 5.1-opt
      mysql-test/t/view.test:
        merge 5.0-opt -> 5.1-opt
      sql/item_cmpfunc.h:
        merge 5.0-opt -> 5.1-opt
      sql/item_strfunc.h:
        merge 5.0-opt -> 5.1-opt
      276f0d4c
  3. 22 Jan, 2007 5 commits
    • unknown's avatar
      sql_select.cc: · 6447a7b6
      unknown authored
        Code cleanup after fix for bug#23417.
      
      
      sql/sql_select.cc:
        Code cleanup after fix for bug#23417.
      6447a7b6
    • unknown's avatar
      sql_prepare.cc: · 9e3b03f4
      unknown authored
        Post fix for bug#25123.
      
      
      sql/sql_prepare.cc:
        Post fix for bug#25123.
      9e3b03f4
    • unknown's avatar
      Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table. · df0a0896
      unknown authored
      When inserting into a join-based view the update fields from the ON DUPLICATE
      KEY UPDATE wasn't checked to be from the table being inserted into and were
      silently ignored.
      
      The new check_view_single_update() function is added to check that
      insert/update fields are being from the same single table of the view.
      
      
      sql/sql_insert.cc:
        Bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table.
        The new check_view_single_update() function is added to check that
        insert/update fields are being from the same single table of the view.
      mysql-test/r/insert.result:
        Added a test case for bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table.
      mysql-test/t/insert.test:
        Added a test case for bug#25123: ON DUPLICATE KEY clause allows fields not from the insert table.
      df0a0896
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt · 4b2c3ac4
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B16590-5.1-opt
      
      
      mysql-test/r/order_by.result:
        Auto merged
      mysql-test/t/order_by.test:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      4b2c3ac4
    • unknown's avatar
      BUG#16590: Optimized does not do right "const" table pre-read · 2c6e678d
      unknown authored
       st_table::const_key_parts member is used in determining if
       certain key has a prefix that is compared to constant(s) in
       the query predicates.
       If there's such prefix the index can be used to get the data
       from the remaining suffix columns in sorted order.
       However if a field is compared to another field from a "const"
       table the const_key_parts is not amended.
       This makes the optimizer unable to detect that the key can be 
       used for sorting and adds an extra filesort.
       Fixed by updating const_key_parts after reading in the "const"
       table.
      
      
      mysql-test/r/order_by.result:
        BUG#16590: Optimized does not do right "const" table pre-read
         - test case
      mysql-test/t/order_by.test:
        BUG#16590: Optimized does not do right "const" table pre-read
         - test case
      sql/sql_select.cc:
        BUG#16590: Optimized does not do right "const" table pre-read
         - fill up the const_key_parts structure
      2c6e678d
  4. 19 Jan, 2007 6 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · c6d4b94d
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580
      
      
      c6d4b94d
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 3e49c84c
      unknown authored
      into  moonbone.local:/work/25172-bug-5.0-opt-mysql
      
      
      3e49c84c
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 9325931a
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580
      
      
      mysql-test/r/subselect.result:
        Auto merged
      9325931a
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 341a31b0
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25580
      
      
      341a31b0
    • unknown's avatar
      Bug#25172: Not checked buffer size leads to a server crash. · 5effa05d
      unknown authored
      After fix for bug#21798 JOIN stores the pointer to the buffer for sorting
      fields. It is used while sorting for grouping and for ordering. If ORDER BY
      clause has more elements then the GROUP BY clause then a memory overrun occurs.
      
      Now the length of the ORDER BY list is always passed to the 
      make_unireg_sortorder() function and it allocates buffer big enough to be
      used for bigger list.
      
      
      sql/sql_delete.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      sql/sql_select.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Now the length of the ORDER BY list is always passed to the 
        make_unireg_sortorder() function and it allocates buffer big enough to be
        used for bigger list.
      sql/sql_table.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      sql/sql_update.cc:
        Bug#25172: Not checked buffer size leads to a server crash.
        Length parameter is initialized to 0 for the make_unireg_sortorder() function.
      mysql-test/r/select.result:
        Added a test case for bug#25172: Not checked buffer size leads to a server crash.
      mysql-test/t/select.test:
        Added a test case for bug#25172: Not checked buffer size leads to a server crash.
      5effa05d
    • unknown's avatar
      Fixed bug #25219: crash for a query that contains an EXIST subquery with · edf72bf6
      unknown authored
      UNION over correlated and uncorrelated SELECTS.
      In such subqueries each uncorrelated SELECT should be considered as
      uncacheable. Otherwise join_free is called for it and in many cases
      it causes some problems.
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #25219.
      mysql-test/t/subselect.test:
        Added a test case for bug #25219.
      sql/mysql_priv.h:
        Fixed bug #25219: crash for a query that contains an EXIST subquery with
        UNION over correlated and uncorrelated SELECTS.
        In such subqueries each uncorrelated SELECT should be considered as
        uncacheable. Otherwise join_free is called for it and in many cases
        it causes some problems. 
        Added a new flag UNCACHEABLE_UNITED for such SELECTs.
      sql/sql_lex.cc:
        Fixed bug #25219: crash for a query that contains an EXIST subquery with
        UNION over correlated and uncorrelated SELECTS.
        In such subqueries each uncorrelated SELECT should be considered as
        uncacheable. Otherwise join_free is called for it and in many cases
        it causes some problems.
        Added a new flag UNCACHEABLE_UNITED for such SELECTs.
      edf72bf6
  5. 18 Jan, 2007 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 9c897762
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B25382-5.0-opt
      
      
      9c897762
    • unknown's avatar
      Bug #25382: Passing NULL to an UDF called from stored procedures · 4ced38b8
      unknown authored
       crashes server
       Check for null value is reliable only after calling some of the 
       val_xxx() methods. If the val_xxx() method is not called
       the null_value flag will be set only for certain types of NULL
       values (like SQL constant NULLs for example).
       This caused a crash while trying to dereference a NULL pointer
       that is returned by val_str() for NULL values.
       Fixed by swapping the order of val_xxx() and null_value check.
      
      
      mysql-test/r/udf.result:
        Bug #25382: Passing NULL to an UDF called from stored procedures 
         crashes server
         - test case
      mysql-test/t/udf.test:
        Bug #25382: Passing NULL to an UDF called from stored procedures 
         crashes server
         - test case
      sql/item_func.cc:
        Bug #25382: Passing NULL to an UDF called from stored procedures 
         crashes server
         - reliably check null_value
      4ced38b8
    • unknown's avatar
      Fixed bug #25580: incorrect stored representations of views in cases · af321686
      unknown authored
      when they contain the '!' operator.
      Added an implementation for the method Item_func_not::print. 
      The method encloses any NOT expression into extra parentheses to avoid
      incorrect stored representations of views that use the '!' operators.
      Without this change when a view was created that contained
      the expression !0*5  its stored representation contained not this
      expression but rather the expression not(0)*5 . 
      The operator '!' is of a higher precedence than '*', while NOT is 
      of a lower precedence than '*'. That's why the expression !0*5 
      is interpreted as not(0)*5, while the expression not(0)*5 is interpreted
      as not((0)*5) unless sql_mode is set to HIGH_NOT_PRECEDENCE.
      Now we translate !0*5 into (not(0))*5. 
      
      
      mysql-test/r/sp-code.result:
        Adjusted results after the fix of bug 25580.
      mysql-test/r/subselect.result:
        Adjusted results after the fix of bug 25580.
      mysql-test/r/view.result:
        Added a test case for bug #25580.
      mysql-test/t/view.test:
        Added a test case for bug #25580.
      sql/item_cmpfunc.cc:
        Fixed bug #25580: incorrect stored representations of views in cases
        when they contain the '!' operator.
        Added an implementation for the method Item_func_not::print. 
        The method encloses the NOT expression into extra parenthesis to avoid
        incorrect stored representations of views that use the '!' operators.
      sql/item_cmpfunc.h:
        Fixed bug #25580: incorrect stored representations of views in cases
        when they contain the '!' operator.
        Added an implementation for the method Item_func_not::print. 
        The method encloses the NOT expression into extra parenthesis to avoid
        incorrect stored representations of views that use the '!' operators.
      af321686
  6. 15 Jan, 2007 8 commits
    • unknown's avatar
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 2c88731e
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      2c88731e
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 8c4acf37
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      8c4acf37
    • unknown's avatar
      sql_select.cc: · c797abae
      unknown authored
        Fix for crashes on 64bit platforms after fixing bug#23417.
      
      
      sql/sql_select.cc:
        Fix for crashes on 64bit platforms after fixing bug#23417.
      c797abae
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-4.1-opt · 8db06e69
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/r/range.result:
        Auto merged
      mysql-test/t/range.test:
        Auto merged
      sql/opt_range.h:
        Manual merge.
      8db06e69
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c0fd0546
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B20420-5.0-opt
      
      
      sql/item_cmpfunc.h:
        Auto merged
      c0fd0546
    • unknown's avatar
      BUG#20420: optimizer reports wrong keys on left join with IN · a2ae17b1
      unknown authored
       The optimizer needs to evaluate whether predicates are better
       evaluated using an index. IN is one such predicate.
       To qualify an IN predicate must involve a field of the index
       on the left and constant arguments on the right.
       However whether an expression is a constant can be determined only
       by knowing the preceding tables in the join order. 
       Assuming that only IN predicates with expressions on the right that
       are constant for the whole query qualify limits the scope of 
       possible optimizations of the IN predicate (more specifically it
       doesn't allow the "Range checked for each record" optimization for
       such an IN predicate.
       Fixed by not pre-determining the optimizability of the IN predicate
       in the case when all right IN operands are not SQL constant expressions
      
      
      mysql-test/r/func_in.result:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - test case
      mysql-test/t/func_in.test:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - test case
      sql/item_cmpfunc.h:
        BUG#20420: optimizer reports wrong keys on left join with IN
         - cannot decide on the optimizability of a function without
           knowing the tables before it in the join order
      a2ae17b1
    • unknown's avatar
      Bug#21713 incorrect value for the REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME column · 9af4bbc7
      unknown authored
      added new field 'REFERENCED_TABLE_NAME' to 'referential_constraints' table
      field 'UNIQUE_CONSTRAINT_NAME' contains the name of the referenced index
      
      
      mysql-test/r/information_schema_inno.result:
        result fix
      mysql-test/t/information_schema_inno.test:
        test fix
      sql/sql_show.cc:
        added new field 'REFERENCED_TABLE_NAME' to 'referential_constraints' table
        field 'UNIQUE_CONSTRAINT_NAME' contains the name of the referenced index
      sql/table.h:
        added 'referenced_key_name' member to 'st_foreign_key_info' struct
      storage/innobase/handler/ha_innodb.cc:
        added the filling of referenced key name
      9af4bbc7
  7. 14 Jan, 2007 1 commit
  8. 13 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #24776: an assertion abort in handler::ha_index_init · b9dc0243
      unknown authored
      for queries using 'range checked for each record'.
      The problem was fixed in 5.0 by the patch for bug 12291.
      This patch down-ported the corresponding code from 5.0 into 
      QUICK_SELECT::init() and added a new test case. 
      
      
      mysql-test/r/range.result:
        Added a test case for bug #24776.
      mysql-test/t/range.test:
        Added a test case for bug #24776.
      sql/opt_range.h:
        Fixed bug #24776: an assertion abort in handler::ha_index_init
        for queries using 'range checked for each record'.
        The problem was fixed in 5.0 by the patch for bug 12291.
        The patch for 4.1 down-ported the corresponding code from 5.0 into 
        QUICK_SELECT::init().
      b9dc0243
  9. 12 Jan, 2007 10 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · fd4db68c
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      fd4db68c
    • unknown's avatar
      Fixed bug #25398: crash in a trigger when using trigger fields · 35e36393
      unknown authored
      in a select list.
      The objects of the Item_trigger_field class inherited the implementations
      of the methods copy_or_same, get_tmp_table_item and get_tmp_table_field
      from the class Item_field while they rather should have used the default
      implementations defined for the base class Item.
      It could cause catastrophic problems for triggers that used SELECTs
      with select list containing trigger fields such as NEW.<table column>
      under DISTINCT.
      
      
      mysql-test/r/trigger.result:
        Added a test case for bug #25398.
      mysql-test/t/trigger.test:
        Added a test case for bug #25398.
      35e36393
    • unknown's avatar
      func_str.result: · 6746efb1
      unknown authored
        After merge fix
      
      
      mysql-test/r/func_str.result:
        After merge fix
      6746efb1
    • unknown's avatar
      Merge moonbone.local:/work/latest-4.1-opt-mysql · cb96e8bc
      unknown authored
      into  moonbone.local:/work/latest-5.0-opt-mysql
      
      
      mysql-test/t/func_str.test:
        Auto merged
      sql/item_strfunc.cc:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      mysql-test/r/delete.result:
        Manual merge
      mysql-test/r/func_str.result:
        Manual merge
      mysql-test/t/delete.test:
        Manual merge
      cb96e8bc
    • unknown's avatar
      bug #24186 (nested query across partitions returns fewer records) · 94046b73
      unknown authored
      Subselect's engine checks table->status field to determine if the
      record was properly found when we use keyread upon the table.
      Partition engine checks all the partitions for given key
      before return. So if matching record was found in the first
      partition and no matching records were found in the second, 
      we have table->status == NOT_FOUND after the function, what
      makes subselects to skip matching records.
      The patch adds table->status= 0 if we actually found something.
      
      
      mysql-test/r/partition.result:
        result fixed
      mysql-test/t/partition.test:
        testcase
      sql/ha_partition.cc:
        table->status set to 0 if we found something in previous partitions
      94046b73
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0 · 2cc1c479
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      sql/mysqld.cc:
        Auto merged
      2cc1c479
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt · 5a809546
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      mysql-test/r/order_by.result:
        Auto merged
      mysql-test/t/order_by.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      mysql-test/r/join.result:
        manual merge
      mysql-test/t/join.test:
        manual merge
      5a809546
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.1 · cf76bb51
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
      
      
      sql/mysqld.cc:
        Auto merged
      storage/innobase/handler/ha_innodb.cc:
        Auto merged
      cf76bb51
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/4.1 · 7a9892cc
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0
      
      
      7a9892cc
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt · 36e7e727
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0
      
      
      sql/mysqld.cc:
        Auto merged
      36e7e727