1. 24 Nov, 2008 2 commits
    • Georgi Kodinov's avatar
      merged bug 39656 to 5.0-bugteam · c9be1c9f
      Georgi Kodinov authored
      c9be1c9f
    • 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
  2. 21 Nov, 2008 3 commits
    • Ramil Kalimullin's avatar
      Auto-merge · bb38a57a
      Ramil Kalimullin authored
      bb38a57a
    • Sergey Glukhov's avatar
      Bug#34760 Character set autodetection appears to fail · bd6376f1
      Sergey Glukhov authored
      the problem is the same as reported in bug#20835,
      so the fix is backport of bug#20835 patch.
      
      
      mysql-test/r/subselect.result:
        test result
      mysql-test/t/subselect.test:
        test case
      bd6376f1
    • Ramil Kalimullin's avatar
      Fix for bug#36772: When using UTF8, CONVERT with GROUP BY · 39efef85
      Ramil Kalimullin authored
      returns truncated results
      
      Problem: performig conversion from {INT, DECIMAL, REAL} to CHAR
      we incorrectly set its max length in some cases that may lead
      to truncated results returned.
      
      Fix: properly set CONVERT({INT, DECIMAL, REAL}, CHAR) result's
      max length.
      
      
      mysql-test/r/ctype_utf8.result:
        Fix for bug#36772: When using UTF8, CONVERT with GROUP BY
        returns truncated results
          - test result.
      mysql-test/t/ctype_utf8.test:
        Fix for bug#36772: When using UTF8, CONVERT with GROUP BY
        returns truncated results
          - test case.
      sql/item_timefunc.cc:
        Fix for bug#36772: When using UTF8, CONVERT with GROUP BY
        returns truncated results
          - calculating Item_char_typecast::max_length use initial
        argument's charset mbmaxlen instead of from_cs->mbmaxlen,
        as from_cs may differ in some case (see comment above).
      39efef85
  3. 20 Nov, 2008 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug#40875: Memory leak in FEDERATED handler · 1cd8b9f7
      Ramil Kalimullin authored
      Problem: memory leak occurs when we open a federated table
      that has its share in the hash.
      
      Fix: free not used memory.
      
      Note: the fix should NOT be merged to 5.1 (the code changed).
      
      
      sql/ha_federated.cc:
        Fix for bug#40875: Memory leak in FEDERATED handler
          - free memory (tmp_share.scheme) allocated in the parse_url()
        if it isn't used anymore.
      1cd8b9f7
  4. 18 Nov, 2008 1 commit
  5. 17 Nov, 2008 1 commit
    • Alexey Botchkov's avatar
      Bug#31616 div_precision_increment description looks wrong · 88a88636
      Alexey Botchkov authored
      Item_func_div didn't calculate the precision of the result properly.
        The result of 5/0.0001 is 5000 so we have to add decimals of the divisor
        to the planned precision.
      
      per-file comments:
        mysql-test/r/type_newdecimal.result
      Bug#31616 div_precision_increment description looks wrong
          test result fixed
      
        mysql-test/t/type_newdecimal.test
      Bug#31616 div_precision_increment description looks wrong
          test case
      
        sql/item_func.cc
      Bug#31616 div_precision_increment description looks wrong
          precision must be increased with args[1]->decimals parameter
      88a88636
  6. 14 Nov, 2008 3 commits
    • Gleb Shchepa's avatar
      Bug #40021: Renaming view fails, archived .frm for view is · 56b9586f
      Gleb Shchepa authored
                  missing after downgrade
      
      Obsolete arc/ directory and view .frm file backup support
      has been removed by the patch for bug 17823. However, that
      bugfix caused a problem with "live downgrades" of the
      server: if we rename some view 4 times under 5.1.29/5.0.72
      and then try to rename it under 5.1.28/5.0.70 on the same
      database, the server fails with a error:
      
        query 'RENAME TABLE ... TO ...' failed: 6: Error on
        delete of '....frm-0001' (Errcode: 2)
      
      Also .frm file of that view may be lost (renamed to .frm~).
      
      The server failed because it tried to rename latest 3
      backup .frm files renaming the view: the server used an
      integer value of the "revision" field of .frm file to
      extract those file names. After the fix for bug 17823 those
      files were not created/maintained any more, however the
      "revision" field was incremented as usual. So, the server
      failed renaming non existent files.
      
      This fix solves the problem by removing the support for
      "revision" .frm file field:
      1. New server silently ignores existent "revision" fields
         in old .frm files and never write it down;
      2. Old server assumes, that missing "revision" field in new
         .frm files means default value of 0.
      3. Accordingly to the fix for bug 17823 the new server
         drops arc/ directory on alter/rename view, so after
         "live downgrade" old server begins maintenance of the
         arc/ directory from scratch without conflicts with .frm
         files.
      
      
      sql/parse_file.cc:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        1. static write_parameter(): the old_version parameter
           and the section for FILE_OPTIONS_REV have been re moved.
        2. write_parameter(): the max_versions parameter has been
           removed;
        3. sql_create_definition_file(): removal of dead code;
        4. rename_in_schema_file(): revision and num_view_backups
           parameters and dead code have been removed;
        5. File_parser::parse(): FILE_OPTIONS_REV section has been
           removed.
      sql/parse_file.h:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        1. The FILE_OPTIONS_REV constant has been removed.
        2. sql_create_definition_file and rename_in_schema_file
           functions: obsolete versions, revision and
           num_view_backups parameters have been removed.
      sql/sql_db.cc:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        Commentary update.
      sql/sql_trigger.cc:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        sql_create_definition_file() calls have been updates to
        new parameter lists.
      sql/sql_view.cc:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        1. The mysql_create_view function code is used for both
           CREATE VIEW and ALTER queries, but query cache is
           necessary for ALTER command only. Check for a non first
           view revision has been replaced with a direct check for
           ALTER query.
        2. The num_view_backups global constant has been removed.
        3. view_parameters: the "revision" .frm field support has
           been removed.
        4. sql_create_definition_file and rename_in_schema_file
           function calls have been updates to new parameter lists.
      sql/table.h:
        Bug #40021: Renaming view fails, archived .frm for view is
                    missing after downgrade
        
        TABLE_LIST: the revision field has been removed.
      56b9586f
    • Ramil Kalimullin's avatar
      Test case for bug #34774: key prefix on text field in federated · dbc062bf
      Ramil Kalimullin authored
      tables can cause server to crash!
      
      The bug will be fixed by patch for #34779: "crash in checksum table
      on federated tables with blobs containing nulls"
      
      Only a test case commited.
      
      
      mysql-test/r/federated.result:
        Test case for bug #34774: key prefix on text field in federated 
        tables can cause server to crash!
          - test result.
      mysql-test/t/federated.test:
        Test case for bug #34774: key prefix on text field in federated 
        tables can cause server to crash!
          - test case.
      dbc062bf
    • Ramil Kalimullin's avatar
      Fix for bug#37527: mysqlcheck fails to report entire database · e3de8d36
      Ramil Kalimullin authored
      when InnoDB frm file corruption
      
      Problem: mysqlcheck runs 'SHOW FULL TABLE' queries to get table lists.
      The query may fail for some reasons (e.g. null .frm file) then
      mysqlcheck doesn't process the database tables.
      
      Fix: try to run 'SHOW TABLES' if 'SHOW FULL TABLES' failed.
      
      
      client/mysqlcheck.c:
        Fix for bug#37527: mysqlcheck fails to report entire database 
        when InnoDB frm file corruption
          - run "SHOW TABLES" query if "SHOW /*!50002 FULL*/ TABLES" failed;
          - print error info if both failed.
      mysql-test/r/mysqlcheck.result:
        Fix for bug#37527: mysqlcheck fails to report entire database 
        when InnoDB frm file corruption
          - test result.
      mysql-test/t/mysqlcheck.test:
        Fix for bug#37527: mysqlcheck fails to report entire database 
        when InnoDB frm file corruption
          - test case.
      e3de8d36
  7. 13 Nov, 2008 2 commits
  8. 11 Nov, 2008 1 commit
    • Sergey Vojtovich's avatar
      BUG#38842 - Fix for 25951 seems incorrect · ab9ecae4
      Sergey Vojtovich authored
      With fix for bug 25951 index hints are ignored for fulltext
      searches, as handling of fulltext indexes is different from
      handling regular indexes. Meaning it is not possible to
      implement true index hints support for fulltext indexes within
      the scope of current fulltext architecture.
      
      The problem is that prior to fix for bug 25951, some useful
      index hints still could be given for boolean mode searches.
      
      This patch implements special index hints support for fulltext
      indexes with the following characteristics:
      - all index hints are still ignored for NLQ mode searches -
        it cannot work without an index;
      - for 5.1 and up index hints FOR ORDER BY and FOR GROUP BY are
        still ignored for fulltext indexes;
      - boolean mode searches honor USE/FORCE/IGNORE INDEX hints;
      - as opposed to index hints for regular indexes, index hints
        for fulltext BOOLEAN mode searches affect the usage of the
        index for the whole query.
      
      mysql-test/r/fulltext.result:
        A test case for BUG#38842.
      mysql-test/t/fulltext.test:
        A test case for BUG#38842.
      sql/item_func.cc:
        For boolean mode searches, which can work without fulltext
        index, use keys_in_use_for_query bitmap instead of keys_in_use.
        
        The effect is that boolean mode searches now honor index hints.
      ab9ecae4
  9. 10 Nov, 2008 1 commit
  10. 06 Nov, 2008 4 commits
  11. 03 Nov, 2008 1 commit
  12. 31 Oct, 2008 1 commit
  13. 27 Oct, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#39040 valgrind errors/crash when creating views with binlog logging enabled · 380f1a84
      Sergey Glukhov authored
      A string buffers which were included in the 'view' data structure
      were allocated on the stack, causing an invalid pointer when used
      after the function returned.
      The fix: use copy of values for view->md5 & view->queries
      
      
      mysql-test/r/view.result:
        test result
      mysql-test/t/view.test:
        test case
      sql/sql_view.cc:
        A string buffers which were included in the 'view' data structure
        were allocated on the stack, causing an invalid pointer when used
        after the function returned.
        The fix: use copy of values for view->md5 & view->queries
      380f1a84
  14. 26 Oct, 2008 2 commits
  15. 24 Oct, 2008 3 commits
    • unknown's avatar
      Raise version number after cloning 5.0.72 · 408523b7
      unknown authored
      408523b7
    • Sergey Petrunia's avatar
      Merge · d5202ddd
      Sergey Petrunia authored
      d5202ddd
    • Sergey Petrunia's avatar
      BUG#38072: Wrong result: HAVING not observed in a query with aggregate · 844797c4
      Sergey Petrunia authored
      - Make send_row_on_empty_set() return FALSE when simplify_cond() has found out
        that HAVING is always FALSE
      re-committing to put the fix into 5.0 and 5.1
      
      mysql-test/r/group_by.result:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Testcase
      mysql-test/t/group_by.test:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Testcase
      sql/sql_select.h:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Make send_row_on_empty_set() return FALSE when simplify_cond() has found out
          that HAVING is always FALSE
      844797c4
  16. 23 Oct, 2008 4 commits
  17. 21 Oct, 2008 4 commits
    • Davi Arnaut's avatar
      Post-merge fix: drop table at the end of test. · 07b7261a
      Davi Arnaut authored
      mysql-test/r/xa.result:
        Update test case result.
      mysql-test/t/xa.test:
        Drop table used for test.
      07b7261a
    • Davi Arnaut's avatar
      Bug#28323: Server crashed in xid cache operations · 41dd7b6b
      Davi Arnaut authored
      The problem was that the server did not robustly handle a
      unilateral roll back issued by the Resource Manager (RM)
      due to a resource deadlock within the transaction branch.
      By not acknowledging the roll back, the server (TM) would
      eventually corrupt the XA transaction state and crash.
      
      The solution is to mark the transaction as rollback-only
      if the RM indicates that it rolled back its branch of the
      transaction.
      
      mysql-test/r/xa.result:
        Add test case result for Bug#28323
      mysql-test/t/xa.test:
        Add test case for Bug#28323
      sql/handler.cc:
        Reset XID only at the end of the global transaction.
      sql/share/errmsg.txt:
        Add new error codes.
      sql/sql_class.h:
        Remember the error reported by the Resource Manager.
      sql/sql_parse.cc:
        Rollback the transaction if the Resource Manager reported
        a error and rolled back its branch of the transaction.
      41dd7b6b
    • Davi Arnaut's avatar
      Bug#28323: Server crashed in xid cache operations · 9ad8d644
      Davi Arnaut authored
      The problem was that the server did not robustly handle a
      unilateral roll back issued by the Resource Manager (RM)
      due to a resource deadlock within the transaction branch.
      By not acknowledging the roll back, the server (TM) would
      eventually corrupt the XA transaction state and crash.
      
      The solution is to mark the transaction as rollback-only
      if the RM indicates that it rolled back its branch of the
      transaction.
      
      mysql-test/r/xa.result:
        Add test case result for Bug#28323
      mysql-test/t/xa.test:
        Add test case for Bug#28323
      sql/handler.cc:
        Reset XID only at the end of the global transaction.
      sql/share/errmsg.txt:
        Add new error codes.
      sql/sql_class.h:
        Remember the error reported by the Resource Manager.
      sql/sql_parse.cc:
        Rollback the transaction if the Resource Manager reported
        a error and rolled back its branch of the transaction.
      9ad8d644
    • unknown's avatar
      Merge from mysql-5.0.70-release · 4927d707
      unknown authored
      4927d707
  18. 20 Oct, 2008 2 commits
  19. 17 Oct, 2008 2 commits
    • Georgi Kodinov's avatar
      Bug #33811: Call to stored procedure with SELECT * / RIGHT JOIN · 697b2839
      Georgi Kodinov authored
      fails after the first time
        
      Two separate problems : 
        1. When flattening joins the linked list used for name resolution 
        (next_name_resolution_table) was not updated.
        Fixed by updating the pointers when extending the table list
        
        2. The items created by expanding a * (star) as a column reference
        were marked as fixed, but no cached table was assigned to them 
        (unlike what Item_field::fix_fields does).
        Fixed by assigning a cached table (so the re-preparation is done
        faster).
        
      Note that the fix for #2 hides the fix for #1 in most cases
      (except when a table reference cannot be cached).
      
      mysql-test/r/sp.result:
        Bug #33811: test case
      mysql-test/t/sp.test:
        Bug #33811: test case
      sql/sql_base.cc:
        Bug #33811: cache the table for Item_fields created by expanding '*'
      sql/sql_select.cc:
        Bug #33811: maintain a correct name resolution chain when
        flattening joins.
      697b2839
    • Georgi Kodinov's avatar
      merged 5.0-bugteam -> bug 39958 · 0f678ee6
      Georgi Kodinov authored
      0f678ee6
  20. 16 Oct, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #39844: Query Crash Mysql Server 5.0.67 · b5917934
      Gleb Shchepa authored
      Server crashed during a sort order optimization
      of a dependent subquery:
      
      SELECT
          (SELECT t1.a FROM t1, t2
            WHERE t1.a = t2.b AND t2.a = t3.c
            ORDER BY t1.a)
        FROM t3;
      
      
      Bitmap of tables, that the reference to outer table
      column uses, in addition to the regular table bit
      has the OUTER_REF_TABLE_BIT bit set.
      The only_eq_ref_tables function traverses this map
      bit by bit simultaneously with join->map2table list.
      Obviously join->map2table never contains an entry
      for the OUTER_REF_TABLE_BIT pseudo-table, so the
      server crashed there.
      
      
      The only_eq_ref_tables function has been modified
      to traverse regular table bits only like the
      update_depend_map function (resetting of the
      OUTER_REF_TABLE_BIT there is enough, but
      resetting of the whole set of PSEUDO_TABLE_BITS
      is used there for sure).
      
      
      mysql-test/r/order_by.result:
        Added test case for bug #39844.
      mysql-test/t/order_by.test:
        Added test case for bug #39844.
      sql/sql_select.cc:
        Bug #39844: Query Crash Mysql Server 5.0.67
        
        The only_eq_ref_tables function has been modified
        to traverse regular table bits only like the
        update_depend_map function (resetting of the
        OUTER_REF_TABLE_BIT there is enough, but
        resetting of the whole set of PSEUDO_TABLE_BITS
        is used there for sure).
      b5917934