diff --git a/query_classifier/qc_sqlite/qc_sqlite.cc b/query_classifier/qc_sqlite/qc_sqlite.cc index 7b047e43e..bf59fbc9d 100644 --- a/query_classifier/qc_sqlite/qc_sqlite.cc +++ b/query_classifier/qc_sqlite/qc_sqlite.cc @@ -3551,7 +3551,7 @@ static void update_field_infos_from_select(QcSqliteInfo* pInfo, update_field_infos_from_with(pInfo, &aliases, pSelect->pWith); } - if ((pSelect->op == TK_UNION) && pSelect->pPrior) + if (((pSelect->op == TK_UNION) || (pSelect->op == TK_ALL)) && pSelect->pPrior) { update_field_infos_from_subselect(pInfo, &aliases, pSelect->pPrior, usage, pExclude); } diff --git a/query_classifier/test/insert.test b/query_classifier/test/insert.test index 04a5aaa73..45207cc81 100644 --- a/query_classifier/test/insert.test +++ b/query_classifier/test/insert.test @@ -523,7 +523,9 @@ insert t1 (data) values ('letter'), (1/0); --disable_ps_protocol update t1 set data='envelope' where 1/0 or 1; --enable_ps_protocol -insert t1 (data) values (default), (1/0), ('dead beef'); +#MXS qc_mysqlem +#MXS qc_get_function_info : ERR: != /() +#MXS insert t1 (data) values (default), (1/0), ('dead beef'); --disable_info set sql_mode=default; diff --git a/query_classifier/test/qc_mysqlembedded_unsupported.test b/query_classifier/test/qc_mysqlembedded_unsupported.test new file mode 100644 index 000000000..925cbc383 --- /dev/null +++ b/query_classifier/test/qc_mysqlembedded_unsupported.test @@ -0,0 +1,10 @@ +#MXS qc_mysqlembedded does not return all functions +#MXS qc_get_function_info : ERR: != /() +insert t1 (data) values (default), (1/0), ('dead beef'); + +#MXS qc_mysqlembedded does not return all functions +#MXS qc_get_function_info : ERR: coalesce() != case() coalesce() if() +insert into t1 values + (if(1, 9223372036854775808, 1)), + (case when 1 then 9223372036854775808 else 1 end), + (coalesce(9223372036854775808, 1)); diff --git a/query_classifier/test/select.test b/query_classifier/test/select.test index ae8787224..451859562 100644 --- a/query_classifier/test/select.test +++ b/query_classifier/test/select.test @@ -3296,10 +3296,12 @@ DROP TABLE t1,t2; # create table t1 (a bigint unsigned); -insert into t1 values - (if(1, 9223372036854775808, 1)), - (case when 1 then 9223372036854775808 else 1 end), - (coalesce(9223372036854775808, 1)); +#MXS qc_mysqlembedded does not return all functions +#MXS qc_get_function_info : ERR: coalesce() != case() coalesce() if() +#insert into t1 values +# (if(1, 9223372036854775808, 1)), +# (case when 1 then 9223372036854775808 else 1 end), +# (coalesce(9223372036854775808, 1)); select * from t1; drop table t1; create table t1 select