- 18 Jan, 2007 1 commit
-
-
unknown authored
crashes server Check for null value is reliable only after calling some of the val_xxx() methods. If the val_xxx() method is not called the null_value flag will be set only for certain types of NULL values (like SQL constant NULLs for example). This caused a crash while trying to dereference a NULL pointer that is returned by val_str() for NULL values. Fixed by swapping the order of val_xxx() and null_value check. mysql-test/r/udf.result: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case mysql-test/t/udf.test: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - test case sql/item_func.cc: Bug #25382: Passing NULL to an UDF called from stored procedures crashes server - reliably check null_value
-
- 12 Jan, 2007 2 commits
-
-
unknown authored
After merge fix mysql-test/r/func_str.result: After merge fix
-
unknown authored
into moonbone.local:/work/latest-5.0-opt-mysql mysql-test/t/func_str.test: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/sql_delete.cc: Auto merged mysql-test/r/delete.result: Manual merge mysql-test/r/func_str.result: Manual merge mysql-test/t/delete.test: Manual merge
-
- 11 Jan, 2007 8 commits
-
-
unknown authored
into moonbone.local:/work/23417-bug-5.0-opt-mysql sql/sql_base.cc: Auto merged
-
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.
-
unknown authored
into rakia.gmz:/home/kgeorge/mysql/autopush/B25106-5.0-opt sql/sql_base.cc: Auto merged
-
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.
-
unknown authored
correctly. The Item_func::print method was used to print the Item_func_encode and the Item_func_decode objects. The last argument to ENCODE and DECODE functions is a plain C string and thus Item_func::print wasn't able to print it. The print() method is added to the Item_func_encode class. It correctly prints the Item_func_encode and the Item_func_decode objects. mysql-test/t/func_str.test: Added a test case for bug#23409: Arguments of the ENCODE() and the > DECODE() functionswere not printed correctly. mysql-test/r/func_str.result: Added a test case for bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly. sql/item_strfunc.h: Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly. The print() method is added to the Item_func_encode class. sql/item_strfunc.cc: Bug#23409: Arguments of the ENCODE() and the DECODE() functions were not printed correctly. The print() method is added to the Item_func_encode class. It correctly prints the Item_func_encode and the Item_func_decode objects.
-
unknown authored
-
unknown authored
WHERE is present. If a DELETE statement with ORDER BY and LIMIT contains a WHERE clause with conditions that for sure cannot be used for index access (like in WHERE @var:= field) the execution always follows the filesort path. It happens currently even when for the above case there is an index that can be used to speedup sorting by the order by list. Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE clause conditions that cannot be used to build any quick select then the mysql_delete() tries to use an index like there is no WHERE clause at all. mysql-test/t/delete.test: Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present. mysql-test/r/delete.result: Added a test case for bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present. sql/sql_delete.cc: Bug#17711: DELETE doesn't use index when ORDER BY, LIMIT and non-restricting WHERE is present. Now if a DELETE statement with ORDER BY and LIMIT contains such WHERE clause conditions that cannot be used to build any quick select then the mysql_delete() tries to use an index like there is no WHERE clause at all.
-
unknown authored
into mysql.com:/d2/hf/mr10/my50-mr10 sql/mysqld.cc: Auto merged
-
- 10 Jan, 2007 10 commits
-
-
unknown authored
into olga.mysql.com:/home/igor/mysql-4.1-opt
-
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
-
unknown authored
into mysql.com:/d2/hf/mr10/my50-mr10
-
unknown authored
Removed line accidently inserted when correcting bug#18526 configure.in: Removed line accidently inserted when correcting bug#18526
-
unknown authored
into mysql.com:/d2/hf/mr10/my50-mr10
-
unknown authored
-
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
-
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)
-
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.
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt
-
- 09 Jan, 2007 14 commits
-
-
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.
-
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.
-
unknown authored
into olga.mysql.com:/home/igor/mysql-5.0-opt sql/item_cmpfunc.cc: Auto merged
-
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.
-
unknown authored
into moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt
-
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
-
unknown authored
into kpdesk.mysql.com:/home/thek/dev/mysql-5.0-build
-
unknown authored
into mysql.com:/d2/hf/opt/my50-opt
-
unknown authored
into kpdesk.mysql.com:/home/thek/dev/bug23010/my50-bug23010 mysys/mf_iocache.c: Auto merged mysys/my_seek.c: Auto merged
-
unknown authored
into kpdesk.mysql.com:/home/thek/dev/bug23010/my41-fix23010 mysys/mf_iocache.c: Auto merged mysys/my_seek.c: Auto merged
-
unknown authored
mysys/mf_iocache.c: Exclude mysys/my_seek.c: Exclude
-
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
-
unknown authored
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24345 sql/sql_select.cc: Auto merged
-
unknown authored
into mysql.com:/d2/hf/opt/my50-opt
-
- 05 Jan, 2007 3 commits
-
-
unknown authored
into mysql.com:/home/kent/bk/tmp/mysql-5.0-build scripts/make_binary_distribution.sh: Auto merged
-
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
-
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.
-
- 04 Jan, 2007 2 commits