1. 12 Jan, 2007 1 commit
    • unknown's avatar
      Fixed bug #25398: crash in a trigger when using trigger fields · 35e36393
      unknown authored
      in a select list.
      The objects of the Item_trigger_field class inherited the implementations
      of the methods copy_or_same, get_tmp_table_item and get_tmp_table_field
      from the class Item_field while they rather should have used the default
      implementations defined for the base class Item.
      It could cause catastrophic problems for triggers that used SELECTs
      with select list containing trigger fields such as NEW.<table column>
      under DISTINCT.
      
      
      mysql-test/r/trigger.result:
        Added a test case for bug #25398.
      mysql-test/t/trigger.test:
        Added a test case for bug #25398.
      35e36393
  2. 11 Jan, 2007 5 commits
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 0f0d0f5b
      unknown authored
      into  moonbone.local:/work/23417-bug-5.0-opt-mysql
      
      
      sql/sql_base.cc:
        Auto merged
      0f0d0f5b
    • unknown's avatar
      Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode. · 4d143a6f
      unknown authored
      Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the
      select list. To ensure this each expression in the select list is checked
      to be a constant, an aggregate function or to occur in the GROUP BY list.
      The last two requirements are wrong and doesn't allow valid expressions like
      "MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a.
      
      The correct check implemented by the patch will ensure that:
      any field reference in the [sub]expressions of the select list 
        is under an aggregate function or
        is mentioned as member of the group list or
        is an outer reference or
        is part of the select list element that coincide with a grouping element.
      
      The Item_field objects now can contain the position of the select list
      expression which they belong to. The position is saved during the
      field's Item_field::fix_fields() call.
      
      The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
      class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the
      select list of the expression being currently fixed.
      
      
      sql/item.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The Item_field objects now contain the position of the select list
        expression which they belong to. The position is saved at the field's
        Item_field::fix_fields() call.
      sql/item.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The Item_field objects now can store the position in the select list of the
        expression to which they are belongs to.
      sql/mysql_priv.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Added the UNDEF_POS constant.
      sql/sql_base.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Now the setup_fields() function maintains the cur_pos_in_select_list variable.
      sql/sql_lex.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Set the cur_pos_in_select_list variable and the non_agg_fields list to their initial state.
      sql/sql_lex.h:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
        class. The SELECT_LEX::cur_pos_in_select_list now stores the position in the
        select list of the expression being currently fixed.
      sql/sql_select.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Each select now keeps the list of fields that aren't
        used under any aggregate function. If an expression from the select list
        isn't found in the GROUP BY list the setup_group() function additionally
        checks whether non-aggregated fields occur in that expression.
        If there at least one such field and it isn't found in the GROUP BY list
        then an error is thrown.
      sql/sql_union.cc:
        Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
        Clean up of the non_agg_fields list.
      mysql-test/r/group_by.result:
        Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
      mysql-test/t/group_by.test:
        Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
      4d143a6f
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 7f9da471
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/autopush/B25106-5.0-opt
      
      
      sql/sql_base.cc:
        Auto merged
      7f9da471
    • unknown's avatar
      BUG#25106: A USING clause in combination with a VIEW results in column · 6c41a043
      unknown authored
                 aliases ignored
      When a column reference to a column in JOIN USING is resolved and a new 
      Item is created for this column the user defined name was lost.
      This fix preserves the alias by setting the name of the new Item to the
      original alias.
      
      
      mysql-test/r/join.result:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - test case
      mysql-test/t/join.test:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - test case
      sql/sql_base.cc:
        BUG#25106: A USING clause in combination with a VIEW results in column
                   aliases ignored
         - take the alias of the Item to be replaced and set it into the newly
           allocated Item.
      6c41a043
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · ce3a76a4
      unknown authored
      into  mysql.com:/d2/hf/mr10/my50-mr10
      
      
      sql/mysqld.cc:
        Auto merged
      ce3a76a4
  3. 10 Jan, 2007 9 commits
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-4.1-opt · 6943153e
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      sql/item.cc:
        Auto merged
      mysql-test/r/order_by.result:
        Manual merge
      mysql-test/t/order_by.test:
        Manual merge
      6943153e
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0 · c11c3b08
      unknown authored
      into  mysql.com:/d2/hf/mr10/my50-mr10
      
      
      c11c3b08
    • unknown's avatar
      configure.in: · 4ffd49d3
      unknown authored
        Removed line accidently inserted when correcting bug#18526
      
      
      configure.in:
        Removed line accidently inserted when correcting bug#18526
      4ffd49d3
    • unknown's avatar
      Merge mysql.com:/d2/hf/common/my50-common · 380ad35c
      unknown authored
      into  mysql.com:/d2/hf/mr10/my50-mr10
      
      
      380ad35c
    • unknown's avatar
      after merge fix · 53c9b0d0
      unknown authored
      53c9b0d0
    • unknown's avatar
      Merge mysql.com:/home/gluh/MySQL/Merge/4.1-opt · f5005095
      unknown authored
      into  mysql.com:/home/gluh/MySQL/Merge/5.0-opt
      
      
      sql/mysqld.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/mysql_priv.h:
        manual merge
      f5005095
    • unknown's avatar
      Fix for bug#20867 InnoDB Bug - create temporary table+crash => mysqld needs to clean up · ac71a8fa
      unknown authored
      2nd version
      During tmp tables cleanup we get the handler for temporary table
      and delete table using handler method.
      
      
      sql/mysql_priv.h:
        added function prototype
      sql/mysqld.cc:
        added call of mysql_rm_tmp_tables() function
      sql/sql_base.cc:
        mysql_rm_tmp_tables()
        -removed from table_cache_init
        -During tmp tables cleanup we get the handler for temporary table
         and delete table using handler method. 
         it allows to remove orphan records from data dictionary(InnoDB)
      ac71a8fa
    • unknown's avatar
      Fixed bug #25427. · 6fc17dab
      unknown authored
      In the method Item_field::fix_fields we try to resolve the name of
      the field against the names of the aliases that occur in the select
      list. This is done by a call of the function find_item_in_list.
      When this function finds several occurrences of the field name
      it sends an error message to the error queue and returns 0.
      Yet the code did not take into account that find_item_in_list
      could return 0 and tried to dereference the returned value.
      
      
      mysql-test/r/order_by.result:
        Added a test case for bug #25427.
      mysql-test/t/order_by.test:
        Added a test case for bug #25427.
      sql/item.cc:
        Fixed bug #25427.
        In the method Item_field::fix_fields we try to resolve the name of
        the field against the names of the aliases that occur in the select
        list. This is done by a call of the function find_item_in_list.
        When this function finds several occurrences of the field name 
        it sends an error message to the error queue and returns 0.
        Yet the code did not take into account that find_item_in_list
        could return 0 and tried to dereference the returned value.
      6fc17dab
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · b04652e2
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      b04652e2
  4. 09 Jan, 2007 14 commits
    • unknown's avatar
      support-files/MySQL-shared-compat.spec.sh : Dummy, irrelevant change -... · 4374848c
      unknown authored
      support-files/MySQL-shared-compat.spec.sh  :    Dummy, irrelevant change - just trigger a new build.
      
      
      support-files/MySQL-shared-compat.spec.sh:
        Dummy, irrelevant change - just trigger a new build.
      4374848c
    • unknown's avatar
      Fixed bug#16861: User defined variable can have a wrong value if a tmp table was · f094fe55
      unknown authored
      used.
      
      The Item::save_in_field() function is called from fill_record() to fill the 
      new row with data while execution of the CREATE TABLE ... SELECT statement.
      Item::save_in_field() calls val_xxx() methods in order to get values.
      val_xxx() methods do not take into account the result field. Due to this
      Item_func_set_user_var::val_xxx() methods returns values from the original
      table, not from the temporary one.
      
      The save_in_field() member function is added to the Item_func_set_user_var
      class. It detects whether the result field should be used and properly updates
      the value of the user variable.
      
      
      sql/item_func.cc:
        Bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Added the save_in_field() member function to the Item_func_set_user_var class.
      sql/item_func.h:
        Bug#16861: User defined variable can have a wrong value if a tmp table was used.
        Added the save_in_field() member function to the Item_func_set_user_var class.
      mysql-test/r/user_var.result:
        Extended the test case for bug#18681: User defined variable can have a wrong value if
        a tmp table was used.
      mysql-test/t/user_var.test:
        Extended the test case for bug#18681: User defined variable can have a wrong value if
        a tmp table was used.
      f094fe55
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 15bb22c0
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-5.0-opt
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      15bb22c0
    • unknown's avatar
      Bug#14171: Wrong internal default value for a BINARY field. · 78dff026
      unknown authored
      A BINARY field is represented by the Field_string class. The space character
      is used as the filler for unused characters in such a field. But a BINARY field 
      should use \x00 instead.
      
      Field_string:reset() now detects whether the current field is a BINARY one
      and if so uses the \x00 character as a default value filler.
      
      
      sql/field.h:
        Bug#14171: Wrong internal default value for a BINARY field.
        Field_string:reset() now detects whether the current field is a BINARY one
        and if so uses the \x00 character as a default value filler.
      mysql-test/r/type_binary.result:
        Added a test case for the bug#14171: Wrong internal default value for a BINARY field.
      mysql-test/t/type_binary.test:
        Added a test case for the bug#14171: Wrong internal default value for a BINARY field.
      78dff026
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · f831f46a
      unknown authored
      into  moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
      
      
      f831f46a
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · eca431f3
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug25027
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_cmpfunc.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      eca431f3
    • unknown's avatar
      Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010 · 29dcdbcb
      unknown authored
      into  kpdesk.mysql.com:/home/thek/dev/mysql-5.0-build
      
      
      29dcdbcb
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · 48451b86
      unknown authored
      into  mysql.com:/d2/hf/opt/my50-opt
      
      
      48451b86
    • unknown's avatar
      Merge kpdesk.mysql.com:/home/thek/dev/bug23010/my41-bug23010 · 72268a3b
      unknown authored
      into  kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010
      
      
      mysys/mf_iocache.c:
        Auto merged
      mysys/my_seek.c:
        Auto merged
      72268a3b
    • unknown's avatar
      Merge kpdesk.mysql.com:/home/thek/dev/test23010/my40-bug23010 · 7b95184a
      unknown authored
      into  kpdesk.mysql.com:/home/thek/dev/bug23010/my41-fix23010
      
      
      mysys/mf_iocache.c:
        Auto merged
      mysys/my_seek.c:
        Auto merged
      7b95184a
    • unknown's avatar
      Cset exclude: thek@kpdesk.mysql.com|ChangeSet|20061106104152|07628 · d7e9fd07
      unknown authored
      
      mysys/mf_iocache.c:
        Exclude
      mysys/my_seek.c:
        Exclude
      d7e9fd07
    • unknown's avatar
      Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 4b8d44ef
      unknown authored
      into  moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
      
      
      sql/filesort.cc:
        Auto merged
      sql/handler.cc:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_subselect.cc:
        Auto merged
      sql/item_timefunc.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql-common/client.c:
        Auto merged
      sql-common/my_time.c:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      strings/decimal.c:
        Auto merged
      4b8d44ef
    • unknown's avatar
      Merge olga.mysql.com:/home/igor/mysql-5.0-opt · 470ea99c
      unknown authored
      into  olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24345
      
      
      sql/sql_select.cc:
        Auto merged
      470ea99c
    • unknown's avatar
      Merge bk@192.168.21.1:mysql-5.0-opt · e3d81238
      unknown authored
      into  mysql.com:/d2/hf/opt/my50-opt
      
      
      e3d81238
  5. 05 Jan, 2007 3 commits
    • unknown's avatar
      Merge mysql.com:/home/kent/bk/tmp/mysql-4.1-build · 6f3343ee
      unknown authored
      into  mysql.com:/home/kent/bk/tmp/mysql-5.0-build
      
      
      scripts/make_binary_distribution.sh:
        Auto merged
      6f3343ee
    • unknown's avatar
      mysql.spec.sh, make_binary_distribution.sh: · 7fb6aa34
      unknown authored
        Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
        correct "libgcc.a" path is returned for the 32/64 bit architecture
      
      
      scripts/make_binary_distribution.sh:
        Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
        correct "libgcc.a" path is returned for the 32/64 bit architecture
      support-files/mysql.spec.sh:
        Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
        correct "libgcc.a" path is returned for the 32/64 bit architecture
      7fb6aa34
    • unknown's avatar
      Bug #15881: cast problems · 42e31f7a
      unknown authored
        The optimizer removes expressions from GROUP BY/DISTINCT
        if they happen to participate in a <expression> = <const>
        predicates of the WHERE clause (the idea being that if
        it's always equal to a constant it can't have multiple 
        values).
        However for predicates where the expression and the 
        constant item are of different result type this is not
        valid (e.g. a string column compared to 0).
        Fixed by additional check of the result types of the 
        expression and the constant and if they differ the 
        expression don't get removed from the group by list.
      
      
      mysql-test/r/distinct.result:
        Bug #15881: cast problems
          - test case
      mysql-test/t/distinct.test:
        Bug #15881: cast problems
          - test case
      sql/sql_select.cc:
        Bug #15881: cast problems
          - can't use <expr>=<const> to remove GROUP BY/DISTINCT cols
            if they're not of the same type.
      42e31f7a
  6. 04 Jan, 2007 6 commits
  7. 03 Jan, 2007 2 commits
    • unknown's avatar
      Fixed bug #24345. · 42010cde
      unknown authored
      This bug appeared after the patch for bug 21390 that had added some code
      to handle outer joins with no matches after substitution of a const
      table in an efficient way. That code as it is cannot be applied to the case
      of nested outer join operations. Being applied to the queries with
      nested outer joins the code can cause crashes or wrong result sets.
      The fix blocks row substitution for const inner tables of an outer join
      if the inner operand is not a single table.  
      
      
      mysql-test/r/join_nested.result:
        Added a test case for bug #24345.
      mysql-test/t/join_nested.test:
        Added a test case for bug #24345.
      42010cde
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-opt · 5df7d39e
      unknown authored
      into  rakia.gmz:/home/kgeorge/mysql/work/B15439-5.0-opt
      
      
      sql/sql_udf.cc:
        Auto merged
      5df7d39e