diff --git a/mysql-test/main/opt_trace.result b/mysql-test/main/opt_trace.result index 82cb7478405..12d4c713886 100644 --- a/mysql-test/main/opt_trace.result +++ b/mysql-test/main/opt_trace.result @@ -6021,4 +6021,17 @@ t_outer_2.a in (select t_inner_3.a from t2 t_inner_3, t1 t_inner_4) { } 0 0 set @@optimizer_switch= @save_optimizer_switch; drop table t1,t2; +# +# MDEV-18942: Json_writer::add_bool: Conditional jump or move depends on uninitialised value upon +# fulltext search under optimizer trace +# +CREATE TABLE t1 (f VARCHAR(255), FULLTEXT(f)); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('fooba'),('abcde'),('xyzab'); +SET optimizer_trace = 'enabled=on'; +SELECT COUNT(*) FROM v1 WHERE MATCH (f) AGAINST ('fooba'); +COUNT(*) +1 +DROP VIEW v1; +DROP TABLE t1; set optimizer_trace='enabled=off'; diff --git a/mysql-test/main/opt_trace.test b/mysql-test/main/opt_trace.test index e59a11fbfc3..4ec7c338acd 100644 --- a/mysql-test/main/opt_trace.test +++ b/mysql-test/main/opt_trace.test @@ -373,4 +373,18 @@ explain select * from t1 t_outer_1,t2 t_outer_2 where t_outer_1.a in (select t_ select * from INFORMATION_SCHEMA.OPTIMIZER_TRACE; set @@optimizer_switch= @save_optimizer_switch; drop table t1,t2; + +--echo # +--echo # MDEV-18942: Json_writer::add_bool: Conditional jump or move depends on uninitialised value upon +--echo # fulltext search under optimizer trace +--echo # + +CREATE TABLE t1 (f VARCHAR(255), FULLTEXT(f)); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES ('fooba'),('abcde'),('xyzab'); +SET optimizer_trace = 'enabled=on'; +SELECT COUNT(*) FROM v1 WHERE MATCH (f) AGAINST ('fooba'); +DROP VIEW v1; +DROP TABLE t1; + set optimizer_trace='enabled=off'; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 644746d14bb..c619cd4e066 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -6487,6 +6487,7 @@ add_ft_keys(DYNAMIC_ARRAY *keyuse_array, keyuse.keypart_map= 0; keyuse.sj_pred_no= UINT_MAX; keyuse.validity_ref= 0; + keyuse.null_rejecting= FALSE; return insert_dynamic(keyuse_array,(uchar*) &keyuse); }