An error occurred fetching the project authors.
  1. 27 Jul, 2007 1 commit
    • dkatz@damien-katzs-computer.local's avatar
      Bug #25061 Build failure on HP/UX similar to BUG#20507 · 9fe1a5a9
      dkatz@damien-katzs-computer.local authored
      Added libCsup as a mysql library dependency on hpux11.
      
      This means any projects statically linking to our libraries using the HPUX11 compiler will need to add the -lCSup option to their build link options. If they use the mysql_config tool this will happen automatically.
      
      Projects that dynamically link to libmysqlclient will continue to work without any modifications.
      
      Library libCsup is a C++ runtime library needed for yassl support when built with the hpux11 C/C++ compiler. The first attempts to fix this bug were to remove the yassl dependencies on libCsup. We tried removing all pure virtual functions and other hacks, but the dependency remained. The only other options left involve extensive restructuring of the yassl library.
          
      9fe1a5a9
  2. 23 May, 2007 1 commit
  3. 17 May, 2007 1 commit
    • gkodinov/kgeorge@macbook.gmz's avatar
      Bug#22855: · a9b348c7
      gkodinov/kgeorge@macbook.gmz authored
      Conversion errors when constructing the condition for an
      IN predicates were treated as if the affected column contains
      NULL. If such a IN predicate is inside NOT we get wrong 
      results.
      Corrected the handling of conversion errors in an IN predicate 
      that is resolved by unique_subquery (through 
      subselect_uniquesubquery_engine).
      a9b348c7
  4. 15 May, 2007 1 commit
    • mhansson/martin@linux-st28.site's avatar
      Bug#27573: MIN() on an indexed column which is always NULL sets _other_ results · 5bc137ff
      mhansson/martin@linux-st28.site 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.
      5bc137ff
  5. 14 May, 2007 2 commits
    • tnurnberg@blasphemy.mysql.com's avatar
      Backport of TIME->MYSQL_TIME / Y2K fixset · 034aec5d
      tnurnberg@blasphemy.mysql.com authored
      Made year 2000 handling more uniform
      Removed year 2000 handling out from calc_days()
      The above removes some bugs in date/datetimes with year between 0 and 200
      Now we get a note when we insert a datetime value into a date column
      For default values to CREATE, don't give errors for warning level NOTE
      Fixed some compiler failures
      Added library ws2_32 for windows compilation (needed if we want to compile with IOCP support)
      Removed duplicate typedef TIME and replaced it with MYSQL_TIME
      
      Better (more complete) fix for: Bug#21103 "DATE column not compared as DATE"
      Fixed properly Bug#18997 "DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value"
      Fixed Bug#23093 "Implicit conversion of 9912101 to date does not match cast(9912101 as date)"
      034aec5d
    • tnurnberg@blasphemy.mysql.com's avatar
      Backport of TIME->MYSQL_TIME / Y2K fixset · 30868bdc
      tnurnberg@blasphemy.mysql.com authored
      Made year 2000 handling more uniform
      Removed year 2000 handling out from calc_days()
      The above removes some bugs in date/datetimes with year between 0 and 200
      Now we get a note when we insert a datetime value into a date column
      For default values to CREATE, don't give errors for warning level NOTE
      Fixed some compiler failures
      Added library ws2_32 for windows compilation (needed if we want to compile with IOCP support)
      Removed duplicate typedef TIME and replaced it with MYSQL_TIME
      
      Better (more complete) fix for: Bug#21103 "DATE column not compared as DATE"
      Fixed properly Bug#18997 "DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value"
      Fixed Bug#23093 "Implicit conversion of 9912101 to date does not match cast(9912101 as date)"
      30868bdc
  6. 08 May, 2007 1 commit
  7. 28 Apr, 2007 1 commit
    • kaa@polly.local's avatar
      Fix for bug #24912 "problems with bigint in abs() ceiling() round() truncate()... · 050c6723
      kaa@polly.local authored
      Fix for bug #24912 "problems with bigint in abs() ceiling() round() truncate() mod()" and a number of related problems:
      
      - unsigned flag was not handled correctly for a number of mathematical funcions, which led to incorrect results
      - passing large values as the number of decimals to ROUND() resulted in incorrect results and even server crashes in some cases
      - reverted the fix and the testcase for bug #10083 as it violates the manual
      - fixed some testcases which relied on broken ROUND() behavior
      050c6723
  8. 26 Apr, 2007 2 commits
    • evgen@moonbone.local's avatar
      Bug#27590: Wrong DATE/DATETIME comparison. · 4747fa0c
      evgen@moonbone.local authored
      DATE and DATETIME can be compared either as strings or as int. Both
      methods have their disadvantages. Strings can contain valid DATETIME value
      but have insignificant zeros omitted thus became non-comparable with
      other DATETIME strings. The comparison as int usually will require conversion
      from the string representation and the automatic conversion in most cases is
      carried out in a wrong way thus producing wrong comparison result. Another
      problem occurs when one tries to compare DATE field with a DATETIME constant.
      The constant is converted to DATE losing its precision i.e. losing time part.
      
      This fix addresses the problems described above by adding a special
      DATE/DATETIME comparator. The comparator correctly converts DATE/DATETIME
      string values to int when it's necessary, adds zero time part (00:00:00)
      to DATE values to compare them correctly to DATETIME values. Due to correct
      conversion malformed DATETIME string values are correctly compared to other
      DATE/DATETIME values.
      
      As of this patch a DATE value equals to DATETIME value with zero time part.
      For example '2001-01-01' equals to '2001-01-01 00:00:00'.
      
      The compare_datetime() function is added to the Arg_comparator class.
      It implements the correct comparator for DATE/DATETIME values.
      Two supplementary functions called get_date_from_str() and get_datetime_value()
      are added. The first one extracts DATE/DATETIME value from a string and the
      second one retrieves the correct DATE/DATETIME value from an item.
      The new Arg_comparator::can_compare_as_dates() function is added and used
      to check whether two given items can be compared by the compare_datetime()
      comparator.
      Two caching variables were added to the Arg_comparator class to speedup the
      DATE/DATETIME comparison.
      One more store() method was added to the Item_cache_int class to cache int
      values.
      The new is_datetime() function was added to the Item class. It indicates
      whether the item returns a DATE/DATETIME value.
      4747fa0c
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #27363: · bfa29e17
      gkodinov/kgeorge@magare.gmz authored
      Validity checks for nested set functions
      were not taking into account that the enclosed
      set function may be on a nest level that is
      lower than the nest level of the enclosing set
      function.
      Fixed by :
       - propagating max_sum_func_level
      up the enclosing set functions chain.
       - updating the max_sum_func_level of the 
         enclosing set function when the enclosed set
         function is aggregated above or on the same
         nest level of as the level of the enclosing 
         set function.
       - updating the max_arg_level of the enclosing
         set function on a reference that refers to
         an item above or on the same nest level
         as the level of the enclosing set function.
       - Treating both Item_field and Item_ref as possibly
         referencing items from outer nest levels.
      bfa29e17
  9. 25 Apr, 2007 2 commits
  10. 24 Apr, 2007 2 commits
    • malff/marcsql@weblab.(none)'s avatar
      Bug#25411 (trigger code truncated), PART I · fc809c70
      malff/marcsql@weblab.(none) authored
      The issue found with bug 25411 is due to the function skip_rear_comments()
      which damages the source code while implementing a work around.
      The root cause of the problem is in the lexical analyser, which does not
      process special comments properly.
      For special comments like :
      [1] aaa /*!50000 bbb */ ccc
      since 5.0 is a version older that the current code, the parser is in lining
      the content of the special comment, so that the query to process is
      [2] aaa bbb ccc
      However, the text of the query captured when processing a stored procedure,
      stored function or trigger (or event in 5.1), can be after rebuilding it:
      [3] aaa bbb */ ccc
      which is wrong.
      
      To fix bug 25411 properly, the lexical analyser needs to return [2] when
      in lining special comments.
      In order to implement this, some preliminary cleanup is required in the code,
      which is implemented by this patch.
      
      Before this change, the structure named LEX (or st_lex) contains attributes
      that belong to lexical analysis, as well as attributes that represents the
      abstract syntax tree (AST) of a statement.
      Creating a new LEX structure for each statements (which makes sense for the
      AST part) also re-initialized the lexical analysis phase each time, which
      is conceptually wrong.
      
      With this patch, the previous st_lex structure has been split in two:
      - st_lex represents the Abstract Syntax Tree for a statement. The name "lex"
      has not been changed to avoid a bigger impact in the code base.
      - class lex_input_stream represents the internal state of the lexical
        analyser, which by definition should *not* be reinitialized when parsing
        multiple statements from the same input stream.
      
      This change is a pre-requisite for bug 25411, since the implementation of
      lex_input_stream will later improve to deal properly with special comments,
      and this processing can not be done with the current implementation of
      sp_head::reset_lex and sp_head::restore_lex, which interfere with the lexer.
      
      This change set alone does not fix bug 25411.
      fc809c70
    • knielsen@ymer.(none)'s avatar
      BUG#27370: Potential inconsistent blob reads for ReadCommitted reads. · 56cf7a53
      knielsen@ymer.(none) authored
      The old blob implementation had code that attempted to upgrade the lock mode for
      LM_CommittedRead operations, but it did not work properly as it did not recompute
      the operation flags.
      
      As a consequence, reading a blob with LM_CommittedRead could return inconsistent
      data, with different part of the read data being from different commits done by
      other transactions.
      
      The fix is to correctly recompute all necessary flags when upgrading lock mode.
      56cf7a53
  11. 23 Apr, 2007 2 commits
    • iggy@recycle.(none)'s avatar
      Bug#25621 Error in my_thread_global_end(): 1 threads didn't exit · 30d6cf31
      iggy@recycle.(none) authored
      - On Windows, connection handlers while exiting properly did not 
      decrement the server's thread count.
      30d6cf31
    • kaa@polly.local's avatar
      Fix for bug #22364 "Inconsistent "matched rows" when executing UPDATE" · 9a99aa81
      kaa@polly.local authored
      In multi_update::send_data(), the counter of matched rows was not correctly incremented, when during insertion of a new row to a temporay table it had to be converted from HEAP to MyISAM.
      
      This fix changes the logic to increment the counter of matched rows in the following cases:
      1. If the error returned from write_row() is zero.
      2. If the error returned from write_row() is non-zero, is neither HA_ERR_FOUND_DUPP_KEY nor HA_ERR_FOUND_DUPP_UNIQUE, and a call to create_myisam_from_heap() succeeds. 
      9a99aa81
  12. 20 Apr, 2007 1 commit
  13. 18 Apr, 2007 3 commits
    • sergefp@mysql.com's avatar
      BUG#27939: Early NULLs filtering doesn't work for eq_ref access · 83e6352c
      sergefp@mysql.com authored
       - Turn it on for JT_EQ_REF access method
      83e6352c
    • msvensson@pilot.blaudden's avatar
      Bug#25452 mysql_upgrade access denied · 20e622dc
      msvensson@pilot.blaudden authored
       - Improve mysql_upgrade and add comments describing it's logic
       - Don't look for mysql and mysqlcheck randomly, use dir where mysql_upgrade
        was started from
       - Don't look for mysql_fix_privilege_tables.sql randomly, compile
        in the mysql_fix_privilege_tables.sql file and use that to upgrade
        the system tables of MySQL
       - Check for any unexpected error returned from runnning the mysql_fix_privilege_tables SQL
       - Fix bug#26639, bug#24248 and bug#25405
      20e622dc
    • igor@olga.mysql.com's avatar
      Fixed bug #27870. The bug that causes crashes manifests itself at some · 6ad81b4e
      igor@olga.mysql.com authored
      conditions when executing an equijoin query with WHERE condition
      containing a subquery predicate of the form join_attr NOT IN (SELECT ...).
      
      To resolve a problem of the correct evaluation of the expression
        attr NOT IN (SELECT ...)
      an array of guards is created to make it possible to filter out some 
      predicates of the EXISTS subquery into which the original subquery 
      predicate is transformed, in the cases when a takes the NULL value. 
      If attr is defined as a field that cannot be NULL than such an array 
      is not needed and is not created. 
      However if the field a occurred also an an equijoin predicate t2.a=t1.b
      and table t1 is accessed before table t2 then it may happen that the 
      the EXISTS subquery is pushed down to the condition evaluated just after
      table t1 has been accessed. In this case any occurrence of t2.a is 
      substituted for t1.b. When t1.b takes the value of NULL an attempt is 
      made to turn on the corresponding guard. This action caused a crash as 
      no guard array had been created.
      
      Now the code of Item_in_subselect::set_cond_guard_var checks that the guard
      array has been created before setting a guard variable on. Otherwise the
      method does nothing. It cannot results in returning a row that could be
      rejected as the condition t2.a=t1.b will be checked later anyway.        
      6ad81b4e
  14. 17 Apr, 2007 2 commits
  15. 16 Apr, 2007 1 commit
  16. 13 Apr, 2007 2 commits
  17. 12 Apr, 2007 4 commits
  18. 11 Apr, 2007 1 commit
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #27530: · 4202454b
      gkodinov/kgeorge@magare.gmz authored
      The function CRC32() returns unsigned integer.
      But the metadata (the unsigned flag) for the 
      function was set incorrectly.
      As a result type arithmetics based on the 
      function's metadata (like finding the concise
      type of an temporary table column to hold the result)
      returned incorrect results.
      Fixed by returning correct type information.
      
      This fix is based on code contributed by Martin Friebe
      (martin@hybyte.com) on 2007-03-30.  
      4202454b
  19. 10 Apr, 2007 1 commit
  20. 09 Apr, 2007 2 commits
    • bar@mysql.com's avatar
      Bug#22648 LC_TIME_NAMES: Setting GLOBAL has no effect · 4341df8c
      bar@mysql.com authored
      Problem: setting/displaying @@LC_TIME_NAMES didn't distinguish between
      GLOBAL and SESSION variable types - always SESSION variable
      was set/shonw.
      Fix: set either global or session value.
      Also, "mysqld --lc-time-names" was added to set "global default" value.
      4341df8c
    • bar@mysql.com's avatar
      bug#27608 XML output is not well-formed · 9faaec9e
      bar@mysql.com authored
      Problem: output was empty if the result is empty.
      Fix: print XML header and footer, even if the result
      is empty, to produce well-formed XML output.
      9faaec9e
  21. 02 Apr, 2007 2 commits
  22. 22 Mar, 2007 1 commit
  23. 12 Mar, 2007 1 commit
  24. 01 Mar, 2007 1 commit