1. 24 Oct, 2006 1 commit
    • unknown's avatar
      Bug #21809: Error 1356 while selecting from view with grouping though underlying · bf3ff2ea
      unknown authored
                  select OK.
      The SQL parser was using Item::name to transfer user defined function attributes
      to the user defined function (udf). It was not distinguishing between user defined 
      function call arguments and stored procedure call arguments. Setting Item::name 
      was causing Item_ref::print() method to print the argument as quoted identifiers 
      and caused views that reference aggregate functions as udf call arguments (and 
      rely on Item::print() for the text of the view to store) to throw an undefined 
      identifier error.
      Overloaded Item_ref::print to print aggregate functions as such when printing
      the references to aggregate functions taken out of context by split_sum_func2()
      Fixed the parser to properly detect using AS clause in stored procedure arguments
      as an error.
      Fixed printing the arguments of udf call to print properly the udf attribute.
      
      
      mysql-test/r/udf.result:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - test cases
      mysql-test/t/udf.test:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - test cases
      sql/item.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - Don't print the refs to SUM functions as refs.
      sql/item_func.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - print the aliases in the udf calls
      sql/item_func.h:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - print the aliases in the udf calls
      sql/sql_lex.cc:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
      sql/sql_lex.h:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
      sql/sql_yacc.yy:
        Bug #21809: Error 1356 while selecting from view with grouping though underlying
                    select OK.
         - disable aliases for arguments in stored routine calls
         - fix bison duplicate symbol warnings
      bf3ff2ea
  2. 16 Oct, 2006 6 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 5207d860
      unknown authored
      into  rakia.(none):/home/kgeorge/mysql/autopush/B22342-5.0-opt
      
      
      sql/opt_range.cc:
        Auto merged
      5207d860
    • unknown's avatar
      Bug #22342: No results returned for query using max and group by · 1d3a5f57
      unknown authored
       When using index for group by and range access the server isolates    
       a set of ranges based on the conditions over the key parts of the
       index used. Then it uses only the ranges over the GROUP BY fields to
       jump from one group to another. Since the GROUP BY fields may form a
       prefix over the index, we may use only a prefix of the ranges produced
       by the range optimizer.
       Each range contains a notion on whether it includes its border values.
       The problem is that when using a range prefix, the last range is open
       because it assumes that there is a range on the next keypart. Thus when
       we use a prefix range as it is, it excludes all border values.
       The solution is when ignoring the suffix of the range conditions 
       (to jump over the GROUP BY prefix only) the server must change the 
       remaining intervals so they always contain their borders, e.g. 
       if the whole range was :
       (1,-inf) <= (<group_by_col>,<min_max_arg_col>) < (1, 3) we must make
       (1) <= (<group_by_col>) <= (1) because (a,b) < (c1,c2) means :
       a < c1 OR (a = c1 AND b < c2).
      
      
      mysql-test/r/group_min_max.result:
        Bug #22342: No results returned for query using max and group by
         - test case
      mysql-test/t/group_min_max.test:
        Bug #22342: No results returned for query using max and group by
         - test case
      sql/opt_range.cc:
        Bug #22342: No results returned for query using max and group by
         - open the intervals for prefix select when there are more conditions
           than used for the prefix search.
      sql/opt_range.h:
        Bug #22342: No results returned for query using max and group by
         - open the intervals for prefix select when there are more conditions
           than used for the prefix search.
      1d3a5f57
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · c15fc8f4
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      
      c15fc8f4
    • unknown's avatar
      Merge update of the fix for bug 14019 in 5.0 · c7c034c5
      unknown authored
      c7c034c5
    • unknown's avatar
      Merge macbook.gmz:/Users/kgeorge/mysql/work/B14019-4.1-opt · f85e990a
      unknown authored
      into  macbook.gmz:/Users/kgeorge/mysql/work/B14019-5.0-opt
      
      
      mysql-test/r/func_gconcat.result:
        Auto merged
      mysql-test/t/func_gconcat.test:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      mysql-test/r/group_by.result:
        merge 4.1->5.0
      mysql-test/t/group_by.test:
        merge 4.1->5.0
      f85e990a
    • unknown's avatar
      BUG#14019 : group by converts literal string to column name · a885a6db
      unknown authored
         When resolving unqualified name references MySQL was not
         checking what is the item type for the reference. Thus
         e.g a string literal item that has by convention a name
         equal to its string value will also work as a reference to 
         a SELECT list item or a table field.
         Fixed by allowing only Item_ref or Item_field to referenced by
         (unqualified) name.
      
      
      mysql-test/r/func_gconcat.result:
        Bug #14019: group by converts literal string to column name
         - removed undeterministic testcase : order by a constant 
           means no order.
      mysql-test/r/group_by.result:
        Bug #14019: group by converts literal string to column name
         - test case
      mysql-test/t/func_gconcat.test:
        Bug #14019: group by converts literal string to column name
         - removed undeterministic testcase : order by a constant 
           means no order.
      mysql-test/t/group_by.test:
        Bug #14019: group by converts literal string to column name
         - test case
      sql/sql_base.cc:
        Bug #14019: group by converts literal string to column name
         - resolve unqualified by name refs only for real references
      a885a6db
  3. 13 Oct, 2006 1 commit
    • unknown's avatar
      Bug#14959: ALTER TABLE isn't able to rename a view · 5e587558
      unknown authored
      The mysql_alter_table() was able to rename only a table.
      
      The view/table renaming code is moved from the function rename_tables 
      to the new function called do_rename().
      The mysql_alter_table() function calls it when it needs to rename a view.
      
      
      mysql-test/t/rename.test:
        Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
      mysql-test/r/rename.result:
        Added a test case for bug#14959: ALTER TABLE isn't able to rename a view
      sql/mysql_priv.h:
        Bug#14959: ALTER TABLE isn't able to rename a view
        Added the prototype of the do_rename() function.
      sql/sql_rename.cc:
        Bug#14959: ALTER TABLE isn't able to rename a view
        The view/table renaming code is moved from the function rename_tables
        to the new function called do_rename().
      sql/sql_table.cc:
        Bug#14959: ALTER TABLE isn't able to rename a view
        Added handling of a view rename to the mysql_alter_table() function.
      5e587558
  4. 11 Oct, 2006 1 commit
    • unknown's avatar
      Bug#22138: Unhandled NULL caused server crash · 09cfff5f
      unknown authored
      The Cached_item_decimal::cmp() method wasn't checking for null pointer
      returned from the val_decimal() of the item being cached.
      This leads to server crash.
      
      The Cached_item_decimal::cmp() method now check for null values.
      
      
      sql/item_buff.cc:
        Bug#22138: Unhandled NULL caused server crash
        The Cached_item_decimal::cmp() method now check for null values.
      mysql-test/r/type_decimal.result:
        Added the test case for bug#22138: Unhandled NULL caused server crash
      mysql-test/t/type_decimal.test:
        Added the test case for bug#22138: Unhandled NULL caused server crash
      09cfff5f
  5. 09 Oct, 2006 2 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · b7e4fe3b
      unknown authored
      into  macbook.local:/Users/kgeorge/mysql/work/B22781-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      b7e4fe3b
    • unknown's avatar
      Bug #22781: SQL_BIG_RESULT fails to influence sort plan · 16a0344a
      unknown authored
       Currently SQL_BIG_RESULT is checked only at compile time.
       However, additional optimizations may take place after
       this check that change the sort method from 'filesort'
       to sorting via index. As a result the actual plan
       executed is not the one specified by the SQL_BIG_RESULT
       hint. Similarly, there is no such test when executing
       EXPLAIN, resulting in incorrect output.
       The patch corrects the problem by testing for
       SQL_BIG_RESULT both during the explain and execution
       phases.
      
      
      mysql-test/r/bdb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/group_by.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/r/innodb.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/r/innodb_mysql.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      mysql-test/r/myisam.result:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - updated sql_big_result testcase
      mysql-test/t/group_by.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with MyISAM
      mysql-test/t/innodb_mysql.test:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - test case with InnoDB
      sql/sql_select.cc:
        Bug #22781: SQL_BIG_RESULT fails to influence sort plan
         - When SQL_BIG_RESULT is specified, disable the optimization performed
        at execution/explain time that decides to use an index instead
        of filesort.
      16a0344a
  6. 01 Oct, 2006 3 commits
  7. 29 Sep, 2006 7 commits
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 69ae4a76
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/r/select.result:
        Manual merge
      mysql-test/t/select.test:
        Manual merge
      69ae4a76
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7547788a
      unknown authored
      into  moonbone.local:/work/20503-bug-5.0-mysql
      
      
      sql/sql_select.cc:
        Auto merged
      7547788a
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0-opt · 789fea36
      unknown authored
      into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug22753
      
      789fea36
    • unknown's avatar
      Fixed bug #22753. · 0475bb7b
      unknown authored
      After the patch for big 21698 equality propagation stopped
      working for BETWEEN and IN predicates with STRING arguments.
      This changeset completes the solution of the above patch.
      
      
      mysql-test/r/select.result:
        Added a test case for bug #22735.
      mysql-test/t/select.test:
        Added a test case for bug #22735.
      sql/item_cmpfunc.h:
        Fixed bug #22753.
        After the patch for big 21698 equality propagation stopped
        working for BETWEEN and IN predicates with STRING arguments.
        This changeset completes the solution of the above patch.
        
        Added an implementation of the subst_argument_checker method
        for Item_func_opt_neg (the direct ancestor of Item_func_between
        and Item_func_in) which allows equality propagation for
        BETWEEN and IN predicates.
      0475bb7b
    • unknown's avatar
      Merge mysql.com:/home/hf/work/21888/my41-21888 · 4de46b74
      unknown authored
      into  mysql.com:/home/hf/work/21888/my50-21888
      
      
      myisam/mi_range.c:
        Auto merged
      mysql-test/r/gis-rtree.result:
        Auto merged
      mysql-test/t/gis-rtree.test:
        Auto merged
      4de46b74
    • unknown's avatar
      bug #21888 (Query on GEOMETRY field crashes the server) · 3950ce57
      unknown authored
      RTree keys are really different from BTree and need specific
      paramters to be set by optimizer to work.
      Sometimes optimizer doesn't set those properly.
      Here we decided just to add code to check that the parameters
      are correct. Hope to fix optimizer sometimes.
      
      
      myisam/mi_range.c:
        return the error if min_key is NULL
      mysql-test/r/gis-rtree.result:
        test result
      mysql-test/t/gis-rtree.test:
        test case
      3950ce57
    • unknown's avatar
      bug #16813 (WITH CHECK OPTION fails with UPDATE) · b0a8acab
      unknown authored
      We use the condition from CHECK OPTION twice handling UPDATE command.
      First we construnct 'update_cond' AND 'option_cond'
      condition to select records to be updated, then we check the
      'option_cond' for the updated row.
      The problem is that first 'AND' condition is optimized during the 'select'
      which can break 'option_cond' structure, so it will be unusable for
      the sectond use - to check the updated row.
      Possible soultion is either use copy of the condition in the first
      use or to make optimization less traumatic for the operands.
      I picked the first one. 
      
      
      mysql-test/r/view.result:
        result fixed
      mysql-test/t/view.test:
        testcase
      sql/table.cc:
        now we use the copy of the CHECK OPTION condition to construct
        the select's condition
      b0a8acab
  8. 28 Sep, 2006 7 commits
    • unknown's avatar
      view.test: · 669d8a6f
      unknown authored
        After merge fix
      
      
      mysql-test/t/view.test:
        After merge fix
      669d8a6f
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 024f93c5
      unknown authored
      into  moonbone.local:/work/5505-bug-5.0-opt-mysql
      
      
      sql/share/errmsg.txt:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      mysql-test/r/view.result:
        Manual merge
      mysql-test/t/view.test:
        Manual merge
      024f93c5
    • unknown's avatar
      Fixed bug#5505: Wrong error message on INSERT into a view · 9cf17a35
      unknown authored
      On an INSERT into an updatable but non-insertable view an error message was
      issued stating the view being not updatable. This can lead to a confusion of a
      user.
      
      A new error message is introduced. Is is showed when a user tries to insert
      into a non-insertable view.
      
      
      sql/sql_base.cc:
        Fixed bug#5505: Wrong error message on INSERT into a view
        The update_non_unique_table_error() function now issues proper
        error for an INSERT.
      sql/sql_insert.cc:
        Fixed bug#5505: Wrong error message on INSERT into a view
        Issue the ER_NON_INSERTABLE_TABLE error instead of the 
        ER_NON_UPDATABLE_TABLE on insert into a view.
      sql/sql_view.cc:
        Fixed bug#5505: Wrong error message on INSERT into a view
        Issue the ER_NON_INSERTABLE_TABLE error instead of the
        ER_NON_UPDATABLE_TABLE on insert into a view.
      mysql-test/r/view.result:
        Added the test case for bug#5505: Wrong error message on INSERT into a view
        Corrected a few test cases after fixing bug#5505
      mysql-test/t/view.test:
        Added the test case for bug#5505: Wrong error message on INSERT into a view
        Corrected a few test cases after fixing bug#5505
      sql/share/errmsg.txt:
        Fixed bug#5505: Wrong error message on INSERT into a view
        Added the ER_NON_INSERTABLE_TABLE error definition.
      9cf17a35
    • unknown's avatar
      Fixed bug#20503: Server crash due to the ORDER clause not taken into account · e9b82b5a
      unknown authored
      while space allocation
      
      Under some circumstances DISTINCT clause can be converted to grouping.
      In such cases grouping is performed by all items in the select list.
      If an ORDER clause is present then items from it is prepended to group list.
      But the case with ORDER wasn't taken into account when allocating the
      array for sum functions. This leads to memory corruption and crash.
      
      The JOIN::alloc_func_list() function now allocates additional space if there
      is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is
      possible.
      
      
      mysql-test/t/select.test:
        Added the test case for bug#20503: Server crash due to the ORDER clause not taken into account while space allocation
      mysql-test/r/select.result:
        Added the test case for bug#20503: Server crash due to the ORDER clause not taken into account while space allocation
      sql/sql_select.cc:
        Fixed bug#20503: Server crash due to the ORDER clause not taken into account
        while space allocation
        The JOIN::alloc_func_list() function now allocates additional space if there
        is an ORDER by clause is specified and DISTINCT -> GROUP BY optimization is
        possible.
      e9b82b5a
    • unknown's avatar
      Merge dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt · 1b744c77
      unknown authored
      into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
      
      
      sql/sql_select.cc:
        Auto merged
      1b744c77
    • unknown's avatar
      Merge dl145s.mysql.com:/data/bk/team_tree_merge/mysql-5.0 · 757c5dcf
      unknown authored
      into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-5.0-opt
      
      
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/view.test:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      757c5dcf
    • unknown's avatar
      Merge dl145s.mysql.com:/data/bk/team_tree_merge/mysql-4.1 · e2452943
      unknown authored
      into  dl145s.mysql.com:/data/bk/team_tree_merge/MERGE/mysql-4.1-opt
      
      
      sql/sql_select.cc:
        Auto merged
      e2452943
  9. 27 Sep, 2006 7 commits
  10. 26 Sep, 2006 1 commit
    • unknown's avatar
      Merge trift2.:/MySQL/M50/clone-5.0 · 67fc6bc8
      unknown authored
      into  trift2.:/MySQL/M50/push-5.0
      
      
      mysql-test/r/func_time.result:
        Null-merge, the change in the 5.0 general tree supersedes the 5.0.25 patch.
      mysql-test/r/query_cache.result:
        Auto merged
      mysql-test/r/type_date.result:
        Auto merged
      mysql-test/r/view.result:
        Null-merge, the change in the 5.0 general tree supersedes the 5.0.25 patch.
      mysql-test/t/func_time.test:
        Null-merge, the change in the 5.0 general tree supersedes the 5.0.25 patch.
      mysql-test/t/type_date.test:
        Auto merged
      mysql-test/t/view.test:
        Null-merge, the change in the 5.0 general tree supersedes the 5.0.25 patch.
      sql/item_cmpfunc.cc:
        Null-merge, the change in the 5.0 general tree supersedes the 5.0.25 patch.
      67fc6bc8
  11. 25 Sep, 2006 4 commits
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-5.0-opt · 1c17642e
      unknown authored
      into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug21646
      
      1c17642e
    • unknown's avatar
      Merge rurik.mysql.com:/home/igor/mysql-4.1-opt · 5b30853d
      unknown authored
      into  rurik.mysql.com:/home/igor/mysql-5.0-opt
      
      
      mysql-test/r/subselect.result:
        Manual merge
      mysql-test/t/subselect.test:
        Manual merge
      sql/item.cc:
        Manual merge
      5b30853d
    • unknown's avatar
      Fixed bug #21646. · fe2edf6d
      unknown authored
      Presence of a subquery in the ON expression of a join 
      should not block merging the view that contains this join.
      Before this patch the such views were converted into 
      into temporary table views.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #21646.
      mysql-test/t/view.test:
        Added a test case for bug #21646.
      sql/mysql_priv.h:
        Fixed bug #21646.
        Added a new parsing state 'IN_ON', true when
        the parser is in an ON expression of a join.
      sql/sql_lex.cc:
        Fixed bug #21646.
        Presence of a subquery in the ON expression of a join 
        should not block merging the view that contains this join.
      sql/sql_yacc.yy:
        Fixed bug #21646.
        Added a new parsing state 'IN_ON', true when
        the parser is in an ON expression of a join.
      fe2edf6d
    • unknown's avatar
      Fixed bug #21853: assert failure for a grouping query with · c492b149
      unknown authored
      an ALL/ANY quantified subquery in HAVING.
      The Item::split_sum_func2 method should not create Item_ref
      for objects of any class derived from Item_subselect.
      
      
      mysql-test/r/subselect.result:
        Added a test case for bug #21853.
      mysql-test/t/subselect.test:
        Added a test case for bug #21853.
      c492b149