mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
MDEV-16038 Assertion `map->n_bits > 0' failed (my_bitmap.c:386: bitmap_is_clear_all)
Rows with no elements are not allowed in a table value constructor unless it is used in an INSERT statement.
This commit is contained in:
parent
99fa7c6c2f
commit
6c5e60f1b1
4 changed files with 22 additions and 2 deletions
|
@ -2072,7 +2072,7 @@ select * from (values (1), (t1.b), (2)) as new_tvc;
|
||||||
ERROR HY000: Field reference 't1.b' can't be used in table value constructor
|
ERROR HY000: Field reference 't1.b' can't be used in table value constructor
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
# MDEV-MDEV-15940: cursor over TVC
|
# MDEV-15940: cursor over TVC
|
||||||
#
|
#
|
||||||
BEGIN NOT ATOMIC
|
BEGIN NOT ATOMIC
|
||||||
DECLARE v INT;
|
DECLARE v INT;
|
||||||
|
@ -2092,3 +2092,8 @@ END;
|
||||||
|
|
|
|
||||||
v
|
v
|
||||||
1
|
1
|
||||||
|
#
|
||||||
|
# MDEV-16038: empty row in TVC
|
||||||
|
#
|
||||||
|
with t as (values (),()) select 1 from t;
|
||||||
|
ERROR HY000: Row with no elements is not allowed in table value constructor in this context
|
||||||
|
|
|
@ -1046,7 +1046,7 @@ select * from (values (1), (t1.b), (2)) as new_tvc;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-MDEV-15940: cursor over TVC
|
--echo # MDEV-15940: cursor over TVC
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
DELIMITER |;
|
DELIMITER |;
|
||||||
|
@ -1068,3 +1068,10 @@ END;
|
||||||
|
|
|
|
||||||
|
|
||||||
DELIMITER ;|
|
DELIMITER ;|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-16038: empty row in TVC
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--error ER_EMPTY_ROW_IN_TVC
|
||||||
|
with t as (values (),()) select 1 from t;
|
||||||
|
|
|
@ -7913,3 +7913,5 @@ ER_INDEX_FILE_FULL
|
||||||
eng "The index file for table '%-.192s' is full"
|
eng "The index file for table '%-.192s' is full"
|
||||||
ER_UPDATED_COLUMN_ONLY_ONCE
|
ER_UPDATED_COLUMN_ONLY_ONCE
|
||||||
eng "The column %`s.%`s cannot be changed more than once in a single UPDATE statement"
|
eng "The column %`s.%`s cannot be changed more than once in a single UPDATE statement"
|
||||||
|
ER_EMPTY_ROW_IN_TVC
|
||||||
|
eng "Row with no elements is not allowed in table value constructor in this context"
|
||||||
|
|
|
@ -221,6 +221,12 @@ bool table_value_constr::prepare(THD *thd, SELECT_LEX *sl,
|
||||||
uint cnt= first_elem->elements;
|
uint cnt= first_elem->elements;
|
||||||
Type_holder *holders;
|
Type_holder *holders;
|
||||||
|
|
||||||
|
if (cnt == 0)
|
||||||
|
{
|
||||||
|
my_error(ER_EMPTY_ROW_IN_TVC, MYF(0));
|
||||||
|
DBUG_RETURN(true);
|
||||||
|
}
|
||||||
|
|
||||||
if (fix_fields_for_tvc(thd, li))
|
if (fix_fields_for_tvc(thd, li))
|
||||||
DBUG_RETURN(true);
|
DBUG_RETURN(true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue