Commit 99fc076f authored by Sergei Petrunia's avatar Sergei Petrunia Committed by Alexey Botchkov

MDEV-25145: JSON_TABLE: Assertion fixed == 1 failed .. on 2nd execution

parent 98556ef8
......@@ -491,5 +491,22 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE jt1 ALL NULL NULL NULL NULL 40 Table function: json_table
drop table t20,t21,t31,t32;
#
# MDEV-25142: JSON_TABLE: CREATE VIEW involving EXISTS PATH ends up with invalid frm
#
drop view if exists v1;
CREATE VIEW v1 AS SELECT * FROM JSON_TABLE('[]', '$' COLUMNS (f INT EXISTS PATH '$')) a ;
show create view v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `a`.`f` AS `f` from JSON_TABLE('[]', '$' COLUMNS (`f` int(11) EXISTS PATH '$')) `a` latin1 latin1_swedish_ci
drop view v1;
#
# MDEV-25145: JSON_TABLE: Assertion `fixed == 1' failed in Item_load_file::val_str on 2nd execution of PS
#
PREPARE stmt FROM "SELECT * FROM (SELECT * FROM JSON_TABLE(LOAD_FILE('x'), '$' COLUMNS (a FOR ORDINALITY)) AS t) AS sq";
EXECUTE stmt;
a
EXECUTE stmt;
a
#
# End of 10.6 tests
#
......@@ -388,6 +388,13 @@ CREATE VIEW v1 AS SELECT * FROM JSON_TABLE('[]', '$' COLUMNS (f INT EXISTS PATH
show create view v1;
drop view v1;
--echo #
--echo # MDEV-25145: JSON_TABLE: Assertion `fixed == 1' failed in Item_load_file::val_str on 2nd execution of PS
--echo #
PREPARE stmt FROM "SELECT * FROM (SELECT * FROM JSON_TABLE(LOAD_FILE('x'), '$' COLUMNS (a FOR ORDINALITY)) AS t) AS sq";
EXECUTE stmt;
EXECUTE stmt;
--echo #
--echo # End of 10.6 tests
--echo #
......@@ -1243,11 +1243,14 @@ JOIN::prepare(TABLE_LIST *tables_init, COND *conds_init, uint og_num,
thd->lex->current_select->context_analysis_place;
thd->lex->current_select->context_analysis_place= SELECT_LIST;
for (TABLE_LIST *tbl= tables_list; tbl; tbl= tbl->next_local)
{
if (tbl->table_function &&
tbl->table_function->setup(thd, tbl, select_lex_arg))
DBUG_RETURN(-1);
List_iterator_fast<TABLE_LIST> it(select_lex->leaf_tables);
while ((tbl= it++))
{
if (tbl->table_function &&
tbl->table_function->setup(thd, tbl, select_lex_arg))
DBUG_RETURN(-1);
}
}
if (setup_fields(thd, ref_ptrs, fields_list, MARK_COLUMNS_READ,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment