- Honor unsigned_flag in the corresponding functions
- Use compare_int_signed_unsigned()/compare_int_unsigned_signed() instead of explicit comparison in GREATEST() and LEAST()
mysql-test/r/case.result:
Added test case for bug #20924
mysql-test/r/func_if.result:
Added test case for bug #20924
mysql-test/r/func_test.result:
Added test case for bug #20924
mysql-test/r/user_var.result:
Added test case for bug #20924
mysql-test/t/case.test:
Added test case for bug #20924
mysql-test/t/func_if.test:
Added test case for bug #20924
mysql-test/t/func_test.test:
Added test case for bug #20924
mysql-test/t/user_var.test:
Added test case for bug #20924
sql/item_cmpfunc.cc:
Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
- Moved some code out of Arg_comparator to external functions to be reused in Item_func_min_max
- Fixed IFNULL(), IF(), CASE() and COALESCE()
sql/item_cmpfunc.h:
Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
- Moved some code out of Arg_comparator to external functions to be reused in Item_func_min_max
sql/item_func.cc:
Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
Fixed LEAST(), GREATEST() and "SET @a=..." parts
sql/item_func.h:
Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
Fixed "SET @a=..." part
sql/sql_class.h:
Bug #20924: CAST(expr as UNSIGNED) returns SIGNED value when used in various functions
Fixed "SET @a=..." part
VALUES() was considered a constant. This caused replacing
(or pre-calculating) it using uninitialized values before the actual
execution takes place.
Mark it as a non-constant (still not dependent of tables) to prevent
the pre-calculation.
mysql-test/r/insert_update.result:
Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
- test case.
- EXPLAIN output changed due to VALUES() not being considered a constant
anymore
mysql-test/t/insert_update.test:
Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
- test case.
sql/item.h:
Bug#21555: incorrect behavior with INSERT ... ON DUPL KEY UPDATE and VALUES
- mark Item_insert_value as non-constant to prevent early calculation.
Corrected test case after removal of fix for bug#16377
type_date.test:
Corrected test case after removal of fix for bug#16377
item_cmpfunc.cc:
Removed changes to the agg_cmp_type() made in the for bug#16377
mysql-test/t/type_date.test:
Corrected test case after removal of fix for bug#16377
mysql-test/t/func_time.test:
Corrected test case after removal of fix for bug#16377
mysql-test/r/type_date.result:
Corrected test case after removal of fix for bug#16377
mysql-test/r/query_cache.result:
Corrected test case after removal of fix for bug#16377
mysql-test/r/func_time.result:
Corrected test case after removal of fix for bug#16377
sql/item_cmpfunc.cc:
Removed changes to the agg_cmp_type() made in the for bug#16377
into chilla.local:/home/mydev/mysql-5.1-bug14400
mysql-test/r/myisam.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
storage/myisam/mi_rkey.c:
Auto merged
equal constant under any circumstances.
In fact this substitution can be allowed if the field is
not of a type string or if the field reference serves as
an argument of a comparison predicate.
mysql-test/r/func_str.result:
Added test cases for bug #21698.
mysql-test/r/heap_hash.result:
Adjusted results after the fix for bug #21198.
mysql-test/t/func_str.test:
Added test cases for bug #21698.
sql/item.cc:
Fixed bug #21198.
Added a method to check whether a field reference can be
substituted for a constant equal to the field.
This substitution is allowed if the field is not of a type string
or if the field reference serves as an argument of a comparison
predicate.
sql/item.h:
Fixed bug #21698.
Added a new virtual transformation method for a item 'compile'
with two callback function parameters.
Added a new virtual method 'subst_argument_checker' to be used
as an amnalyzer method.
This method is supposed to set its in/out argument to NULL for
the nodes where substitution of a string field for a constant
is not valid.
sql/item_cmpfunc.cc:
Fixed bug #21698.
Added an implementation of the compile method for class Item_cond.
First it processes the Item_cond node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_cmpfunc.h:
Fixed bug #21698.
Added the implementations of 'subst_argument_checker'
for the Item_func and Item_cond classes.
This method is supposed to set its in/out argument to NULL for
the nodes where substitution of a string field for a constant
is not valid.
Added the declaration of an implementation of the compile method for
class Item_cond.
First it processes the Item_cond node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_func.cc:
Fixed bug #21698.
Added an implementation of the compile method for class Item_func.
First it processes the Item_func node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/item_func.h:
Fixed bug #21698.
Added the declaration of the implementation of the compile method for
class Item_func.
First it processes the Item_func node with a callback function and if
the latter returns TRUE it proceeds with a transformation performed by
another callback function.
sql/sql_select.cc:
Fixed bug #21698.
Limited the conditions at which a field can be substituted
a for an equal constant in a formula.
This substitution is allowed if the field is not of a type string
or if the field reference serves as an argument of a comparison
predicate.
into chilla.local:/home/mydev/mysql-5.0-bug14400
mysql-test/r/myisam.result:
Auto merged
mysql-test/t/myisam.test:
Auto merged
myisam/mi_rkey.c:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Manual merge from 4.1
15 seconds to less than a second.
The sleeps used to be necessary but not anymore as NDB has been fixed
wrt sync_slave_with_master.
mysql-test/include/rpl_multi_engine3.inc:
Sleeps are not necessary anymore
because NDB has been fixed wrt sync_slave_with_master.
into chilla.local:/home/mydev/mysql-4.1-bug14400
myisam/mi_rkey.c:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Manual merge from 4.0
mysql-test/r/myisam.result:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Manual merge from 4.0
mysql-test/t/myisam.test:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Manual merge from 4.0
"concurrent insert"
Additional fix for full keys and test case.
myisam/mi_rkey.c:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional fix for full keys.
mysql-test/r/myisam.result:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional results.
mysql-test/t/myisam.test:
Bug#14400 - Query joins wrong rows from table which is subject of
"concurrent insert"
Additional test case.
include/mysql_com.h:
USERNAME_LENGTH is changed to USERNAME_BYTE_LENGTH
mysql-test/r/ctype_utf8.result:
result fix
mysql-test/t/ctype_utf8.test:
test fix
sql/sp.cc:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sp_head.cc:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sql_acl.cc:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
sql/sql_class.h:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
sql/sql_parse.cc:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
Function check_string_length() is fixed, now it check string lenght in symbols
sql/sql_repl.h:
NAME_LEN constant is changed to NAME_BYTE_LEN for database name buffer
USERNAME_LENGTH constant is changed to USERNAME_BYTE_LENGTH for user name buffer
into mysql.com:/home/gluh/MySQL/Merge/5.0
include/mysql_com.h:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item_func.h:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_select.cc:
Auto merged
sql/table.cc:
Auto merged
mysql-test/r/ctype_utf8.result:
manual merge
sql/sql_acl.cc:
manual merge
mysql-test/r/ctype_recoding.result:
Case change in 5.1.
mysql-test/t/heap_btree.test:
Fixes bad merge.
mysql-test/t/partition.test:
Split terrible "ls" test into two parts so that the different sorting orders
of sundry OSes don't affect the output.
into production.mysql.com:/usersnfs/rburnett/mysql-5.1
libmysqld/libmysqld.def:
Auto merged
mysql-test/t/handler.test:
Auto merged
sql/mysqld.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_select.cc:
Auto merged
Invalidating query cache when processing rows for a statement on the slave.
mysql-test/r/rpl_row_basic_11bugs.result:
Result file change
mysql-test/t/rpl_row_basic_11bugs.test:
Adding test to trigger failure
sql/log_event.cc:
Adding code to invalidate the query cache just after opening the tables
for processing the rows of one statement.
Select_type in the EXPLAIN output for the query SELECT * FROM t1 was
'SIMPLE', while for the query SELECT * FROM v1, where the view v1
was defined as SELECT * FROM t1, the EXPLAIN output contained 'PRIMARY'
for the select_type column.
mysql-test/r/group_by.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/information_schema.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/olap.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/range.result:
Adjusted results after the fix for bug #5500.
mysql-test/r/view.result:
Added a test case for bug #5500.
Adjusted other results.
mysql-test/r/view_grant.result:
Adjusted results after the fix for bug #5500.
mysql-test/t/view.test:
Added a test case for bug #5500.
into bk-internal.mysql.com:/data0/bk/mysql-5.1-wl3337
client/mysqltest.c:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/events.result:
Auto merged
mysql-test/r/not_embedded_server.result:
Auto merged
mysql-test/t/events.test:
Auto merged
sql/CMakeLists.txt:
Auto merged
sql/Makefile.am:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
This bug report was two problems:
1) LAST_INSERT_ID() returns a value which does not exist in the table
2) the reporter would want it to return the autoinc id of the updated
row.
1) is a real bug, 2) is a feature request.
In July I implemented 2) in 5.1 (which automatically fixes 1).
This has not yet been documented or released, so is changeable.
Precisely, recently Paul and a user found an easy workaround to give
2), which works in 4.1-5.0-5.1. So I can revert my code for 2),
because it's not needed, that's what I do here;
we forget about 2) (we will document the workaround).
But when I revert my code for 2), 1) comes back. We solve 1) by saying
that if INSERT ON DUPLICATE KEY UPDATE updates a row, it's like a
regular UPDATE: LAST_INSERT_ID() should not be affected (instead of
returning a non-existent value).
So note: no behaviour change compared to the last released 5.1; just
a bugfix for 1).
mysql-test/r/innodb_mysql.result:
result update
mysql-test/t/innodb_mysql.test:
test for the new way to fix BUG#19243: that if INSERT ON DUPLICATE
KEY UPDATE updates a row, SELECT LAST_INSERT_ID() is not affected.
Test of the workaround for people who want SELECT LAST_INSERT_ID()
to return the autoinc id of the updated row.
sql/sql_insert.cc:
No need to change LAST_INSERT_ID() if INSERT ON DUPLICATE KEY UPDATE
updates a row, there is a workaround to achieve this without changing
code: just add "autoinc_col=LAST_INSERT_ID(autoinc_col)" to your
ON DUPLICATE KEY UPDATE clause.
Prevent LAST_INSERT_ID() to contain an inexistent value in this case:
if the row is updated it should be like a regular UPDATE: don't
affect LAST_INSERT_ID() (achieved by marking that we didn't generate
an id for this row: insert_id_for_cur_row=0).
into mysql.com:/windows/Linux_space/MySQL/mysql-5.1
mysql-test/r/ndb_condition_pushdown.result:
Auto merged
mysql-test/t/ndb_condition_pushdown.test:
Auto merged
into mysql.com:/windows/Linux_space/MySQL/mysql-5.1
mysql-test/r/ndb_condition_pushdown.result:
Auto merged
mysql-test/t/ndb_condition_pushdown.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster.h:
Auto merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
client/mysql.cc:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/net_serv.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
vio/viosocket.c:
Auto merged
mysql-test/r/ctype_recoding.result:
Manual merge.
mysql-test/t/ctype_recoding.test:
Manual merge.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/heap_btree.result:
Auto merged
sql/set_var.cc:
Auto merged
mysql-test/t/heap_btree.test:
Manually merged.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/ctype_recoding.result:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/t/ctype_recoding.test:
manual merge.
sql/sql_lex.h:
manual merge.
sql/sql_table.cc:
manual merge.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/sql_select.cc:
Auto merged
into salvation.intern.azundris.com:/home/tnurnberg/21913/my51-21913
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/func_time.test:
Auto merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/heap_btree.result:
Auto merged
mysql-test/t/heap_btree.test:
Manually merged.
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
configure.in:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/r/ctype_ucs.result:
Auto merged
mysql-test/t/ctype_ucs.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/item_strfunc.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql-common/client.c:
Auto merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
include/config-netware.h:
Auto merged
include/mysql.h:
Auto merged
include/mysql_com.h:
Auto merged
mysql-test/r/grant.result:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/r/trigger.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/sp.test:
Auto merged
mysql-test/t/trigger.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/share/errmsg.txt:
SCCS merged
configure.in:
SCCS merged
sql/sql_base.cc:
SCCS merged
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
mysql-test/r/grant.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/grant.test:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/sql_acl.cc:
Auto merged