MDEV-25143 JSON_TABLE: Server crashes in handler::print_error / hton_name upon ERROR ON EMPTY.

should return some error code from ha_json_table::rnd_pos() not just 1.
This commit is contained in:
Alexey Botchkov 2021-03-17 10:51:44 +04:00
parent 99fc076fea
commit abdc39b0a7
3 changed files with 12 additions and 1 deletions

View File

@ -508,5 +508,10 @@ a
EXECUTE stmt;
a
#
# MDEV-JSON_TABLE: Server crashes in handler::print_error / hton_name upon ERROR ON EMPTY
#
SELECT a, b FROM JSON_TABLE('[]', '$' COLUMNS (a FOR ORDINALITY, b INT PATH '$[*]' ERROR ON EMPTY)) AS t ORDER BY a;
ERROR HY000: Field 'b' can't be set for JSON_TABLE 't'.
#
# End of 10.6 tests
#

View File

@ -395,6 +395,12 @@ PREPARE stmt FROM "SELECT * FROM (SELECT * FROM JSON_TABLE(LOAD_FILE('x'), '$' C
EXECUTE stmt;
EXECUTE stmt;
--echo #
--echo # MDEV-JSON_TABLE: Server crashes in handler::print_error / hton_name upon ERROR ON EMPTY
--echo #
--error ER_JSON_TABLE_ERROR_ON_FIELD
SELECT a, b FROM JSON_TABLE('[]', '$' COLUMNS (a FOR ORDINALITY, b INT PATH '$[*]' ERROR ON EMPTY)) AS t ORDER BY a;
--echo #
--echo # End of 10.6 tests
--echo #

View File

@ -445,7 +445,7 @@ error_return:
int ha_json_table::rnd_pos(uchar * buf, uchar *pos)
{
return fill_column_values(buf, pos);
return fill_column_values(buf, pos) ? HA_ERR_TABLE_IN_FK_CHECK : 0;
}