Commit f6b5b297 authored by Kristofer Pettersson's avatar Kristofer Pettersson

Automerge

parents fd674a93 419e3853
...@@ -101,6 +101,8 @@ if (`SELECT @@global.binlog_format = 'STATEMENT'`) ...@@ -101,6 +101,8 @@ if (`SELECT @@global.binlog_format = 'STATEMENT'`)
} }
CREATE TABLE t1(a int, UNIQUE(a)); CREATE TABLE t1(a int, UNIQUE(a));
--let $_start= query_get_value(SHOW MASTER STATUS, Position, 1)
INSERT DELAYED IGNORE INTO t1 VALUES(1); INSERT DELAYED IGNORE INTO t1 VALUES(1);
INSERT DELAYED IGNORE INTO t1 VALUES(1); INSERT DELAYED IGNORE INTO t1 VALUES(1);
flush table t1; # to wait for INSERT DELAYED to be done flush table t1; # to wait for INSERT DELAYED to be done
...@@ -108,8 +110,22 @@ if (`SELECT @@global.binlog_format = 'STATEMENT'`) ...@@ -108,8 +110,22 @@ if (`SELECT @@global.binlog_format = 'STATEMENT'`)
{ {
#must show two INSERT DELAYED #must show two INSERT DELAYED
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1) --let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
--let $binlog_limit= 1,4
--source include/show_binlog_events.inc # The first INSERT DELAYED
--let $stmt= query_get_value(SHOW BINLOG EVENTS IN '$binlog_file' FROM $_start, Info, 2)
--echo $stmt
# The second INSERT DELAYED statement is the 3 item if two INSERT DELAYED are
# handled together
--let $stmt= query_get_value(SHOW BINLOG EVENTS IN '$binlog_file' FROM $_start, Info, 3)
# The second INSERT DELAYED statement is the 5 item if two INSERT DELAYED are
# handled separately
if (`SELECT '$stmt' = 'COMMIT'`)
{
--let $stmt= query_get_value(SHOW BINLOG EVENTS IN '$binlog_file' FROM $_start, Info, 5)
}
--echo $stmt
} }
select * from t1; select * from t1;
......
...@@ -5,6 +5,20 @@ flush tables; ...@@ -5,6 +5,20 @@ flush tables;
select * from t1 where isnull(to_days(mydate)); select * from t1 where isnull(to_days(mydate));
id mydate id mydate
drop table t1; drop table t1;
#
# Bug#53933 crash when using uncacheable subquery in the having clause of outer query
#
CREATE TABLE t1 (f1 INT);
INSERT INTO t1 VALUES (0),(0);
SELECT ISNULL((SELECT GET_LOCK('Bug#53933', 0) FROM t1 GROUP BY f1)) AS f2
FROM t1 GROUP BY f1 HAVING f2 = f2;
f2
0
SELECT RELEASE_LOCK('Bug#53933');
RELEASE_LOCK('Bug#53933')
1
DROP TABLE t1;
End of 5.0 tests
CREATE TABLE t1 (id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY(id)); CREATE TABLE t1 (id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
INSERT INTO t1( id ) VALUES ( NULL ); INSERT INTO t1( id ) VALUES ( NULL );
SELECT t1.id FROM t1 WHERE (id is not null and id is null ); SELECT t1.id FROM t1 WHERE (id is not null and id is null );
......
...@@ -51,12 +51,8 @@ CREATE TABLE t1(a int, UNIQUE(a)); ...@@ -51,12 +51,8 @@ CREATE TABLE t1(a int, UNIQUE(a));
INSERT DELAYED IGNORE INTO t1 VALUES(1); INSERT DELAYED IGNORE INTO t1 VALUES(1);
INSERT DELAYED IGNORE INTO t1 VALUES(1); INSERT DELAYED IGNORE INTO t1 VALUES(1);
flush table t1; flush table t1;
show binlog events in 'master-bin.000002' from <binlog_start> limit 1,4; use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
Log_name Pos Event_type Server_id End_log_pos Info use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
master-bin.000002 # Query # # BEGIN
master-bin.000002 # Query # # use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
master-bin.000002 # Query # # use `test`; INSERT DELAYED IGNORE INTO t1 VALUES(1)
master-bin.000002 # Query # # COMMIT
select * from t1; select * from t1;
a a
1 1
......
...@@ -14,6 +14,21 @@ drop table t1; ...@@ -14,6 +14,21 @@ drop table t1;
# End of 4.1 tests # End of 4.1 tests
--echo #
--echo # Bug#53933 crash when using uncacheable subquery in the having clause of outer query
--echo #
CREATE TABLE t1 (f1 INT);
INSERT INTO t1 VALUES (0),(0);
SELECT ISNULL((SELECT GET_LOCK('Bug#53933', 0) FROM t1 GROUP BY f1)) AS f2
FROM t1 GROUP BY f1 HAVING f2 = f2;
SELECT RELEASE_LOCK('Bug#53933');
DROP TABLE t1;
--echo End of 5.0 tests
# #
# Bug #41371 Select returns 1 row with condition "col is not null and col is null" # Bug #41371 Select returns 1 row with condition "col is not null and col is null"
# #
......
...@@ -1324,8 +1324,8 @@ public: ...@@ -1324,8 +1324,8 @@ public:
else else
{ {
args[0]->update_used_tables(); args[0]->update_used_tables();
if ((const_item_cache= !(used_tables_cache= args[0]->used_tables())) && if ((const_item_cache= !(used_tables_cache= args[0]->used_tables()) &&
!with_subselect) !with_subselect))
{ {
/* Remember if the value is always NULL or never NULL */ /* Remember if the value is always NULL or never NULL */
cached_value= (longlong) args[0]->is_null(); cached_value= (longlong) args[0]->is_null();
......
...@@ -2388,7 +2388,6 @@ static bool check_timestamp(sys_var *self, THD *thd, set_var *var) ...@@ -2388,7 +2388,6 @@ static bool check_timestamp(sys_var *self, THD *thd, set_var *var)
if (!var->value) if (!var->value)
return FALSE; return FALSE;
var->save_result.ulonglong_value= var->value->val_int();
val= (time_t) var->save_result.ulonglong_value; val= (time_t) var->save_result.ulonglong_value;
if (val < (time_t) MY_TIME_T_MIN || val > (time_t) MY_TIME_T_MAX) if (val < (time_t) MY_TIME_T_MIN || val > (time_t) MY_TIME_T_MAX)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment