An error occurred fetching the project authors.
  1. 14 Oct, 2009 1 commit
    • Jorgen Loland's avatar
      Bug#47280 - strange results from count(*) with order by multiple · 6da93b22
      Jorgen Loland authored
                  columns without where/group
                           
      Simple SELECT with implicit grouping used to return many rows if
      the query was ordered by the aggregated column in the SELECT
      list. This was incorrect because queries with implicit grouping
      should only return a single record.
                                    
      The problem was that when JOIN:exec() decided if execution needed
      to handle grouping, it was assumed that sum_func_count==0 meant
      that there were no aggregate functions in the query. This
      assumption was not correct in JOIN::exec() because the aggregate
      functions might have been optimized away during JOIN::optimize().
                        
      The reason why queries without ordering behaved correctly was
      that sum_func_count is only recalculated if the optimizer chooses
      to use temporary tables (which it does in the ordered case).
      Hence, non-ordered queries were correctly treated as grouped.
                        
      The fix for this bug was to remove the assumption that
      sum_func_count==0 means that there is no need for grouping. This
      was done by introducing variable "bool implicit_grouping" in the
      JOIN object.
      
      mysql-test/r/func_group.result:
        Add test for BUG#47280
      mysql-test/t/func_group.test:
        Add test for BUG#47280
      sql/opt_sum.cc:
        Improve comment for opt_sum_query()
      sql/sql_class.h:
        Add comment for variables in TMP_TABLE_PARAM
      sql/sql_select.cc:
        Introduce and use variable implicit_grouping instead of (!group_list && sum_func_count) in places that need to test if grouping is required. Also added comments for: optimization of aggregate fields for implicitly grouped queries  (JOIN::optimize) and choice of end_select method (JOIN::execute)
      sql/sql_select.h:
        Add variable implicit_grouping, which will be TRUE for queries that contain aggregate functions but no GROUP BY clause. Also added comment to sort_and_group variable.
      6da93b22
  2. 01 Apr, 2009 1 commit
    • Gleb Shchepa's avatar
      Backport bug #37348 fix 5.1 --> 5.0. · 02884a4d
      Gleb Shchepa authored
      Original commentary:
      
      Bug #37348: Crash in or immediately after JOIN::make_sum_func_list
                  
      The optimizer pulls up aggregate functions which should be aggregated in
      an outer select. At some point it may substitute such a function for a field
      in the temporary table. The setup_copy_fields function doesn't take this
      into account and may overrun the copy_field buffer.
                  
      Fixed by filtering out the fields referenced through the specialized
      reference for aggregates (Item_aggregate_ref).
      Added an assertion to make sure bugs that cause similar discrepancy 
      don't go undetected.
      
      
      mysql-test/r/func_group.result:
        Backport bug #37348 fix 5.1 --> 5.0.
      mysql-test/t/func_group.test:
        Backport bug #37348 fix 5.1 --> 5.0.
      sql/item.cc:
        Backport bug #37348 fix 5.1 --> 5.0.
      sql/item.h:
        Backport bug #37348 fix 5.1 --> 5.0.
      sql/sql_select.cc:
        Backport bug #37348 fix 5.1 --> 5.0.
      02884a4d
  3. 28 Jan, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug #21205: Different number of digits for float/double/real in --ps-protocol · a0194637
      Alexey Kopytov authored
      Various parts of code used different 'precision' arguments for sprintf("%g") when converting
      floating point numbers to a string. This led to differences in results in some cases 
      depending on whether the text-based or prepared statements protocol is used for a query.
      
      Fixed by changing arguments to sprintf("%g") to always be 15 (DBL_DIG) so that results are
      consistent regardless of the protocol.
      
      This patch will be null-merged to 6.0 as the problem does not exists there (fixed by the
      patch for WL#2934).
      
      client/sql_string.cc:
        Use 15 (DBL_DIG) as a precision argument for sprintf(), as Field_double::val_str() does.
      libmysql/libmysql.c:
        Use 15 (DBL_DIG) as a precision argument for sprintf(), as Field_double::val_str() does.
      mysql-test/r/archive_gis.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/func_group.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/func_math.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/func_str.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/gis.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/innodb_gis.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/select.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/sp.result:
        Fixed test results to take additional precision into account.
      mysql-test/r/type_float.result:
        Fixed test results to take additional precision into account.
      mysql-test/t/type_float.test:
        Fixed test results to take additional precision into account.
      sql/sql_string.cc:
        Use 15 (DBL_DIG) as a precision argument for sprintf(), as Field_double::val_str() does.
      a0194637
  4. 24 Nov, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug #39656: Behaviour different for agg functions with & without where - · d795963c
      Georgi Kodinov authored
      ONLY_FULL_GROUP_BY
      
      The check for non-aggregated columns in queries with aggregate function, but without
      GROUP BY was treating all the parts of the query as if they are in the SELECT list.
      Fixed by ignoring the non-aggregated fields in the WHERE clause.
      
      mysql-test/r/func_group.result:
        Bug #39656: test case
      mysql-test/t/func_group.test:
        Bug #39656: test case
      sql/sql_select.cc:
        Bug #39656: ignore the new non-aggregated column refs in a WHERE
        by saving the state so far and then adding only the new values of the other
        parts of the bitmask.
      d795963c
  5. 02 Oct, 2008 1 commit
    • Georgi Kodinov's avatar
      Bug #37348: Crash in or immediately after JOIN::make_sum_func_list · a18639b6
      Georgi Kodinov authored
            
      The optimizer pulls up aggregate functions which should be aggregated in
      an outer select. At some point it may substitute such a function for a field
      in the temporary table. The setup_copy_fields function doesn't take this
      into account and may overrun the copy_field buffer.
            
      Fixed by filtering out the fields referenced through the specialized
      reference for aggregates (Item_aggregate_ref).
      Added an assertion to make sure bugs that cause similar discrepancy 
      don't go undetected.
      
      mysql-test/r/func_group.result:
        Bug #37348: test case
      mysql-test/t/func_group.test:
        Bug #37348: test case
      sql/item.cc:
        Bug #37348: Added a way to distinguish Item_aggregate_ref from the other types of refs
      sql/item.h:
        Bug #37348: Added a way to distinguish Item_aggregate_ref from the other types of refs
      sql/sql_select.cc:
        Bug #37348: 
         - Don't consider copying field references
            seen through Item_aggregate_ref
         - check for discrepancies between the number of expected 
           fields that need copying and the actual fields copied.
      a18639b6
  6. 06 Mar, 2008 1 commit
    • unknown's avatar
      Fix for bug #34512: CAST( AVG( double ) AS DECIMAL ) · 8270d987
      unknown authored
                          returns wrong results
      
      Casting AVG() to DECIMAL led to incorrect results when the arguments
      had a non-DECIMAL type, because in this case
      Item_sum_avg::val_decimal() performed the division by the number of
      arguments twice.
      
      Fixed by changing Item_sum_avg::val_decimal() to not rely on
      Item_sum_sum::val_decimal(), i.e. calculate sum and divide using
      DECIMAL arithmetics for DECIMAL arguments, and utilize val_real() with
      subsequent conversion to DECIMAL otherwise.
      
      
      mysql-test/r/func_group.result:
        Added a test case for bug #34512.
      mysql-test/t/func_group.test:
        Added a test case for bug #34512.
      sql/item_sum.cc:
        Do not use Item_sum_sum::val_decimal() in Item_sum_avg::val_decimal()
        because the first one, depending on the arguments type, may return
        either the sum of the arguments, or the average calculated by the
        virtual val_real() method of Item_sum_avg. Instead, do our own
        calculation based on the arguments type.
      8270d987
  7. 09 Jan, 2008 2 commits
    • unknown's avatar
      merge of the fix for bug 33133 to 5.1-opt · d12cc6e0
      unknown authored
      d12cc6e0
    • unknown's avatar
      Bug #33133: Views are not transparent · 06b68454
      unknown authored
      When resolving references we need to take into consideration
      the view "fields" and allow qualified access to them.
      Fixed by extending the reference resolution to process view
      fields correctly.
      
      
      mysql-test/r/func_group.result:
        Bug #33133: test case
      mysql-test/t/func_group.test:
        Bug #33133: test case
      sql/sql_base.cc:
        Bug #33133: allow qualified alias refs to view fields
      06b68454
  8. 01 Nov, 2007 1 commit
    • unknown's avatar
      Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2 · 660eb5bb
      unknown authored
      The HAVING clause is subject to the same rules as the SELECT list
      about using aggregated and non-aggregated columns.
      But this was not enforced when processing implicit grouping from
      using aggregate functions.
      Fixed by performing the same checks for HAVING as for SELECT.
      
      
      mysql-test/r/func_group.result:
        Bug #31794: test case
      mysql-test/t/func_group.test:
        Bug #31794: test case
      sql/sql_select.cc:
        Bug #31794: Check HAVING in addition to SELECT list
      660eb5bb
  9. 24 Oct, 2007 1 commit
    • unknown's avatar
      Bug #30715: Assertion failed: item_field->field->real_maybe_null(), · e2433cbc
      unknown authored
        file .\opt_sum.cc, line
      The optimizer pre-calculates the MIN/MAX values for queries like
       SELECT MIN(kp_k) WHERE kp_1 = const AND ... AND kp_k-1 = const
      when there is a key over kp_1...kp_k
      In doing so it was not checking correctly nullability and 
      there was a superfluous assert(). 
      Fixed by making sure that the field can be null before checking and
      taking out the wrong assert().
      .
      Introduced a correct check for nullability 
      The MIN(field) can return NULL when all the row values in the group
      are NULL-able or if there were no rows.
      Fixed the assertion to reflect the case when there are no rows.
      
      
      mysql-test/r/func_group.result:
        Bug #30715: test case
      mysql-test/t/func_group.test:
        Bug #30715: test case
      sql/opt_sum.cc:
        Bug #30715: correct nullability check for MIN/MAX pre-calculation over index.
      e2433cbc
  10. 08 Oct, 2007 1 commit
    • unknown's avatar
      Bug #31156: mysqld: item_sum.cc:918: virtual bool · 6736d404
      unknown authored
        Item_sum_distinct::setup(THD*): Assertion
      
      There was an assertion to detect a bug in ROLLUP
      implementation. However the assertion is not true
      when used in a subquery context with non-cacheable
      statements.
      Fixed by turning the assertion to accepted case
      (just like it's done for the other aggregate functions). 
      
      
      mysql-test/r/func_group.result:
        Bug #31156: test case
      mysql-test/t/func_group.test:
        Bug #31156: test case
      sql/item_sum.cc:
        Bug #31156: make it OK to call setup() several times:
         done for (e.g.) scalar subquery
      6736d404
  11. 29 May, 2007 1 commit
    • unknown's avatar
      Bug #27531: 5.1 part of the fix · aff34a8c
      unknown authored
      - Renamed "Using join cache" to "Using join buffer".
      - "Using join buffer" is now printed on the last
        table that "reads" from the join buffer cache.
      
      
      mysql-test/r/archive_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/compress.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ctype_utf8.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/derived.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/distinct.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/func_group.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/func_group_innodb.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/greedy_optimizer.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/group_by.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/group_min_max.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/index_merge_myisam.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/information_schema.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/innodb_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/innodb_mysql.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/join.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/join_nested.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/key_diff.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/myisam.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ndb_condition_pushdown.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ndb_gis.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/range.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/row.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/select.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ssl.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/ssl_compress.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/subselect.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/subselect3.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/union.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      mysql-test/r/view.result:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      sql/sql_select.cc:
        Bug #27531: renamed "Using join cache" to "Using join buffer"
        and moved to the last table in the batch.
      aff34a8c
  12. 15 May, 2007 1 commit
    • unknown's avatar
      Bug#27573: MIN() on an indexed column which is always NULL sets _other_ results · aaf6acae
      unknown authored
      to NULL
      
      For queries of the form SELECT MIN(key_part_k) FROM t1 
      WHERE key_part_1 = const and ... and key_part_k-1 = const,
      the opt_sum_query optimization tries to
      use an index to substitute MIN/MAX functions with their values according
      to the following rules:
      1) Insert the minimum non-null values where the WHERE clause still matches, or
      3) A row of nulls
      
      However, the correct semantics requires that there is a third case 2)
      such that a NULL value is substituted if there are only NULL values for 
      key_part_k.
      
      The patch modifies opt_sum_query() to handle this missing case.
      
      
      mysql-test/r/func_group.result:
        Bug #27573: Correct result
      mysql-test/t/func_group.test:
        Bug #27573: test case
      sql/opt_sum.cc:
        Bug #27573:
        Added code that will try to read the
        first non-null value for a given complete-field prefix, second
        choice is to read the null, and lastly set the error code if no row
        is found.
      aaf6acae
  13. 04 May, 2007 1 commit
    • unknown's avatar
      bug #27531: 5.1 part of the fix: · 0c835da8
      unknown authored
       - added join cache indication in EXPLAIN (Extra column).
       - prefer filesort over full scan over 
         index for ORDER BY (because it's faster).
       - when switching from REF to RANGE because
         RANGE uses longer key turn off sort on
         the head table only as the resulting 
         RANGE access is a candidate for join cache
         and we don't want to disable it by sorting
         on the first table only. 
      
      
      mysql-test/r/archive_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/compress.result:
        bug #27531:
         - join cache in EXPLAIN. 
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ctype_utf8.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/derived.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/distinct.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/func_group.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/func_group_innodb.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/greedy_optimizer.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/group_by.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/group_min_max.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/index_merge_myisam.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/information_schema.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/innodb_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/innodb_mysql.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/join.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/join_nested.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/key_diff.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/myisam.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/ndb_condition_pushdown.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/ndb_gis.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/range.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/row.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/select.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ssl.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/ssl_compress.result:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over index for ORDER BY.
      mysql-test/r/subselect.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/subselect3.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/union.result:
        bug #27531: join cache in EXPLAIN
      mysql-test/r/view.result:
        bug #27531: join cache in EXPLAIN
      sql/sql_select.cc:
        bug #27531:
         - join cache in EXPLAIN.
         - prefer filesort over full scan over
           index for ORDER BY.
         - disable sorting on the first table only
           when switching from REF to RANGE.
      0c835da8
  14. 27 Feb, 2007 1 commit
  15. 26 Dec, 2006 1 commit
    • unknown's avatar
      In func_group.test, round the results of std() for some calls, because... · 1fdda689
      unknown authored
      In func_group.test, round the results of std() for some calls, because Windows' sqrt() function appears to return fewer "significant" digits than the Unix implementations.
      This is for bug #22555.
      
      
      mysql-test/r/func_group.result:
        Round the results of std() for some calls, because Windows' sqrt() function appears to return fewer "significant" digits than the Unix implementations.
        This is for bug #22555.
      mysql-test/t/func_group.test:
        Round the results of std() for some calls, because Windows' sqrt() function appears to return fewer "significant" digits than the Unix implementations.
        This is for bug #22555.
      1fdda689
  16. 22 Dec, 2006 2 commits
    • unknown's avatar
      Bug#22555: STDDEV yields positive result for groups with only one row · 82bd9b6b
      unknown authored
      When only one row was present, the subtraction of nearly the same number 
      resulted in catastropic cancellation, introducing an error in the 
      VARIANCE calculation near 1e-15.  That was sqrt()ed to get STDDEV, the 
      error was escallated to near 1e-8.  
      
      The simple fix of testing for a row count of 1 and forcing that to yield 
      0.0 is insufficient, as two rows of the same value should also have a
      variance of 0.0, yet the error would be about the same.
      
      So, this patch changes the formula that computes the VARIANCE to be one
      that is not subject to catastrophic cancellation.
      
      In addition, it now uses only (faster-than-decimal) floating point numbers
      to calculate, and renders that to other types on demand.
      
      
      mysql-test/r/func_group.result:
        Test that the bug is fixed, and that no unexpected behavior arises from the 
        changes.
      mysql-test/t/func_group.test:
        Test that the bug is fixed, and that no unexpected behavior arises from the 
        changes.
      sql/item_sum.cc:
        Serg's suggestion: Force all VARIANCE calculations to be done with floating-
        point types.  It's faster, and the SQL standard says we may implement these
        functions any way we want.
        
        Additionally, use a form of variance calculation that is not subject to 
        catastrophic cancellation.   
        http://static.flickr.com/108/311308512_5c4e1c0c3d_b.jpg
      sql/item_sum.h:
        Remove unused members and add a comment describing the recurrence relation.
      82bd9b6b
    • unknown's avatar
      Fix for bug #21976: Unnecessary warning with count(decimal) · c872b005
      unknown authored
      We use val_int() calls (followed by null_value check) to determine 
      nullness in some Item_sum_count' and Item_sum_count_distinct' methods, 
      as a side effect we get extra warnings raised in the val_int().
      Fix: use is_null() instead.
      
      
      mysql-test/r/func_group.result:
        Fix for bug #21976: Unnecessary warning with count(decimal)
          - test result.
      mysql-test/t/func_group.test:
        Fix for bug #21976: Unnecessary warning with count(decimal)
          - test case.
      sql/item.h:
        Fix for bug #21976: Unnecessary warning with count(decimal)
          - comment adjusted.
      sql/item_sum.cc:
        Fix for bug #21976: Unnecessary warning with count(decimal)
          - use is_null() to determine nullness.
      c872b005
  17. 30 Nov, 2006 1 commit
    • unknown's avatar
      func_group.test, func_group.result, func_gconcat.result, func_gconcat.test: · 140c3ee9
      unknown authored
        merge fix : removed undeterministic warnings
      
      
      mysql-test/r/func_gconcat.result:
        merge fix : removed undeterministic warnings
      mysql-test/r/func_group.result:
        merge fix : removed undeterministic warnings
      mysql-test/t/func_gconcat.test:
        merge fix : removed undeterministic warnings
      mysql-test/t/func_group.test:
        merge fix : removed undeterministic warnings
      140c3ee9
  18. 28 Nov, 2006 1 commit
    • unknown's avatar
      BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0) · 9221a548
      unknown authored
       When implicitly converting string fields to numbers the 
       string-to-number conversion error was not sent to the client.
       Added code to send the conversion error as warning.
       
       We also need to prevent generation of warnings from the places
       where val_xxx() methods are called for the sole purpose of updating
       the Item::null_value flag.
       To achieve that a special function is added (and called) : 
       update_null_value(). This function will set the no_errors flag and
       will call val_xxx(). The warning generation in Field_string::val_xxx()
       will use the flag when generating the conversion warnings. 
      
      
      mysql-test/r/compare.result:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - non-convertible strings in arithmetic operations
      mysql-test/r/func_gconcat.result:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - non-convertible strings in arithmetic operations
      mysql-test/r/func_group.result:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - non-convertible strings in arithmetic operations
      mysql-test/r/type_varchar.result:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - test case
      mysql-test/t/type_varchar.test:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - test case
      sql/field.cc:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - send conversion warning to the client
      sql/item.cc:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - send conversion warning to the client
      sql/item.h:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - added a special function to explicitly update the null_value
      sql/item_func.h:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - added a special function to explicitly update the null_value
      sql/item_subselect.h:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - added a special function to explicitly update the null_value
      sql/item_sum.cc:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - added a special function to explicitly update the null_value
      sql/item_sum.h:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - added a special function to explicitly update the null_value
      sql/sql_string.h:
        BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0)
         - send conversion warning to the client
      9221a548
  19. 31 Oct, 2006 1 commit
    • 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
  20. 20 Sep, 2006 1 commit
  21. 08 Sep, 2006 1 commit
    • unknown's avatar
      Bug #21540: Subqueries with no from and aggregate functions return · 2a00a073
      unknown authored
                  wrong results
       Mark the containing Item(s) (Item_subselect descendant usually) of 
       a subselect as containing aggregate functions if it has references
       to aggregates functions that are calculated outside its context.
       This tels end_send_group() not to make an Item_subselect descendant in
       select list a copy and causes the correct value being returned.
      
      
      mysql-test/r/func_group.result:
        Bug #21540: Subqueries with no from and aggregate functions return
                    wrong results
         - test cases
      mysql-test/r/subselect.result:
        Bug #21540: Subqueries with no from and aggregate functions return
                    wrong results
         - fixed the result of an existing testcase.
      mysql-test/t/subselect.test:
        Bug #21540: Subqueries with no from and aggregate functions return
                    wrong results
         - test cases
      sql/item_sum.cc:
        Bug #21540: Subqueries with no from and aggregate functions return
                    wrong results
         Mark the containing Item (Item_subselect descendant usually) of 
         a subselect as containing aggregate functions if it has references
         to aggregates functions that are calculated outside its context.
         This tels end_send_group() not to make an Item_subselect descendant in
         select list a copy and causes the correct value being returned.
      2a00a073
  22. 05 Sep, 2006 1 commit
  23. 14 Aug, 2006 1 commit
    • unknown's avatar
      Manual merge 5.0->5.1. Post-merge fixes. · 21e75cb0
      unknown authored
      client/mysqldump.c:
        A post-merge fix - 'sock' was renamed to 'mysql'
      mysql-test/r/events_bugs.result:
        A post merge fix: now we strip rear comments from the query before
        it gets into the log.
      mysql-test/r/func_group.result:
        A post merge fix: default clause is now printed uppercase.
      mysql-test/r/im_life_cycle.result:
        Fix my mistake in manual resolve.
      mysql-test/r/mysqlcheck.result:
        use test; - after we drop client_test_db there is no current database.
        This cleanup is present in 5.1 only, but the test that was added in 
        5.0 assumes there is a current database, test.
      mysql-test/r/mysqldump.result:
        Ignore results of execution of mysqldump: we can't rely on 
        MASTER_LOG_POS in test results, it's different for statement
        and row level logging.
      mysql-test/r/mysqlshow.result:
        A post-merge fix: information schema contains a few more tables
        in 5.1
      mysql-test/r/mysqltest.result:
        A post merge fix: add 5.1 test end separator.
      mysql-test/r/ndb_basic.result:
        A post-merge fix: add test end separators.
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        A post merge fix: length of varbinary column is now 3 times less.
        Assuming a side effect of some other change. Length of any
        field is not relevant in this test.
      mysql-test/r/rpl_view.result:
        Add an end of test marker.
      mysql-test/r/show_check.result:
        Remove duplicate results. Add results from a merged test case.
      mysql-test/r/sp-error.result:
        Add test end separators.
      mysql-test/r/sp-security.result:
        Post-merge fix: use test after the current database is dropped.
      mysql-test/r/sp.result:
        Remove a duplicate result (bad merge that left a copy of
        the test case for Bug#19862 in the test suite).
      mysql-test/r/strict.result:
        An after-merge fix for a new test case: in 5.1 we issue a more accurate
        error message: "Incorrect value" instead of "Truncated value". I reason
        it so that in case of an error nothing is truncated, really.
        Also found similar changes in other test cases.
      mysql-test/r/type_datetime.result:
        Fix the text of an error.
      mysql-test/r/union.result:
        A post-merge fix: CHARACTER SET is now uppercase.
      mysql-test/t/mysqlcheck.test:
        A post-merge fix: use test, after current database is dropped, there
        is no current database.
      mysql-test/t/mysqldump.test:
        Disable result log: it's dependent on binlog position.
      mysql-test/t/sp-security.test:
        use test
      sql/item_sum.cc:
        Adjust the call to the constructor after the merge.
      sql/sp_head.cc:
        Add a missing DBUG_VOID_RETURN, move security checks out of
        execute_trigger to Table_triggers_list: in 5.1 we check for
        TRIGGER privilege, not SUPER privilege to execute triggers, so these
        checks lack table context inside execute_trigger and have to be
        performed when we have table object on hand.
      sql/sql_db.cc:
        A post-merge fix: adjust load_db_opt_by_name and check_db_dir_existence
        (new functions added in 5.0) to be tablename-to-filename encoding 
        friendly.
      sql/sql_lex.cc:
        A post-merge fix: make skip_rear_comments operate on const uchar *s.
      sql/sql_lex.h:
        A post-merge fix.
      sql/sql_show.cc:
        A post-merge fix: fix a bad merge, rename orig_sql_command -> sql_command.
      sql/sql_trigger.cc:
        A post-merge fix: move security checks to process_triggers
        from execute_trigger.
      sql/sql_view.cc:
        Adjust to the new signature of skip_rear_comments.
      sql/sql_yacc.yy:
        Adjust to the new signature of init_strings.
      21e75cb0
  24. 10 Aug, 2006 1 commit
    • unknown's avatar
      Bug #16792 query with subselect, join, and group not returning proper values · d3dd6fa0
      unknown authored
       Treat queries with no FROM and aggregate functions as normal queries,
      so the aggregate function get correctly calculated as if there is 1 row. 
      This means that they will be considered to have one row, so COUNT(*) will return
      1 instead of 0. Other aggregates will behave in compatible manner.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #16792 query with subselect, join, and group not returning proper values
         - test case. Note how it improves the support for DUAL.
      mysql-test/r/func_group.result:
        Bug #16792 query with subselect, join, and group not returning proper values
         - test case. Note how it improves the support for DUAL.
      mysql-test/r/subselect.result:
        Bug #16792 query with subselect, join, and group not returning proper values
         - consequence of (SELECT MAX(<const>)) now returning <const> instead of 0
      mysql-test/t/func_group.test:
        Bug #16792 query with subselect, join, and group not returning proper values
         - test case.
      sql/opt_sum.cc:
        Bug #16792 query with subselect, join, and group not returning proper values
         - cannot do the optimization if the index is already opened by (say) UPDATE
           as it invloves opening reading and closing the index.
      sql/sql_select.cc:
        Bug #16792 query with subselect, join, and group not returning proper values
         - Treat queries with no FROM and aggregate functions as normal queries,
        so the aggregate function get correctly calculated as if there is 1 row.
      d3dd6fa0
  25. 31 Jul, 2006 1 commit
  26. 28 Jul, 2006 1 commit
    • unknown's avatar
      BUG#14940 "MySQL choose wrong index", v.2 · ef452e19
      unknown authored
      - Make the range-et-al optimizer produce E(#table records after table 
                                                 condition is applied),
      - Make the join optimizer use this value,
      - Add "filtered" column to EXPLAIN EXTENDED to show 
        fraction of records left after table condition is applied
      - Adjust test results, add comments
      
      
      mysql-test/r/archive_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/auto_increment.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bdb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bench_count_distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/binlog_stm_blackhole.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/case.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/cast.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_collate.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_cp1250_ch.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/date_formats.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/fulltext.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_crypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_default.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_encrypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_gconcat.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_group.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_if.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_in.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_like.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_math.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_op.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_regexp.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_set.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_str.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_system.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_test.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_time.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_by.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_min_max.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/having.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap_hash.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_innodb.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_ror.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/innodb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/insert_update.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join_nested.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/key_diff.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/myisam.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ndb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/negation_elimination.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/null.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/olap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/partition_pruning.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/query_cache.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/row.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_get_lock.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_master_pos_wait.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/select.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/subselect.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/type_blob.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/union.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/varbinary.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/variables.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/view.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/ctype_cp1250_ch.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/func_like.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/group_min_max.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror_cpk.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/join.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/partition_pruning.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      sql/opt_range.cc:
        BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
          estimate of #records that will match the table condition.
      sql/sql_class.cc:
        BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.cc:
        BUG#14940: 
        - Make the join optimizer to use TABLE::quick_condition_rows=
          = E(#table records after filtering with table condition) 
        - Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.h:
        BUG#14940: Added comments
      sql/table.h:
        BUG#14940: Added comments
      ef452e19
  27. 25 Jul, 2006 1 commit
    • unknown's avatar
      Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set · 585b5bbc
      unknown authored
      The problem was in that opt_sum_query() replaced MIN/MAX functions
      with the corresponding constant found in a key, but due to imprecise
      representation of float numbers, when evaluating the where clause,
      this comparison failed.
      
      When MIN/MAX optimization detects that all tables can be removed,
      also remove all conjuncts in a where clause that refer to these
      tables. As a result of this fix, these conditions are not evaluated
      twice, and in the case of float number comparisons we do not discard
      result rows due to imprecise float representation.
      
      As a side-effect this fix also corrects an unnoticed problem in
      bug 12882.
      
      
      mysql-test/r/func_group.result:
        BUG#20954 - test result adjustment.
        Adjusted the test result of bug 12882 which was not preperly fixed.
        The current patch corrects the problem that was fully corrected by the
        patch for 12882.
        
        The problem was that opt_sum_query() indicated that the optimizer may
        remove all tables because all MIN/MAX/COUNT functions are constants,
        but this lead to an empty result instead of NULL because the WHERE
        clause was still evaluated.
        
        The current fix removes all conjuncts in the where clause that
        reference the removed tables, and thus corrects the problem.
      mysql-test/r/select.result:
        BUG#20954 - added test
      mysql-test/r/subselect.result:
        BUG#20954 - test result adjustment.
        
        The fix removes those conditions in a where clause that refer to
        tables optimized away by MIN/MAX optimization (opt_sum_query()).
      mysql-test/t/select.test:
        BUG#20954 - added test
      sql/sql_select.cc:
        Fix for BUG#20954: avg(keyval) retuns 0.38 but max(keyval) returns an empty set
        
        When MIN/MAX optimization detects that all tables can be removed,
        also remove all conjuncts in a where clause that refer to these
        tables. As a result of this fix, these conditions are not evaluated
        twice, and in the case of float number comparisons we do not discard
        result rows due to imprecise float representation.
        
        As a side-effect this fix also corrects an unnoticed problem in
        bug 12882.
      585b5bbc
  28. 21 Jul, 2006 1 commit
    • unknown's avatar
      Bug #20868: Client connection is broken on SQL query error · 8024aabb
      unknown authored
       An aggregate function reference was resolved incorrectly and
      caused a crash in count_field_types.
       Must use real_item() to get to the real Item instance through
      the reference
      
      
      mysql-test/r/func_group.result:
        Bug #20868: Client connection is broken on SQL query error
         * test case for the bug
      mysql-test/t/func_group.test:
        Bug #20868: Client connection is broken on SQL query error
         * test case for the bug
      sql/sql_select.cc:
        Bug #20868: Client connection is broken on SQL query error
         * correctly resolve aggregate function references.
      8024aabb
  29. 16 Jun, 2006 1 commit
  30. 14 Jun, 2006 1 commit
  31. 02 Jun, 2006 1 commit
    • unknown's avatar
      Fixed bug #18206. · e3e06587
      unknown authored
      The bug report revealed two problems related to min/max optimization:
      1. If the length of a constant key used in a SARGable condition for
      for the MIN/MAX fields is greater than the length of the field an 
      unwanted warning on key truncation is issued;
      2. If MIN/MAX optimization is applied to a partial index, like INDEX(b(4))
      than can lead to returning a wrong result set.
      
      
      mysql-test/r/func_group.result:
        Added test cases for bug #18206.
      mysql-test/t/func_group.test:
        Added test cases for bug #18206.
      sql/opt_sum.cc:
        Fixed bug #18206.
        Suppressed the warning about data truncation when store_val_in_field
        was used to store keys for the field used in MIN/MAX optimization.
        Blocked MIN/MAX optimization for partial keys, such as in INDEX(b(4)).
      sql/sql_select.cc:
        Fixed bug #18206.
        Added a parameter for the function store_val_in_field allowing to
        control setting warnings about data truncation in the function.
      sql/sql_select.h:
        Fixed bug #18206.
        Added a parameter for the function store_val_in_field allowing to
        control setting warnings about data truncation in the function.
      e3e06587
  32. 22 May, 2006 2 commits
    • unknown's avatar
      Bug#18745: Test case 'func_group' fails if "classic" 5.0 configuration · af3b08c5
      unknown authored
      Moved the InnoDB related test from func_group.test to innodb_mysql.test
      
      
      mysql-test/r/func_group.result:
        Moved a test to innodb_mysql
      mysql-test/r/innodb_mysql.result:
        moved a test to innodb_mysql
      mysql-test/t/func_group.test:
        Moved a test to innodb_mysql
      mysql-test/t/innodb_mysql.test:
        Moved a test to innodb_mysql
      af3b08c5
    • unknown's avatar
      Move innodb dependent tests to func_group_innodb · 38d09eb9
      unknown authored
      mysql-test/r/func_group_innodb.result:
        New BitKeeper file ``mysql-test/r/func_group_innodb.result''
      mysql-test/t/func_group_innodb.test:
        New BitKeeper file ``mysql-test/t/func_group_innodb.test''
      38d09eb9
  33. 22 Feb, 2006 1 commit
    • unknown's avatar
      Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case · 31a7a0d6
      unknown authored
      mysql-test/r/alter_table.result:
        Update test result
      mysql-test/r/analyse.result:
        Update test result
      mysql-test/r/archive.result:
        Update test result
      mysql-test/r/archive_bitfield.result:
        Update test result
      mysql-test/r/archive_gis.result:
        Update test result
      mysql-test/r/bdb.result:
        Update test result
      mysql-test/r/bdb_gis.result:
        Update test result
      mysql-test/r/bigint.result:
        Update test result
      mysql-test/r/binary.result:
        Update test result
      mysql-test/r/case.result:
        Update test result
      mysql-test/r/cast.result:
        Update test result
      mysql-test/r/constraints.result:
        Update test result
      mysql-test/r/create.result:
        Update test result
      mysql-test/r/ctype_collate.result:
        Update test result
      mysql-test/r/ctype_create.result:
        Update test result
      mysql-test/r/ctype_latin1_de.result:
        Update test result
      mysql-test/r/ctype_many.result:
        Update test result
      mysql-test/r/ctype_mb.result:
        Update test result
      mysql-test/r/ctype_recoding.result:
        Update test result
      mysql-test/r/ctype_sjis.result:
        Update test result
      mysql-test/r/ctype_tis620.result:
        Update test result
      mysql-test/r/ctype_ucs.result:
        Update test result
      mysql-test/r/ctype_ujis.result:
        Update test result
      mysql-test/r/ctype_utf8.result:
        Update test result
      mysql-test/r/default.result:
        Update test result
      mysql-test/r/events.result:
        Update test result
      mysql-test/r/federated.result:
        Update test result
      mysql-test/r/fulltext.result:
        Update test result
      mysql-test/r/func_gconcat.result:
        Update test result
      mysql-test/r/func_group.result:
        Update test result
      mysql-test/r/func_math.result:
        Update test result
      mysql-test/r/func_misc.result:
        Update test result
      mysql-test/r/func_str.result:
        Update test result
      mysql-test/r/func_system.result:
        Update test result
      mysql-test/r/gis-rtree.result:
        Update test result
      mysql-test/r/heap.result:
        Update test result
      mysql-test/r/index_merge_innodb.result:
        Update test result
      mysql-test/r/information_schema.result:
        Update test result
      mysql-test/r/innodb.result:
        Update test result
      mysql-test/r/innodb_gis.result:
        Update test result
      mysql-test/r/key.result:
        Update test result
      mysql-test/r/merge.result:
        Update test result
      mysql-test/r/myisam.result:
        Update test result
      mysql-test/r/mysqldump-max.result:
        Update test result
      mysql-test/r/mysqldump.result:
        Update test result
      mysql-test/r/ndb_bitfield.result:
        Update test result
      mysql-test/r/ndb_gis.result:
        Update test result
      mysql-test/r/ndb_partition_key.result:
        Update test result
      mysql-test/r/null.result:
        Update test result
      mysql-test/r/partition.result:
        Update test result
      mysql-test/r/partition_02myisam.result:
        Update test result
      mysql-test/r/partition_mgm_err.result:
        Update test result
      mysql-test/r/partition_range.result:
        Update test result
      mysql-test/r/ps_2myisam.result:
        Update test result
      mysql-test/r/ps_3innodb.result:
        Update test result
      mysql-test/r/ps_4heap.result:
        Update test result
      mysql-test/r/ps_5merge.result:
        Update test result
      mysql-test/r/ps_6bdb.result:
        Update test result
      mysql-test/r/rpl_mixed_ddl_dml.result:
        Update test result
      mysql-test/r/rpl_multi_engine.result:
        Update test result
      mysql-test/r/rpl_ndb_UUID.result:
        Update test result
      mysql-test/r/show_check.result:
        Update test result
      mysql-test/r/sp-vars.result:
        Update test result
      mysql-test/r/sp.result:
        Update test result
      mysql-test/r/sql_mode.result:
        Update test result
      mysql-test/r/strict.result:
        Update test result
      mysql-test/r/subselect.result:
        Update test result
      mysql-test/r/symlink.result:
        Update test result
      mysql-test/r/synchronization.result:
        Update test result
      mysql-test/r/system_mysql_db.result:
        Update test result
      mysql-test/r/temp_table.result:
        Update test result
      mysql-test/r/trigger.result:
        Update test result
      mysql-test/r/type_binary.result:
        Update test result
      mysql-test/r/type_bit.result:
        Update test result
      mysql-test/r/type_bit_innodb.result:
        Update test result
      mysql-test/r/type_blob.result:
        Update test result
      mysql-test/r/type_decimal.result:
        Update test result
      mysql-test/r/type_enum.result:
        Update test result
      mysql-test/r/type_float.result:
        Update test result
      mysql-test/r/type_nchar.result:
        Update test result
      mysql-test/r/type_newdecimal.result:
        Update test result
      mysql-test/r/type_set.result:
        Update test result
      mysql-test/r/type_timestamp.result:
        Update test result
      mysql-test/r/type_varchar.result:
        Update test result
      mysql-test/r/union.result:
        Update test result
      mysql-test/r/user_var.result:
        Update test result
      mysql-test/r/variables.result:
        Update test result
      sql/sql_show.cc:
        Make ouput from SHOW CREATE TABLE use uppercase for "CHARACTER SET", "COLLATE", "DEFAULT", "ON UPDATE" and "AUTO_INCREMENT"
      31a7a0d6
  34. 11 Jan, 2006 1 commit
    • unknown's avatar
      Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong · 593bed0d
      unknown authored
      select result
      
      Item equal objects are employed only at the optimize phase. Usually they are not
      supposed to be evaluated.  Yet in some cases we call the method val_int() for
      them. Here we have to take care of restricting the predicate such an object
      represents f1=f2= ...=fn to the projection of known fields fi1=...=fik.
      
      Added a check for field's table being const in Item_equal::val_int().
      If the field's table is not const val_int() just skips that field when
      evaluating Item_equal.
      
      
      mysql-test/t/select.test:
        Added test case for bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
      mysql-test/r/select.result:
        Added test case for bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
      mysql-test/r/func_group.result:
        Corrected test result for bug #12882 after fix for bug#15633
      sql/item_cmpfunc.h:
        Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
        Added comment about fields from non-const tables in class description.
      sql/item_cmpfunc.cc:
        Fixed bug #15633: Evaluation of Item_equal for non-const table caused wrong select result
        Added check for field's table being const in Item_equal::val_int().
      593bed0d
  35. 22 Nov, 2005 1 commit
  36. 21 Sep, 2005 1 commit
    • unknown's avatar
      Fix for BUG#12882 - min/max inconsistent on empty table. · 8e7217e4
      unknown authored
      The problem was in that the MIN/MAX optimization in opt_sum_query was
      replacing MIN/MAX functions with their constant argument without
      taking into account that a query has no result rows.
      
      
      mysql-test/r/func_group.result:
        Test for BUG#12882.
      mysql-test/t/func_group.test:
        Test for BUG#12882.
      sql/item_sum.cc:
        If it is known that a query has no result rows, do not call add()
        via the call to Item_sum::no_rows_in_result() which calls reset().
        Instead directly call clear() so that the MIN and MAX functions
        produce NULL when there are no result rows.
      sql/opt_sum.cc:
        * Do not apply MIN/MAX optimization when the operand of MIN/MAX is
          a constant if it can't be determined whether the query has any
          result rows. The reason is that if the query has result rows,
          then the result of MIN/MAX is its constant argument, but if the
          query result is empty, then the result of MIN/MAX must be NULL
          irrespective of its argument.
        
        * The patch also simplifies a bit the branch that hadles COUNT().
      8e7217e4
  37. 28 Jul, 2005 1 commit
    • unknown's avatar
      After merge fixes · f11418f7
      unknown authored
      mysql-test/r/func_group.result:
        Update results after merge (things moved around when aligning 4.1 and 5.0 tests)
      mysql-test/r/mysqldump.result:
        Update results after merge (things moved around when aligning 4.1 and 5.0 tests)
      mysql-test/r/ps_grant.result:
        Update results after merge (test moved to another file)
      mysql-test/t/mysqldump.test:
        Align with other lines
      sql/lock.cc:
        Removed compiler warning
        Fixed typo during merge
      f11418f7