bugfix: RAND is VCOL_SESSION_FUNC
it's not "non deterministic", it's completely defined by @@rand_seed1 and @@rand_seed2. And as a session func it needs to be re-fixed at the beginning of every statement.
This commit is contained in:
parent
25219920f5
commit
6c7e3e5c13
@ -533,3 +533,19 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# RAND is session func
|
||||||
|
#
|
||||||
|
create table t1 (a int, b float default rand(1));
|
||||||
|
insert into t1 (a) values (1);
|
||||||
|
insert into t1 (a) values (2);
|
||||||
|
insert into t1 (a) values (3);
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 0.405404
|
||||||
|
2 0.405404
|
||||||
|
3 0.405404
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
|
# End of 10.3 tests
|
||||||
|
#
|
||||||
|
@ -506,3 +506,16 @@ drop table t1;
|
|||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # RAND is session func
|
||||||
|
--echo #
|
||||||
|
create table t1 (a int, b float default rand(1));
|
||||||
|
insert into t1 (a) values (1);
|
||||||
|
insert into t1 (a) values (2);
|
||||||
|
insert into t1 (a) values (3);
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
--echo #
|
||||||
|
@ -1513,7 +1513,7 @@ public:
|
|||||||
void cleanup() { first_eval= TRUE; Item_real_func::cleanup(); }
|
void cleanup() { first_eval= TRUE; Item_real_func::cleanup(); }
|
||||||
bool check_vcol_func_processor(void *arg)
|
bool check_vcol_func_processor(void *arg)
|
||||||
{
|
{
|
||||||
return mark_unsupported_function(func_name(), "()", arg, VCOL_NON_DETERMINISTIC);
|
return mark_unsupported_function(func_name(), "()", arg, VCOL_SESSION_FUNC);
|
||||||
}
|
}
|
||||||
Item *get_copy(THD *thd)
|
Item *get_copy(THD *thd)
|
||||||
{ return get_item_copy<Item_func_rand>(thd, this); }
|
{ return get_item_copy<Item_func_rand>(thd, this); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user