An error occurred fetching the project authors.
  1. 19 Oct, 2009 1 commit
    • Evgeny Potemkin's avatar
      Bug#30302: Tables that were optimized away are printed in the · 14994d21
      Evgeny Potemkin authored
      EXPLAIN EXTENDED warning.
      
      Query optimizer searches for the constant tables and optimizes them away. This
      means that fields of such tables are substituted for their values and on later
      phases they are treated as constants. After this constant tables are removed
      from the query execution plan. Nevertheless constant tables were shown in 
      the EXPLAIN EXTENDED warning thus producing query that might be not an
      equivalent of the original query.
              
      Now the print_join function skips all tables that were optimized away from
      printing to the EXPLAIN EXTENDED warning. If all tables were optimized away it
      produces the 'FROM dual' clause.
      14994d21
  2. 27 Aug, 2009 2 commits
    • Georgi Kodinov's avatar
      Bug #46749: Segfault in add_key_fields() with outer subquery level · 8ca8f70d
      Georgi Kodinov authored
        field references
      
      This error requires a combination of factors : 
      1. An "impossible where" in the outermost SELECT
      2. An aggregate in the outermost SELECT
      3. A correlated subquery with a WHERE clause that includes an outer 
      field reference as a top level WHERE sargable predicate
      
      When JOIN::optimize detects an "impossible WHERE" it will bail out
      without doing the rest of the work and initializations. It will not
      call make_join_statistics() as well.  And make_join_statistics fills 
      in various structures for each table referenced.
      When processing the result of the "impossible WHERE" the query must
      send a single row of data if there are aggregate functions in it.
      In this case the server marks all the aggregates as having received 
      no rows and calls the relevant Item::val_xxx() method on the SELECT
      list. However if this SELECT list happens to contain a correlated 
      subquery this subquery is evaluated in a normal evaluation mode.
      And if this correlated subquery has a reference to a field from the 
      outermost "impossible where" SELECT the add_key_fields will mistakenly
      consider the outer field reference as a "local" field reference when 
      looking for sargable predicates.
      But since the SELECT where the outer field reference refers to is not
      completely initialized due to the "impossible WHERE" in this level
      we'll get a NULL pointer reference.
      Fixed by making a better condition for discovering if a field is "local"
      to the SELECT level being processed. 
      It's not enough to look for OUTER_REF_TABLE_BIT in this case since 
      for outer references to constant tables the Item_field::used_tables() 
      will return 0 regardless of whether the field reference is from the 
      local SELECT or not.
      8ca8f70d
    • Sergey Glukhov's avatar
      Bug#46184 Crash, SELECT ... FROM derived table procedure analyze · d9d71d0f
      Sergey Glukhov authored
      The crash happens because select_union object is used as result set
      for queries which have derived tables.
      select_union use temporary table as data storage and if
      fields count exceeds 10(count of values for procedure ANALYSE())
      then we get a crash on fill_record() function.
      d9d71d0f
  3. 18 Jul, 2009 1 commit
    • Evgeny Potemkin's avatar
      Bug#46051: Incorrectly market field caused wrong result. · 32b02e0b
      Evgeny Potemkin authored
      When during the optimization an item is moved to the upper select
      the item's context left unchanged. This caused wrong result in the 
      PS/SP mode.
      The Item_ident::remove_dependence_processor now sets the context
      of the select to which the item is moved to.
      32b02e0b
  4. 16 Jul, 2009 1 commit
    • Evgeny Potemkin's avatar
      Bug#46051: Incorrectly market field caused wrong result. · af2c91b7
      Evgeny Potemkin authored
      In a subselect all fields from outer selects are marked as dependent on
      selects they are belong to. In some cases optimizer substitutes it for an
      equivalent expression. For example "a_field IN (SELECT outer_field)" is
      substituted with "a_field = outer_field". As we moved the outer_field to the
      upper select it's not really outer anymore. But it was left marked as outer.
      If exists an index over a_field optimizer choose wrong execution plan and thus
      return wrong result.
      
      Now the Item_in_subselect::single_value_transformer function removes dependent
      marking from fields when a subselect is optimized away.
      af2c91b7
  5. 09 Feb, 2009 1 commit
    • Matthias Leich's avatar
      This belongs to the fix for · 33445d8f
      Matthias Leich authored
      Bug#42003 tests missing the disconnect of connections <> default
      second slice
      Content:
      1. wait_until_count_sessions.inc
         - One PB run of a test using this routine failed because
           5 seconds timeout were exceeded. Although I have some doubts
           if the assigned timeout was really too small, I increase the
           value to 10. We waste the additional 5 seconds only if the
           tests fails anyway.
         - Print the content of the PROCESSLIST if the poll routine fails
      2. minor improvements of formatting
      3. query_cache_notembedded:
         Activate the wait_until_count_sessions.inc routine which was
         unfortunately forgotten in the changeset before.
      33445d8f
  6. 05 Feb, 2009 1 commit
    • Matthias Leich's avatar
      2. Slice of fix for Bug#42003 tests missing the disconnect of connections <> default · a63c2e5c
      Matthias Leich authored
         - If missing: add "disconnect <session>"
         - If physical disconnect of non "default" sessions is not finished
           at test end: add routine which waits till this happened
      + additional improvements
        - remove superfluous files created by the test
        - replace error numbers by error names
        - remove trailing spaces, replace tabs by spaces
        - unify writing of bugs within comments
        - correct comments
        - minor changes of formatting
      Fixed tests:
        backup
        check
        compress
        grant
        information_schema
        multi_update
        overflow
        packet
        query_cache_not_embedded
        sp-threads
        subselect
        synchronization
        timezone_grant
      a63c2e5c
  7. 29 Jan, 2009 1 commit
  8. 28 Jan, 2009 1 commit
    • Sergey Petrunia's avatar
      BUG#37822: Correlated subquery with IN and IS UNKNOWN provides wrong result · cd4f6cc1
      Sergey Petrunia authored
      Item_in_optimizer::is_null() evaluated "NULL IN (SELECT ...)" to NULL regardless of
      whether subquery produced any records, this was a documented limitation.
      
      The limitation has been removed (see bugs 8804, 24085, 24127) now
      Item_in_optimizer::val_int() correctly handles all cases with NULLs. Make
      Item_in_optimizer::is_null() invoke val_int() to return correct values for
      "NULL IN (SELECT ...)".
      cd4f6cc1
  9. 12 Jan, 2009 1 commit
    • Joerg Bruehe's avatar
      Backport of a 5.0.74 fix into 5.0.72sp1: · 037093b6
      Joerg Bruehe authored
      Bug#34760 Character set autodetection appears to fail
      the problem is the same as reported in bug#20835,
      so the fix is backport of bug#20835 patch.
      
      Original changeset:
      > revision-id: sergey.glukhov@sun.com-20081121123959-58ffhp2nitg7f40h
      > parent: ramil@mysql.com-20081120100836-gct60cm67b1rui29
      > committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
      > branch nick: mysql-5.0-bugteam
      > timestamp: Fri 2008-11-21 16:39:59 +0400
      037093b6
  10. 27 Nov, 2008 1 commit
  11. 21 Nov, 2008 1 commit
  12. 27 Aug, 2008 1 commit
  13. 26 Jul, 2008 1 commit
    • Igor Babaev's avatar
      Fixed bug #38191. · da156dde
      Igor Babaev authored
      Calling List<Cached_item>::delete_elements for the same list twice
      caused a crash of the server in the function JOIN::cleaunup.
      Ensured that delete_elements() in JOIN::cleanup would be called only once.
      da156dde
  14. 07 Jul, 2008 2 commits
    • Sven Sandberg's avatar
      Post-merge fixes. · af7ed3f9
      Sven Sandberg authored
      The file tree in mtr's vardir has changed so an old
      hard-coded path in mysql-test/t/subselect.test didn't
      work.
      Fix: update the paths in the test.
      af7ed3f9
    • Georgi Kodinov's avatar
      Bug#37627: addendum : · 0a638f6b
      Georgi Kodinov authored
       - moved the test into a separate file to check for presence of the test variable
      0a638f6b
  15. 04 Jul, 2008 1 commit
  16. 19 Jun, 2008 1 commit
  17. 16 May, 2008 2 commits
    • gkodinov/kgeorge@magare.gmz's avatar
      subselect.result: · d24dffc8
      gkodinov/kgeorge@magare.gmz authored
        updated the testcase for bug 36011
      d24dffc8
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #36011: server crash with explain extended on query · df3341a7
      gkodinov/kgeorge@magare.gmz authored
         with dependent subqueries
      An IN subquery is executed on EXPLAIN when it's not correlated.
      If the subquery required a temporary table for its execution
      not all the internal structures were restored from pointing to
      the items of the temporary table to point back to the items of
      the subquery.
      Fixed by restoring the ref array when a temp tables were used in
      executing the IN subquery during EXPLAIN EXTENDED.
      df3341a7
  18. 23 Apr, 2008 1 commit
  19. 21 Apr, 2008 1 commit
  20. 07 Mar, 2008 1 commit
  21. 28 Feb, 2008 1 commit
  22. 20 Feb, 2008 1 commit
  23. 12 Feb, 2008 1 commit
    • anozdrin/alik@quad.'s avatar
      Fix for Bug#32538: View definition picks up character set, · d36d243d
      anozdrin/alik@quad. authored
      but not collation.
      
      The problem here was that text literals in a view were always
      dumped with character set introducer. That lead to loosing
      collation information.
      
      The fix is to dump character set introducer only if it was
      in the original query. That is now possible because there 
      is no problem any more of loss of character set of string
      literals in views -- after WL#4052 the view is dumped 
      in the original character set.
      d36d243d
  24. 20 Jan, 2008 1 commit
  25. 18 Jan, 2008 1 commit
    • sergefp@mysql.com's avatar
      BUG#33794 "MySQL crashes executing specific query": · d56ac2f3
      sergefp@mysql.com authored
      The problem occurred when one had a subquery that had an equality X=Y where 
      Y referred to a named select list expression from the parent select. MySQL 
      crashed when trying to use the X=Y equality for ref-based access. 
      
      Fixed by allowing non-Item_field items in the described case.
      d56ac2f3
  26. 08 Jan, 2008 1 commit
    • evgen@moonbone.local's avatar
      Bug#33675: Usage of an uninitialized memory by filesort in a subquery caused · ce111a0d
      evgen@moonbone.local authored
      server crash.
      
      The filesort implementation has an optimization for subquery execution which
      consists of reusing previously allocated buffers. In particular the call to
      the read_buffpek_from_file function might be skipped when a big enough buffer
      for buffer descriptors (buffpeks) is already allocated. Beside allocating
      memory for buffpeks this function fills allocated buffer with data read from
      disk. Skipping it might led to using an arbitrary memory as fields' data and
      finally to a crash.
      
      Now the read_buffpek_from_file function is always called. It allocates
      new buffer only when necessary, but always fill it with correct data.
      ce111a0d
  27. 30 Nov, 2007 1 commit
    • tnurnberg@mysql.com/white.intern.koehntopp.de's avatar
      Bug#31177: Server variables can't be set to their current values · 31d4e58a
      Default values of variables were not subject to upper/lower bounds
      and step, while setting variables was. Bounds and step are also
      applied to defaults now; defaults are corrected quietly, values
      given by the user are corrected, and a correction-warning is thrown
      as needed. Lastly, very large values could wrap around, starting
      from 0 again. They are bounded at the maximum value for the
      respective data-type now if no lower maximum is specified in the
      variable's definition.
      31d4e58a
  28. 26 Nov, 2007 3 commits
    • evgen@moonbone.local's avatar
      Many files: · 66258ff3
      evgen@moonbone.local authored
        Test case for the bug#31048 is moved to the subselect_notembedded tests as the embedded server isn't affected by this bug.
      66258ff3
    • gkodinov/kgeorge@magare.gmz's avatar
      merge of 5.0-opt to 5.1-opt · 9ef3ed6f
      gkodinov/kgeorge@magare.gmz authored
      9ef3ed6f
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #32036: EXISTS within a WHERE clause with a UNION · 55afc5c2
      gkodinov/kgeorge@magare.gmz authored
        crashes MySQL 5.122
      There was a difference in how UNIONs are handled
      on top level and when in sub-query.
      Because the rules for sub-queries were syntactically
      allowing cases that are not currently supported by
      the server we had crashes (this bug) or wrong results
      (bug 32051).
      Fixed by making the syntax rules for UNIONs match the 
      ones at top level.
      
      These rules however do not support nesting UNIONs, e.g.
      (SELECT a FROM t1 UNION ALL SELECT b FROM t2) 
       UNION
      (SELECT c FROM t3 UNION ALL SELECT d FROM t4)
      Supports for statements with nested UNIONs will be
      added in a future version.
      55afc5c2
  29. 23 Nov, 2007 1 commit
  30. 22 Nov, 2007 1 commit
    • evgen@moonbone.local's avatar
      opt_range.cc: · 3f163915
      evgen@moonbone.local authored
        Fix for the bug#31048 for 64bit platforms.
      subselect.test, subselect.result:
        Corrected text case for the bug#31048.
      3f163915
  31. 21 Nov, 2007 2 commits
  32. 20 Nov, 2007 1 commit
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #32400: Complex SELECT query returns correct result · 846cbf3c
      gkodinov/kgeorge@magare.gmz authored
       only on some occasions
      
      Referencing an element from the SELECT list in a WHERE 
      clause is not permitted. The namespace of the WHERE
      clause is the table columns only. This was not enforced
      correctly when resolving outer references in sub-queries.
      
      Fixed by not allowing references to aliases in a 
      sub-query in WHERE.
      846cbf3c
  33. 19 Nov, 2007 1 commit
    • evgen@moonbone.local's avatar
      Bug#31048: Many nested subqueries may cause server crash. · 67cae0d4
      evgen@moonbone.local authored
      This bug is actually two. The first one manifests itself on an EXPLAIN
      SELECT query with nested subqueries that employs the filesort algorithm.
      The whole SELECT under explain is marked as UNCACHEABLE_EXPLAIN to preserve
      some temporary structures for explain. As a side-effect of this values of
      nested subqueries weren't cached and subqueries were re-evaluated many
      times. Each time buffer for filesort was allocated but wasn't freed because
      freeing occurs at the end of topmost SELECT. Thus all available memory was
      eaten up step by step and OOM event occur.
      The second bug manifests itself on SELECT queries with conditions where
      a subquery result is compared with a key field and the subquery itself also
      has such condition. When a long chain of such nested subqueries is present
      the stack overrun occur. This happens because at some point the range optimizer
      temporary puts the PARAM structure on the stack. Its size if about 8K and
      the stack is exhausted very fast.
      
      Now the subselect_single_select_engine::exec function allows subquery result
      caching when the UNCACHEABLE_EXPLAIN flag is set.
      Now the SQL_SELECT::test_quick_select function calls the check_stack_overrun
      function for stack checking purposes to prevent server crash.
      67cae0d4
  34. 10 Nov, 2007 1 commit