1. 29 Nov, 2006 1 commit
    • unknown's avatar
      Bug#20327: Marking of a wrong field leads to a wrong result on select with view, · fe499575
      unknown authored
      prepared statement and subquery.
      
      When a field of a view from an outer select is resolved the find_field_in_view
      function creates an Item_direct_view_ref object that references the 
      corresponding view underlying field. After that the view_ref is marked
      as a dependent one. While resolving view underlying field it also get
      marked as a dependent one due to current_select still points to the subselect.
      Marking the view underlying field is wrong and lead to attaching conditions
      to a wrong table and thus to the wrong result of the whole statement.
      
      Now mark_select_range_as_dependent() function isn't called for fields from a 
      view underlying table.
      
      
      sql/sql_base.cc:
        Bug#20327: Marking of a wrong field leads to a wrong result on select with view, prepared statement and subquery.
        
        Now mark_select_range_as_dependent() function isn't called for fields from a
        view underlying table.
      mysql-test/r/ps.result:
        Added a test case for bug#20327: Marking of a wrong field leads to a wrong result on select with view, prepared statement and subquery.
      mysql-test/t/ps.test:
        Added a test case for bug#20327: Marking of a wrong field leads to a wrong result on select with view,prepared statement and subquery.
      fe499575
  2. 09 Nov, 2006 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · a5975941
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B20191-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      a5975941
    • unknown's avatar
      Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs · 59b45b5b
      unknown authored
      When compiling GROUP BY Item_ref instances are dereferenced in 
      setup_copy_fields(), i.e. replaced with the corresponding Item_field 
      (if they point to one) or Item_copy_string for the other cases.
      Since the Item_ref (in the Item_field case) is no longer used the information
      about the aliases stored in it is lost.   
      Fixed by preserving the column, table and DB alias on dereferencing Item_ref
      
      
      mysql-test/r/metadata.result:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - test case
      mysql-test/t/metadata.test:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - test case
      sql/item.cc:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - use the table and db name to fill up the metadata for columns
      sql/sql_select.cc:
        Bug #20191: getTableName gives wrong or inconsistent result when using VIEWs
         - preserve the field, table and DB name on dereferencing an Item_ref
      59b45b5b
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 27aa4489
      unknown authored
      into  mysql.com:/home/hf/work/8663/my50-8663
      
      
      27aa4489
  3. 08 Nov, 2006 3 commits
  4. 07 Nov, 2006 9 commits
    • unknown's avatar
      BUG#24056: Crash in subquery: · 1d2e456f
      unknown authored
      Don't assume that condition that was pushed down into subquery has 
      produced exactly one KEY_FIELD element - it could produce several or
      none at all, handle all of those cases.
      
      
      1d2e456f
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 9c73436b
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B11032-5.0-opt
      
      
      9c73436b
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 878b4a3a
      unknown authored
      into  mysql.com:/home/hf/work/mysql-5.0.clean
      
      
      878b4a3a
    • unknown's avatar
      bug fixed · 955e0b13
      unknown authored
      
      sql/field.cc:
        datatime length is 19, not 12
      955e0b13
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B11032-4.1-opt · 5ad3ed8c
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B11032-5.0-opt
      
      
      mysql-test/r/subselect.result:
        merge fixes
      mysql-test/t/subselect.test:
        merge fixes
      sql/item_subselect.cc:
        merge fixes
      sql/item_subselect.h:
        merge fixes
      5ad3ed8c
    • unknown's avatar
      Bug #11032: getObject() returns a String for a sub-query of type datetime · 5af4fd25
      unknown authored
       - When returning metadata for scalar subqueries the actual type of the
         column was calculated based on the value type, which limits the actual
         type of a scalar subselect to the set of (currently) 3 basic types : 
         integer, double precision or string. This is the reason that columns
         of types other then the basic ones (e.g. date/time) are reported as
         being of the corresponding basic type.
         Fixed by storing/returning information for the column type in addition
         to the result type.
      
      
      mysql-test/r/subselect.result:
        Bug #11032: getObject() returns a String for a sub-query of type datetime
         - test case
      mysql-test/t/subselect.test:
        Bug #11032: getObject() returns a String for a sub-query of type datetime
         - test case
      sql/item_subselect.cc:
        Bug #11032: getObject() returns a String for a sub-query of type datetime
         - store and return the field type as well in addition to result type for 
           single row subqueries
      sql/item_subselect.h:
        Bug #11032: getObject() returns a String for a sub-query of type datetime
         - store and return the field type as well in addition to result type for 
           single row subqueries
      5af4fd25
    • unknown's avatar
      item.cc: · c0487fb9
      unknown authored
        merge fixes
      
      
      sql/item.cc:
        merge fixes
      c0487fb9
    • unknown's avatar
      Merge dl145s.mysql.com:/data/bk/team_tree_merge/mysql-4.1-opt · 4d37f9b5
      unknown authored
      into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
      
      
      sql/item.cc:
        Auto merged
      mysql-test/r/order_by.result:
        SCCS merged
      4d37f9b5
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · c13142f5
      unknown authored
      into  mysql.com:/home/hf/work/8663/my50-8663
      
      
      mysql-test/r/gis-rtree.result:
        Auto merged
      c13142f5
  5. 06 Nov, 2006 6 commits
  6. 03 Nov, 2006 1 commit
    • unknown's avatar
      Bug #22457: Column alias in ORDER BY works, but not if in an expression · c095f98f
      unknown authored
       The parser is allocating Item_field for references by name in ORDER BY
       expressions. Such expressions however may point not only to Item_field 
       in the select list (or to a table column) but also to an arbitrary Item. 
       This causes Item_field::fix_fields to throw an error about missing 
       column.
       The fix substitutes Item_field for the reference with an Item_ref when 
       not pointing to Item_field.
      
      
      mysql-test/r/order_by.result:
        Bug #22457: Column alias in ORDER BY works, but not if in an expression
         - test case
      mysql-test/t/order_by.test:
        Bug #22457: Column alias in ORDER BY works, but not if in an expression
         - test case
      sql/item.cc:
        Bug #22457: Column alias in ORDER BY works, but not if in an expression
         - transform the Item_field made by the parser into Item_ref if it 
           doesn't point to Item_field and it is in allowed context
      c095f98f
  7. 01 Nov, 2006 4 commits
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0-opt · 0e69c252
      unknown authored
      into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug21727
      
      
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/t/subselect.test:
        Auto merged
      sql/filesort.cc:
        Auto merged
      sql/item_subselect.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/records.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      0e69c252
    • unknown's avatar
      Merge mysql.com:/home/hf/work/19491/my50-19491 · bec1973e
      unknown authored
      into  mysql.com:/home/hf/work/mysql-5.0.19491
      
      
      sql/field.cc:
        Auto merged
      sql/field.h:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_timefunc.cc:
        Auto merged
      bec1973e
    • unknown's avatar
      test result fixed · d922d5b6
      unknown authored
      d922d5b6
    • unknown's avatar
      Fixed bug #21727. · 2a7cf59f
      unknown authored
      This is a performance issue for queries with subqueries evaluation
      of which requires filesort.
      Allocation of memory for the sort buffer at each evaluation of a
      subquery may take a significant amount of time if the buffer is rather big.
      With the fix we allocate the buffer at the first evaluation of the
      subquery and reuse it at each subsequent evaluation.
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #21727.
      mysql-test/t/subselect.test:
        Added a test case for bug #21727.
      sql/item_subselect.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added an implementation for Item_subselect::is_uncacheable()
        returning TRUE if the engine if the subselect is uncacheable.
      sql/mysql_priv.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/records.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_base.cc:
        Fixed bug #21727.
        Made sure that st_table::pos_in_table_list would be always initialized.
      sql/sql_select.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_show.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added a new boolean parameter to the filesort_free_buffers procedure.
        If the value of this parameter is TRUE the procedure frees the sort_keys
        buffpek buffers.
      sql/sql_table.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Cleanup.
      sql/table.cc:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added st_table_list::in_subselect() returning for a table the subselect that 
        contains the FROM list this table is taken from (if there is any).
      sql/table.h:
        Fixed bug #21727.
        This is a performance issue for queries with subqueries evaluation
        of which requires filesort.
        Added fields for sort_keys and buffpek buffers to the FILESORT_INFO structure.
      2a7cf59f
  8. 31 Oct, 2006 8 commits
    • unknown's avatar
      Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 361f0468
      unknown authored
      into  mysql.com:/home/psergey/mysql-5.0-bug8804-r4
      
      
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      361f0468
    • unknown's avatar
      BUG#8804: Incorrect results for NULL IN (SELECT ...): review fixes: · eb5abc14
      unknown authored
      - Better comments
      - Remove redundant and dead code.
      
      
      eb5abc14
    • unknown's avatar
      84526c67
    • unknown's avatar
      BUG#8804: wrong results for NULL IN (SELECT ...) · 48df3b96
      unknown authored
      Evaluate "NULL IN (SELECT ...)" in a special way: Disable pushed-down 
      conditions and their "consequences": 
       = Do full table scans instead of unique_[index_subquery] lookups.
       = Change appropriate "ref_or_null" accesses to full table scans in
         subquery's joins.
      Also cache value of NULL IN (SELECT ...) if the SELECT is not correlated 
      wrt any upper select.
      
      
      mysql-test/r/subselect.result:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Updated test results
      sql/item.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
         - Added comments
      sql/item_cmpfunc.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        Made Item_in_optimizer to:
        - cache the value of "NULL IN (uncorrelated select)"
        - Turn off pushed-down predicates when evaluating "NULL IN (SELECT ...)"
      sql/item_cmpfunc.h:
        BUG#8804: wrong results for NULL IN (SELECT ...): 
        - Made Item_in_optimizer cache the value of "NULL IN (uncorrelated select)"
        - Added comments
      sql/item_subselect.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - When needed, wrap the predicates we push into subquery into an 
          Item_func_trig_cond so we're able to turn them off when evaluating 
          NULL IN (SELECT ...).
        - Added code to evaluate NULL IN (SELECT ...) in a special way:
          = In [unique_]index_subquery, do full table scan to see if there 
            are any rows.
          = For other subqueries, change ref[_or_null] to ALL if the
            ref[_or_null] was created from pushed-down predicate.
      sql/item_subselect.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added Item_subselect::is_correlated
        - Added comments
      sql/records.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Make rr_sequential() non-static
      sql/sql_lex.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated and Item_subselect::is_correlated.
      sql/sql_lex.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added st_select_lex::is_correlated
      sql/sql_select.cc:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEY_FIELD::outer_ref to keep track of which ref accesses are 
          created from predicates that were pushed down into the subquery.
      sql/sql_select.h:
        BUG#8804: wrong results for NULL IN (SELECT ...):
        - Added KEYUSE::outer_ref
      mysql-test/r/subselect3.result:
        New BitKeeper file ``mysql-test/r/subselect3.result''
      mysql-test/t/subselect3.test:
        New BitKeeper file ``mysql-test/t/subselect3.test''
      48df3b96
    • unknown's avatar
      Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · dcaa684c
      unknown authored
      into  mysql.com:/usersnfs/abotchkov/mysql-5.0-opt1
      
      
      dcaa684c
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 37a823b7
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B21809-5.0-opt
      
      
      sql/item.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/item_func.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      37a823b7
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c805d584
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B23184-5.0-opt
      
      
      c805d584
    • unknown's avatar
      Bug #23184: SELECT causes server crash · 634d3991
      unknown authored
       Item::val_xxx() may be called by the server several times at execute time 
       for a single query. Calls to val_xxx() may be very expensive and sometimes
       (count(distinct), sum(distinct), avg(distinct)) not possible.
       To avoid that problem the results of calculation for these aggregate 
       functions are cached so that val_xxx() methods just return the calculated 
       value for the second and subsequent calls.
      
      
      mysql-test/r/func_group.result:
        Bug #23184: SELECT causes server crash
         - test case
      mysql-test/t/func_group.test:
        Bug #23184: SELECT causes server crash
         - test case
      sql/item_sum.cc:
        Bug #23184: SELECT causes server crash
         - caching of the aggregate function results so no need to recalculate at val_xxx()
      sql/item_sum.h:
        Bug #23184: SELECT causes server crash
         - caching of the aggregate function results so no need to recalculate at val_xxx()
      634d3991
  9. 30 Oct, 2006 1 commit
    • unknown's avatar
      Bug #8663 (cant use bigint as input to CAST) · f00e6bd7
      unknown authored
      decimal->ulong conversion fixed to assign max possible ULONG if decimal
      is bigger
      Item_func_unsigned now handles DECIMAL parameter separately as we can't
      rely on decimal::val_int result here.
      
      
      mysql-test/r/type_newdecimal.result:
        result fixed
      mysql-test/t/type_newdecimal.test:
        testcase
      sql/item_func.cc:
        DECIMAL_RESULT should be handled separately here as it's
        always signed.
      strings/decimal.c:
        here we assign max possible ULONG if the decimal value is bigger
      f00e6bd7
  10. 25 Oct, 2006 1 commit
    • unknown's avatar
      bug #19491 (CAST do DATETIME wrong result) · 01a0be19
      unknown authored
      
      mysql-test/r/type_datetime.result:
        result fixed
      mysql-test/r/type_newdecimal.result:
        result fixed
      mysql-test/t/type_datetime.test:
        testcase
      mysql-test/t/type_newdecimal.test:
        testcase
      sql/field.cc:
        Field_new_decimal::store_time implemented
      sql/field.h:
        Field_new_decimal::store_time added
      sql/item.cc:
        auxiliary methods implemented to operate with datatimes
      sql/item.h:
        auxiliary methods declared in Item to operate with datatimes
      sql/item_timefunc.cc:
        Item_date::save_in_field old implementation removed
      sql/item_timefunc.h:
        my_decimal and save_in_field methods implemented for datetime items
      sql/my_decimal.cc:
        date2my_decimal implemented
      sql/my_decimal.h:
        date2my_decimal declared
      01a0be19
  11. 24 Oct, 2006 3 commits