An error occurred fetching the project authors.
  1. 20 Mar, 2007 1 commit
    • gkodinov/kgeorge@macbook.local's avatar
      Bug #24484: · 28962a76
      gkodinov/kgeorge@macbook.local authored
      To correctly decide which predicates can be evaluated with a given table
      the optimizer must know the exact set of tables that a predicate depends 
      on. If that mask is too wide (refer to non-existing tables) the optimizer
      can erroneously skip a predicate.
      One such case of wrong table usage mask were the aggregate functions.
      The have a all-1 mask (meaning depend on all tables, including non-existent
      ones).
      Fixed by making a real used_tables mask for the aggregates. The mask is
      constructed in the following way :
      1. OR the table dependency masks of all the arguments of the aggregate.
      2. If all the arguments of the function are from the local name resolution 
        context and it is evaluated in the same name resolution
        context where it is referenced all the tables from that name resolution 
        context are OR-ed to the dependency mask. This is to denote that an
        aggregate function depends on the number of rows it processes.
      3. Handle correctly the case of an aggregate function optimization (such that
        the aggregate function can be pre-calculated and made a constant).
      
      Made sure that an aggregate function is never a constant (unless subject of a 
      specific optimization and pre-calculation).  
      
      One other flaw was revealed and fixed in the process : references were 
      not calling the recalculation method for used_tables of their targets.
      28962a76
  2. 31 Dec, 2006 1 commit
    • kent@mysql.com/kent-amd64.(none)'s avatar
      my_strtoll10-x86.s: · 6523aca7
      kent@mysql.com/kent-amd64.(none) authored
        Corrected spelling in copyright text
      Makefile.am:
        Don't update the files from BitKeeper
      Many files:
        Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
        Adjusted year(s) in copyright header 
      Many files:
        Added GPL copyright text
      Removed files:
        Docs/Support/colspec-fix.pl
        Docs/Support/docbook-fixup.pl
        Docs/Support/docbook-prefix.pl
        Docs/Support/docbook-split
        Docs/Support/make-docbook
        Docs/Support/make-makefile
        Docs/Support/test-make-manual
        Docs/Support/test-make-manual-de
        Docs/Support/xwf
      6523aca7
  3. 23 Dec, 2006 1 commit
  4. 22 Dec, 2006 1 commit
    • cmiller@zippy.cornsilk.net's avatar
      Bug#22555: STDDEV yields positive result for groups with only one row · 50726b23
      cmiller@zippy.cornsilk.net 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.
      50726b23
  5. 28 Nov, 2006 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      BUG#11927: Warnings shown for CAST( chr as signed) but not (chr + 0) · 42cd9567
      gkodinov/kgeorge@macbook.gmz 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. 
      42cd9567
  6. 31 Oct, 2006 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug #23184: SELECT causes server crash · 6cd1f7b2
      gkodinov/kgeorge@macbook.gmz 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.
      6cd1f7b2
  7. 18 Oct, 2006 1 commit
    • kroki/tomash@moonlight.intranet's avatar
      Fix for valgrind warning introduced by the fix for bug#21354: · 9fd2c861
      kroki/tomash@moonlight.intranet authored
      (COUNT(*) = 1) not working in SELECT inside prepared statement.
      Note: the warning was introduced in 5.0 and 5.1, 4.1 is OK with the
      original fix.
      
      The problem was that in 5.0 and 5.1 clear() for group functions may
      access hybrid_type member, and this member is initialized in
      fix_fields().
      
      So we should not call clear() from item cleanup() methods, as cleanup()
      may be called for unfixed items.
      9fd2c861
  8. 10 Oct, 2006 1 commit
  9. 20 Apr, 2006 1 commit
  10. 12 Apr, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was · ac54aa2a
      evgen@moonbone.local authored
      used
      
      In a simple queries a result of the GROUP_CONCAT() function was always of 
      varchar type.
      But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
      table is used during select then the result is converted to blob, due to
      policy to not to store fields longer than 512 chars in tmp table as varchar
      fields.
      
      In order to provide consistent behaviour, result of GROUP_CONCAT() now
      will always be converted to blob if it is longer than 512 chars.
      Item_func_group_concat::field_type() is modified accordingly.
      ac54aa2a
  11. 30 Mar, 2006 1 commit
  12. 29 Mar, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries · 1c13e548
      evgen@moonbone.local authored
      The GROUP_CONCAT uses its own temporary table. When ROLLUP is present
      it creates the second copy of Item_func_group_concat. This copy receives the
      same list of arguments that original group_concat does. When the copy is
      set up the result_fields of functions from the argument list are reset to the
      temporary table of this copy.
      As a result of this action data from functions flow directly to the ROLLUP copy
      and the original group_concat functions shows wrong result.
      Since queries with COUNT(DISTINCT ...) use temporary tables to store
      the results the COUNT function they are also affected by this bug.
      
      The idea of the fix is to copy content of the result_field for the function
      under GROUP_CONCAT/COUNT from  the first temporary table to the second one,
      rather than setting result_field to point to the second temporary table.
      To achieve this goal force_copy_fields flag is added to Item_func_group_concat
      and Item_sum_count_distinct classes. This flag is initialized to 0 and set to 1
      into the make_unique() member function of both classes.
      To the TMP_TABLE_PARAM structure is modified to include the similar flag as
      well.
      The create_tmp_table() function passes that flag to create_tmp_field().
      When the flag is set the create_tmp_field() function will set result_field
      as a source field and will not reset that result field to newly created 
      field for Item_func_result_field and its descendants. Due to this there
      will be created copy func to copy data from old result_field to newly 
      created field.
      1c13e548
  13. 28 Feb, 2006 1 commit
    • evgen@moonbone.local's avatar
      Fixed bug#14169: type of group_concat() result changed to blob if tmp_table was · 0ce39664
      evgen@moonbone.local authored
      used
      
      In a simple queries a result of the GROUP_CONCAT() function was always of 
      varchar type.
      But if length of GROUP_CONCAT() result is greater than 512 chars and temporary
      table is used during select then the result is converted to blob, due to
      policy to not to store fields longer than 512 chars in tmp table as varchar
      fields.
      
      In order to provide consistent behaviour, result of GROUP_CONCAT() now
      will always be converted to blob if it is longer than 512 chars.
      Item_func_group_concat::field_type() is modified accordingly.
      0ce39664
  14. 12 Dec, 2005 1 commit
  15. 30 Nov, 2005 1 commit
  16. 22 Nov, 2005 1 commit
  17. 15 Oct, 2005 1 commit
  18. 08 Sep, 2005 2 commits
  19. 07 Sep, 2005 1 commit
  20. 02 Sep, 2005 1 commit
    • konstantin@mysql.com's avatar
      Rename: · a3ddcdf8
      konstantin@mysql.com authored
      - current_arena to stmt_arena: the thread may have more than one
      'current' arenas: one for runtime data, and one for the parsed 
      tree of a statement. Only one of them is active at any moment.
      - set_item_arena -> set_query_arena, because Item_arena was renamed to 
      Query_arena a while ago
      - set_n_backup_item_arena -> set_n_backup_active_arena;
      the active arena is the arena thd->mem_root and thd->free_list
      are currently pointing at.
      - restore_backup_item_arena -> restore_active_arena (with the same
      rationale)
      - change_arena_if_needed -> activate_stmt_arena_if_needed; this
      method sets thd->stmt_arena active if it's not done yet.
      a3ddcdf8
  21. 02 Jul, 2005 1 commit
  22. 01 Jul, 2005 1 commit
  23. 17 Jun, 2005 1 commit
  24. 05 May, 2005 1 commit
  25. 04 May, 2005 1 commit
  26. 30 Apr, 2005 1 commit
  27. 03 Apr, 2005 1 commit
  28. 21 Mar, 2005 1 commit
  29. 17 Mar, 2005 1 commit
  30. 15 Mar, 2005 1 commit
  31. 13 Mar, 2005 1 commit
    • konstantin@mysql.com's avatar
      WL#926 "SUM(DISTINCT) and AVG(DISTINCT)": improvement of SUM(DISTINCT) and · 983c75f0
      konstantin@mysql.com authored
       implementation of AVG(DISTINCT) which utilizes the approach with Fields.
      The patch implemented in October is portede to the up-to-date tree 
      containing DECIMAL type.
      Tests for AVG(DISTINCT) (although there is not much to test provided
      that SUM(DISTINCT) works), cleanups for COUNT(DISTINCT) and GROUP_CONCAT()
      will follow in another changeset.
      983c75f0
  32. 07 Mar, 2005 1 commit
  33. 01 Mar, 2005 1 commit
  34. 25 Feb, 2005 2 commits
  35. 22 Feb, 2005 2 commits
  36. 19 Feb, 2005 1 commit
    • monty@mysql.com's avatar
      Fixed BUILD script to use --with-berkeley-db instead of --with-bdb · 218e00ac
      monty@mysql.com authored
      Lots of small fixes to multi-precision-math path
      Give Note for '123.4e'
      Added helper functions type 'val_string_from_real()
      Don't give warnings for end space for string2decimal()
      Changed storage of values for SP so that we can detect length of argument without strlen()
      Changed interface for str2dec() so that we must supple the pointer to the last character in the buffer
      218e00ac
  37. 08 Feb, 2005 1 commit