mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge magare.gmz:/home/kgeorge/mysql/work/B30715-merged-5.0-opt
into magare.gmz:/home/kgeorge/mysql/work/B30715-merged-5.1-opt
This commit is contained in:
@ -1378,4 +1378,9 @@ SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
|
|||||||
1
|
1
|
||||||
1
|
1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a int, b date NOT NULL, KEY k1 (a,b));
|
||||||
|
SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01';
|
||||||
|
MIN(b)
|
||||||
|
NULL
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -812,4 +812,14 @@ select group_concat(f1),group_concat(f2) from t1;
|
|||||||
group_concat(f1) group_concat(f2)
|
group_concat(f1) group_concat(f2)
|
||||||
-0.123456 0.123456
|
-0.123456 0.123456
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (
|
||||||
|
ua_id decimal(22,0) not null,
|
||||||
|
ua_invited_by_id decimal(22,0) default NULL,
|
||||||
|
primary key(ua_id)
|
||||||
|
);
|
||||||
|
insert into t1 values (123, NULL), (456, NULL);
|
||||||
|
this must not produce error 1048:
|
||||||
|
select * from t1 where ua_invited_by_id not in (select ua_id from t1);
|
||||||
|
ua_id ua_invited_by_id
|
||||||
|
drop table t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -880,5 +880,14 @@ SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #30715: Assertion failed: item_field->field->real_maybe_null(), file
|
||||||
|
# .\opt_sum.cc, line
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int, b date NOT NULL, KEY k1 (a,b));
|
||||||
|
SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01';
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
###
|
###
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -425,5 +425,20 @@ insert into t1 values (-0.123456,0.123456);
|
|||||||
select group_concat(f1),group_concat(f2) from t1;
|
select group_concat(f1),group_concat(f2) from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#31450 "Query causes error 1048"
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
ua_id decimal(22,0) not null,
|
||||||
|
ua_invited_by_id decimal(22,0) default NULL,
|
||||||
|
primary key(ua_id)
|
||||||
|
);
|
||||||
|
insert into t1 values (123, NULL), (456, NULL);
|
||||||
|
|
||||||
|
--echo this must not produce error 1048:
|
||||||
|
select * from t1 where ua_invited_by_id not in (select ua_id from t1);
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
@ -4649,7 +4649,7 @@ int Item::save_in_field(Field *field, bool no_conversions)
|
|||||||
my_decimal decimal_value;
|
my_decimal decimal_value;
|
||||||
my_decimal *value= val_decimal(&decimal_value);
|
my_decimal *value= val_decimal(&decimal_value);
|
||||||
if (null_value)
|
if (null_value)
|
||||||
return set_field_to_null(field);
|
return set_field_to_null_with_conversions(field, no_conversions);
|
||||||
field->set_notnull();
|
field->set_notnull();
|
||||||
error=field->store_decimal(value);
|
error=field->store_decimal(value);
|
||||||
}
|
}
|
||||||
|
@ -295,14 +295,15 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds)
|
|||||||
Check if case 1 from above holds. If it does, we should read
|
Check if case 1 from above holds. If it does, we should read
|
||||||
the skipped tuple.
|
the skipped tuple.
|
||||||
*/
|
*/
|
||||||
if (ref.key_buff[prefix_len] == 1 &&
|
if (item_field->field->real_maybe_null() &&
|
||||||
/*
|
ref.key_buff[prefix_len] == 1 &&
|
||||||
|
/*
|
||||||
Last keypart (i.e. the argument to MIN) is set to NULL by
|
Last keypart (i.e. the argument to MIN) is set to NULL by
|
||||||
find_key_for_maxmin only if all other keyparts are bound
|
find_key_for_maxmin only if all other keyparts are bound
|
||||||
to constants in a conjunction of equalities. Hence, we
|
to constants in a conjunction of equalities. Hence, we
|
||||||
can detect this by checking only if the last keypart is
|
can detect this by checking only if the last keypart is
|
||||||
NULL.
|
NULL.
|
||||||
*/
|
*/
|
||||||
(error == HA_ERR_KEY_NOT_FOUND ||
|
(error == HA_ERR_KEY_NOT_FOUND ||
|
||||||
key_cmp_if_same(table, ref.key_buff, ref.key, prefix_len)))
|
key_cmp_if_same(table, ref.key_buff, ref.key, prefix_len)))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user