MDEV-33739 Check field type of the first field in check_sequence_fields()
This avoids non-integral types breaking the call of sequence_structure().
This commit is contained in:
parent
593392ba8b
commit
aba03eef07
@ -739,5 +739,14 @@ next value for s
|
|||||||
1001
|
1001
|
||||||
drop sequence s;
|
drop sequence s;
|
||||||
#
|
#
|
||||||
|
# MDEV-33739 Assertion `0' failed in Type_handler_typelib::max_display_length_for_field
|
||||||
|
#
|
||||||
|
CREATE SEQUENCE s1 ;
|
||||||
|
ALTER table s1 CHANGE `next_not_cached_value` next_not_cached_value SET('1','2','3','4','5','6','7','8','9','10');
|
||||||
|
ERROR HY000: Sequence 'test.s1' table structure is invalid (next_not_cached_value)
|
||||||
|
ALTER table s1 CHANGE `next_not_cached_value` next_not_cached_value bool;
|
||||||
|
ERROR HY000: Sequence 'test.s1' table structure is invalid (next_not_cached_value)
|
||||||
|
drop sequence s1;
|
||||||
|
#
|
||||||
# End of 11.5 test
|
# End of 11.5 test
|
||||||
#
|
#
|
||||||
|
@ -410,6 +410,18 @@ alter sequence s maxvalue 9432738420582397432;
|
|||||||
show create sequence s;
|
show create sequence s;
|
||||||
select next value for s;
|
select next value for s;
|
||||||
drop sequence s;
|
drop sequence s;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-33739 Assertion `0' failed in Type_handler_typelib::max_display_length_for_field
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE SEQUENCE s1 ;
|
||||||
|
--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
|
||||||
|
ALTER table s1 CHANGE `next_not_cached_value` next_not_cached_value SET('1','2','3','4','5','6','7','8','9','10');
|
||||||
|
--error ER_SEQUENCE_INVALID_TABLE_STRUCTURE
|
||||||
|
ALTER table s1 CHANGE `next_not_cached_value` next_not_cached_value bool;
|
||||||
|
drop sequence s1;
|
||||||
|
|
||||||
--enable_ps2_protocol
|
--enable_ps2_protocol
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -349,6 +349,12 @@ bool check_sequence_fields(LEX *lex, List<Create_field> *fields,
|
|||||||
reason= my_get_err_msg(ER_SEQUENCE_TABLE_HAS_WRONG_NUMBER_OF_COLUMNS);
|
reason= my_get_err_msg(ER_SEQUENCE_TABLE_HAS_WRONG_NUMBER_OF_COLUMNS);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
if (!sequence_definition::is_allowed_value_type(
|
||||||
|
fields->head()->type_handler()->field_type()))
|
||||||
|
{
|
||||||
|
reason= fields->head()->field_name.str;
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
row_structure= sequence_structure(fields->head()->type_handler());
|
row_structure= sequence_structure(fields->head()->type_handler());
|
||||||
if (field_count != array_elements(row_structure.fields)-1)
|
if (field_count != array_elements(row_structure.fields)-1)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user