1. 05 Nov, 2009 13 commits
  2. 03 Nov, 2009 3 commits
    • Kristofer Pettersson's avatar
    • Vladislav Vaintroub's avatar
      merge · 72a5aefb
      Vladislav Vaintroub authored
      72a5aefb
    • Vladislav Vaintroub's avatar
      Bug #47423 mtr connects to wrong database · 9b1284db
      Vladislav Vaintroub authored
      The reason for the bug is that mysqtest as well as other client tools
      running in test suite (mysqlbinlog, mysqldump) will first try to connect 
      whatever database has created shared memory with default base name 
      "MySQL" and use this. (Same effect could be seen on Unix if mtr would
      not care to calculate "port" and "socket" parameter).
            
      The fix ensures that all client tools and  running in mtr use unique  
      per-database shared memory base parameters, so there is no possibility
      to clash with already installed one. We use socket name for shared memory 
      base (it's known to be unique). This shared-memory-base is written to the
      MTR config file to the [client] and [mysqld] sections. Fix made also made 
      sure all client tools understand and correctly handle --shared-memory-base.
      Prior to this patch  it was not the case for  mysqltest, mysqlbinlog and 
      mysql_client_test.
            
      All new connections done from mtr scripts via connect() will by default 
      set shared-memory-base. And finally, there is a possibility to force 
      shared memory or pipe connection and overwrite shared memory/pipe base name
      from within mtr scripts via optional PIPE or SHM modifier. This functionality
      was manually backported from 6.0
      (original patch  http://lists.mysql.com/commits/74749)
      9b1284db
  3. 02 Nov, 2009 8 commits
    • Vladislav Vaintroub's avatar
      Bug#47571: idle named pipe connection is unkillable · 57d5db91
      Vladislav Vaintroub authored
      Bug#31621: Windows server hanging during shutdown using named pipes 
                 and idle connection
                  
      Problem: when idle pipe connection is forcefully closed with KILL
      statement or when the server goes down, thread that is closing connection
      would hang infinitely in CloseHandle(). The reason for the hang is that 
      named pipe operations are performed synchronously. In this mode all IOs
      on pipe are serialized, that is CloseHandle() will not abort ReadFile() 
      in another thread, but wait for ReadFile() to complete.
                  
      The fix implements asynchrnous mode for named pipes, where operation of file
      are not synchronized. Read/Write operation would fire an async IO and wait for
      either IO completion or timeout.
                  
      Note, that with this patch timeouts are properly handled for named pipes.
            
      Post-review: Win32 timeout code has been fixed for named pipes and shared
      memory. We do not store pointer to NET in vio structure, only the read and 
      write timeouts.
      
      
      include/violite.h:
        Add pipe_overlapped to Vio structure for async IO for named pipes.
      sql-common/client.c:
        Use asynchronous pipe IO.
      sql/mysqld.cc:
        Use asynchronous pipe IO.
      vio/vio.c:
        -Refactor timeouts for win32 protocols: shared memory and named pipes.
        Store read/write timeout in VIO structure, instead of storing pointer
        to NET. New function vio_win32_timeout called indirectly via 
        vio_timeout changes these values.
      vio/vio_priv.h:
        Remove vio_ignore_timeout.
        Add vio_win32_timeout to be used for named pipes and shared memory.
      vio/viosocket.c:
        Use async IO for named pipes.
        After issuing IO, wait for either IO completion, pipe_close_event
        or timeout.
                
        Refactor timeouts for named pipe and shared memory.
      57d5db91
    • Davi Arnaut's avatar
      Automerge. · f019b556
      Davi Arnaut authored
      f019b556
    • Davi Arnaut's avatar
      Bug#44952: Ndbd file system inconsistency error · de172cea
      Davi Arnaut authored
      Backport a ndb patch: fix bug with crash during restart, where
      a mbyte incorrectly could be skipped, leading to "end of log
      wo/ finding gci".
      de172cea
    • Luis Soares's avatar
    • Luis Soares's avatar
    • Martin Hansson's avatar
      Bug#47925: regression of range optimizer and date comparison in 5.1.39! · 4f79bd5d
      Martin Hansson authored
      When a query was using a DATE or DATETIME value formatted
      using any other separator characters beside hyphen '-', a
      query with a greater-or-equal '>=' condition matching only
      the greatest value in an indexed column, the result was
      empty if index range scan was employed.
      
      The range optimizer got a new feature between 5.1.38 and
      5.1.39 that changes a greater-or-equal condition to a
      greater-than if the value matching that in the query was not
      present in the table. But the value comparison function
      compared the dates as strings instead of dates.
      
      The bug was fixed by splitting the function
      get_date_from_str in two: One part that parses and does
      error checking. This function is now visible outside the
      module. The old get_date_from_str now calls the new
      function.
      
      
      mysql-test/r/range.result:
        Bug#47925: Test result
      mysql-test/t/range.test:
        Bug#47925: Test case
      sql/item.cc:
        Bug#47925: Fix + some edit on the comments
      sql/item.h:
        Bug#47925: Changed function signature
      sql/item_cmpfunc.cc:
        Bug#47925: Split function in two
      sql/item_cmpfunc.h:
        Bug#47925: Declaration of new function
      sql/opt_range.cc:
        Bug#47925: Added THD to function call
      sql/time.cc:
        Bug#47925: Added microsecond comparison
      4f79bd5d
    • Davi Arnaut's avatar
      Automerge. · cdd05d81
      Davi Arnaut authored
      cdd05d81
    • Tatiana A. Nurnberg's avatar
      auto-merge · ea0f2cff
      Tatiana A. Nurnberg authored
      ea0f2cff
  4. 01 Nov, 2009 1 commit
  5. 31 Oct, 2009 2 commits
  6. 30 Oct, 2009 12 commits
    • Alexey Kopytov's avatar
      Automerge. · da033863
      Alexey Kopytov authored
      da033863
    • Alexey Kopytov's avatar
      Automerge. · 31bcbcb3
      Alexey Kopytov authored
      31bcbcb3
    • Alexey Kopytov's avatar
      Automerge. · 559cea69
      Alexey Kopytov authored
      559cea69
    • Alexey Kopytov's avatar
      Automerge. · c441a13b
      Alexey Kopytov authored
      c441a13b
    • Alexey Kopytov's avatar
      Bug #48131: crash group by with rollup, distinct, filesort, · bbca373e
      Alexey Kopytov authored
                  with temporary tables
      
      There were two problems the test case from this bug was
      triggering:
      
      1. JOIN::rollup_init() was supposed to wrap all constant Items
      into another object for queries with the WITH ROLLUP modifier
      to ensure they are never considered as constants and therefore
      are written into temporary tables if the optimizer chooses to
      employ them for DISTINCT/GROUP BY handling.
      
      However, JOIN::rollup_init() was called before
      make_join_statistics(), so Items corresponding to fields in
      const tables could not be handled as intended, which was
      causing all kinds of problems later in the query execution. In
      particular, create_tmp_table() assumed all constant items
      except "hidden" ones to be removed earlier by remove_const()
      which led to improperly initialized Field objects for the
      temporary table being created. This is what was causing crashes
      and valgrind errors in storage engines.
      
      2. Even when the above problem had been fixed, the query from
      the test case produced incorrect results due to some
      DISTINCT/GROUP BY optimizations being performed by the
      optimizer that are inapplicable in the WITH ROLLUP case.
      
      Fixed by disabling inapplicable DISTINCT/GROUP BY optimizations
      when the WITH ROLLUP modifier is present, and splitting the
      const-wrapping part of JOIN::rollup_init() into a separate
      method which is now invoked after make_join_statistics() when
      the const tables are already known.
      
      mysql-test/r/olap.result:
        Added a test case for bug #48131.
      mysql-test/t/olap.test:
        Added a test case for bug #48131.
      sql/sql_select.cc:
        1. Disabled inapplicable DISTINCT/GROUP BY optimizations when
        the WITH ROLLUP modifier is present.
        2. Split the const-wrapping part of JOIN::rollup_init() into a
        separate method.
      sql/sql_select.h:
        Added rollup_process_const_fields() declaration.
      bbca373e
    • Georgi Kodinov's avatar
      merge · c9ca2707
      Georgi Kodinov authored
      c9ca2707
    • Georgi Kodinov's avatar
      merge from 5.0-main · 0ea2f572
      Georgi Kodinov authored
      0ea2f572
    • Georgi Kodinov's avatar
      merge · 7ccea019
      Georgi Kodinov authored
      7ccea019
    • Georgi Kodinov's avatar
      Bug #48291 : crash with row() operator,select into @var, and · 16d0f7f9
      Georgi Kodinov authored
        subquery returning multiple rows
      
      Error handling was missing when handling subqueires in WHERE 
      and when assigning a SELECT result to a @variable.
      This caused crash(es). 
      
      Fixed by adding error handling code to both the WHERE 
      condition evaluation and to assignment to an @variable.
      16d0f7f9
    • Georgi Kodinov's avatar
      merge · 17659be5
      Georgi Kodinov authored
      17659be5
    • Georgi Kodinov's avatar
      Bug #48293: crash with procedure analyse, view with > 10 columns, · fc80944c
      Georgi Kodinov authored
      having clause...
      
      The fix for bug 46184 was not very complete. It was not covering
      views using temporary tables and multiple tables in a FROM clause.
      Fixed by reverting the fix for 46184 and making a more general
      check that is checking at the right execution stage and for all
      of the non-supported cases.
      Now PROCEDURE ANALYZE on non-top level SELECT is also forbidden.
      Updated the analyse.test and subselect.test accordingly.
      fc80944c
    • Georgi Kodinov's avatar
      merge · cd804d90
      Georgi Kodinov authored
      cd804d90
  7. 29 Oct, 2009 1 commit
    • Tatiana A. Nurnberg's avatar
      Bug#48295: explain extended crash with subquery and ONLY_FULL_GROUP_BY sql_mode · 2a03cf3d
      Tatiana A. Nurnberg authored
      If an outer query is broken, a subquery might not even get set up.
      EXPLAIN EXTENDED did not expect this and merrily tried to de-ref all
      of the half-setup info.
      
      We now catch this case and print as much as we have, as it doesn't cost us
      anything (doesn't make regular execution slower).
      
      mysql-test/r/explain.result:
        Show that EXPLAIN EXTENDED with subquery and illegal out query doesn't crash.
        Show also that SHOW WARNINGS will render an additional Note in the hope of
        being, well, helpful.
      mysql-test/t/explain.test:
        If we have only half a query for EXPLAIN EXTENDED to print (i.e.,
        incomplete subquery info as outer query is illegal), we should
        provide the user with as much info as we easily can if they ask
        for it. What we should not do is crash when they come asking for
        help, that violates etiquette in some countries.
      sql/item_subselect.cc:
        If the sub-query's actually set up, print it. Otherwise, elide.
      2a03cf3d