Skip to content

Commit f966d5d

Browse files
author
Amit Khandekar
committed
WL#13811 Iterator based EXPLAIN FORMAT=JSON [1/2]
FORMAT=TREE uses ExplainIterator() to generate the EXPLAIN tree output. With hypergraph optimizer enabled and FORMAT=JSON, follow this same ExplainIterator() path to generate the new iterator-based JSON output. Given an AccessPath, convert it into an intermediate Json structure. This structure can be then used to print it into either json format or tree format. ExplainAccessPath() now returns a Json object. This object is passed to ExplainJsonToString() to convert it into a string. Explain_format_tree and Explain_format_json have their overridden ExplainJsonToString() functions. For supporting the new JSON format, use the same Explain_format_JSON structure. But have a new enum member m_version which will indicate whether the JSON format is iterator-based or not. Materialize and other similar plans need to show their table iterator plans as their parent plans. So generate a subplan tree for the table iterator plan and push the main Materialize plan under the leaf node of the subplan tree. Note: Earlier, we used to print only the first line of the table iterator subplan. Support EXPLAIN ANALYZE. Use iterator->GetProfiler() to collect the actual costs. Show top level re-written query in the new JSON format. SHA Subplan token related changes are done in Explain_format_tree function. It's a bit different than the original. The subtokens are generated *while* the tree is traversed for explain output. Earlier, the whole subplan tree was scanned at each tree node to generate the token for that node (GetForceSubplanToken was called for each node). A side effect of this commit is that the list of subplan tokens that is returned back has a different order (child to parent), but that does not matter. So an mtr test needed to be changed. For this commit, the JSON format displays only cost fields. Many more fields will be included in the next commit. In --hypergraph mode, many mtr tests had to skip FORMAT=JSON statements. For any test that has only EXPLAIN statements, the test itself is skipped. Change-Id: Ibf5f6c267ebd9c65d1c1e428227c96e88d98ac85
1 parent aa2895a commit f966d5d

File tree

74 files changed

+1234
-655
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1234
-655
lines changed

mysql-test/include/explain_for_connection.inc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ SET DEBUG_SYNC= 'RESET';
2828
# Grab output of regular explain
2929
--replace_regex $replace
3030
--output $MYSQL_TMP_DIR/EN
31+
--skip_if_hypergraph # Depends on the query plan.
3132
eval EXPLAIN $fmt $query;
3233

3334

@@ -43,6 +44,7 @@ SET DEBUG_SYNC= 'now WAIT_FOR ready_for_explain';
4344
SET DEBUG_SYNC= 'after_explain_other SIGNAL explained';
4445
--replace_regex $replace
4546
--output $MYSQL_TMP_DIR/EO
47+
--skip_if_hypergraph # Depends on the query plan.
4648
eval EXPLAIN $fmt FOR CONNECTION $QID;
4749

4850
connection cq;

mysql-test/include/explain_for_connection_small.inc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
--source include/not_hypergraph.inc # Non-traditional formats differ in hypergraph.
2+
13
--source include/have_debug.inc
24
--source include/have_debug_sync.inc
35
--source include/not_windows.inc

mysql-test/include/index_merge_ror.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ select key1,key2 from t1 where key1=100 and key2=100;
135135
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
136136
# Mask cost values since it varies between runs how much of the indexes
137137
# are cached in InnoDB's buffer pool
138+
--skip_if_hypergraph # Depends on the query plan.
138139
--replace_regex /(_cost": )"[0-9.]+"/\1"#"/
139140
explain format=json select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
140141
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;

mysql-test/include/order_by.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ ANALYZE TABLE t1;
242242
explain select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
243243
select * from t1 where (a = 1 and b is null and c = 'b') or (a > 2) order by a desc;
244244
explain select * from t1 where a >= 1 and a < 3 order by a desc;
245+
--skip_if_hypergraph # Depends on the query plan.
245246
explain format=json select * from t1 where a >= 1 and a < 3 order by a desc;
246247
--partially_sorted_result 1
247248
select * from t1 where a >= 1 and a < 3 order by a desc;

mysql-test/include/subquery_sj.inc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ update t22 set c = '2005-12-08 15:58:27' where a = 255;
417417
ANALYZE TABLE t1, t11, t12, t21, t22;
418418
explain select t21.* from t21,t22 where t21.a = t22.a and
419419
t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a;
420+
--skip_if_hypergraph # Depends on the query plan.
420421
explain format=json select * from t1 where a in (select a from t11);
421422
select t21.* from t21,t22 where t21.a = t22.a and
422423
t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a;
@@ -454,6 +455,7 @@ select * from t1 where 2 in (select a from t0);
454455
#
455456
let $query=select * from (select a from t0) x where a in (select a from t1);
456457
--eval explain $query
458+
--skip_if_hypergraph # Depends on the query plan.
457459
--eval explain format=json $query
458460
drop table t0, t1;
459461

@@ -579,6 +581,7 @@ insert into t3 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t1 A, t1 B, t1 C
579581
ANALYZE TABLE t1, t2, t3;
580582
explain select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3;
581583
--replace_regex /"rows_produced_per_join": 792/"rows_produced_per_join": 793/
584+
--skip_if_hypergraph # Depends on the query plan.
582585
explain format=json select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3;
583586

584587
#
@@ -3140,6 +3143,7 @@ ANALYZE TABLE t1, t2, t3;
31403143
--replace_column 11 10
31413144
--eval EXPLAIN $query
31423145
--replace_regex /"filtered": "50.00"/"filtered": "10.00"/ /"read_cost": "0.12"/"read_cost": "0.13"/ /"prefix_cost": "11.69"/"prefix_cost": "11.70"/
3146+
--skip_if_hypergraph # Depends on the query plan.
31433147
--eval EXPLAIN FORMAT=JSON $query
31443148

31453149
DROP TABLE t1,t2,t3;
@@ -5017,6 +5021,7 @@ WHERE g1 NOT IN
50175021
);
50185022
ANALYZE TABLE t1, t2, t3;
50195023
eval explain $query;
5024+
--skip_if_hypergraph # Depends on the query plan.
50205025
eval explain format=json $query;
50215026
eval $query;
50225027

@@ -6422,6 +6427,7 @@ SELECT t2.vc, t2.ik AS t2_ik, t1.ik AS t1_ik
64226427
FROM t2 LEFT JOIN t1 ON t2.vc=t1.vc
64236428
WHERE t2.vc IN (SELECT vc FROM t2 AS t3);
64246429
ANALYZE TABLE t1, t2;
6430+
--skip_if_hypergraph # Depends on the query plan.
64256431
eval explain format=json $query;
64266432
--sorted_result
64276433
eval $query;
@@ -6502,6 +6508,7 @@ WHERE (col_varchar_nokey, col_varchar_nokey) IN
65026508
FROM t2 AS derived2
65036509
);
65046510

6511+
--skip_if_hypergraph # Depends on the query plan.
65056512
eval explain format=json $query;
65066513
--sorted_result
65076514
eval $query;
@@ -6539,6 +6546,7 @@ WHERE (col_int_nokey, col_int_nokey) IN
65396546
FROM t2
65406547
);
65416548

6549+
--skip_if_hypergraph # Depends on the query plan.
65426550
eval explain format=json $query;
65436551
--sorted_result
65446552
eval $query;
@@ -6622,6 +6630,7 @@ WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
66226630
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
66236631
WHERE sq2_alias2.col_int_key < 2);
66246632
--replace_regex /"eval_cost": "0.13"/"eval_cost": "0.12"/
6633+
--skip_if_hypergraph # Depends on the query plan.
66256634
eval explain format=json $query;
66266635
--sorted_result
66276636
eval $query;

mysql-test/include/window_bitwise_ops.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ SELECT HEX(i), HEX(li), HEX(b), HEX(lb),
6262
--echo our dummy double d SUM which forces non-optimized mode
6363
--echo iff windowing_use_high_precision==TRUE
6464
ANALYZE TABLE t;
65+
--skip_if_hypergraph # Depends on the query plan.
6566
EXPLAIN FORMAT=JSON
6667
SELECT HEX(i), HEX(li), HEX(b), HEX(lb),
6768
HEX(BIT_OR(i) OVER w), HEX(BIT_OR(li) OVER w),

mysql-test/include/window_std_var.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ SELECT i, j, VARIANCE(i+j) OVER (ORDER BY j DESC ROWS UNBOUNDED PRECEDING) varia
2828

2929
--echo Check that we eliminate redundant sorting in ORDER BY even with wfs
3030
SELECT i, j, STD(i+j) OVER (ROWS UNBOUNDED PRECEDING) std FROM t ORDER BY NULL DESC;
31+
--skip_if_hypergraph # Depends on the query plan.
3132
EXPLAIN FORMAT=JSON SELECT i, j, std(i+j) OVER (ROWS UNBOUNDED PRECEDING) STD FROM t ORDER BY NULL DESC;
3233
--echo With LIMIT
3334
SELECT i, j, STD(i+j) OVER (ROWS UNBOUNDED PRECEDING) STD FROM t ORDER BY std DESC LIMIT 3;

mysql-test/r/explain_tree.result

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ ERROR 42000: This version of MySQL doesn't yet support 'EXPLAIN ANALYZE FOR CONN
729729
EXPLAIN ANALYZE FORMAT=TRADITIONAL SELECT 1;
730730
ERROR 42000: This version of MySQL doesn't yet support 'FORMAT=TRADITIONAL with EXPLAIN ANALYZE'
731731
EXPLAIN ANALYZE FORMAT=JSON SELECT 1;
732-
ERROR 42000: This version of MySQL doesn't yet support 'FORMAT=JSON with EXPLAIN ANALYZE'
732+
ERROR 42000: This version of MySQL doesn't yet support 'EXPLAIN ANALYZE with JSON format'
733733
EXPLAIN ANALYZE FORMAT=TREE SELECT 1;
734734
EXPLAIN
735735
-> Rows fetched before execution (cost=0.00..0.00 rows=1) (actual time=N.NNN..N.NNN rows=1 loops=1)
@@ -870,10 +870,11 @@ EXPLAIN
870870
-> Select #2 (subquery in projection; dependent)
871871
-> Limit: 1 row(s) (cost=0.45..0.45 rows=1)
872872
-> Filter: <if>(outer_field_is_not_null, <is_not_null_test>(d.a), true) (cost=0.45..0.45 rows=1)
873-
-> Alternative plans for IN subquery: Index lookup unless a IS NULL [other sub-iterators not shown]
873+
-> Alternative plans for IN subquery: Index lookup unless a IS NULL
874874
-> Covering index lookup on d using <auto_key0> (a=<cache>(t1.a) or NULL)
875875
-> Materialize (cost=0.45..0.45 rows=1)
876876
-> Table scan on t1 (cost=0.35 rows=1)
877+
-> Table scan on d
877878

878879
Warnings:
879880
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
@@ -1160,8 +1161,8 @@ EXPLAIN
11601161
-> Aggregate: max(x1.m1) (cost=2.50..2.50 rows=1) (never executed)
11611162
-> Table scan on x1 (cost=2.50..2.50 rows=0) (never executed)
11621163
-> Materialize CTE x1 (cost=2.50..2.50 rows=0) (never executed)
1163-
-> Table scan on <temporary> (never executed)
1164-
-> Aggregate using temporary table (never executed)
1164+
-> Table scan on <temporary> (never executed)
1165+
-> Aggregate using temporary table (never executed)
11651166
-> Table scan on t1 (cost=0.35 rows=1) (never executed)
11661167

11671168
DROP TABLE t1;

mysql-test/r/subplan_tokens.result

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ EXPLAIN
2525
-> [0xeed2c0bd3e39ba93] Table scan on t1 (cost=0.08..0.25 rows=3)
2626

2727
To force this plan, use:
28-
SET DEBUG='+d,subplan_tokens,force_subplan_0xd3135ef8a92cb9b8,force_subplan_0xeed2c0bd3e39ba93';
28+
SET DEBUG='+d,subplan_tokens,force_subplan_0xeed2c0bd3e39ba93,force_subplan_0xd3135ef8a92cb9b8';
2929

3030
SET DEBUG='+d,subplan_tokens,'
3131
'force_subplan_0x38d170e70c04e92c,'
@@ -40,7 +40,7 @@ EXPLAIN
4040
-> [0x079e429c703ec298] Table scan on t2 (cost=0.08..0.25 rows=3)
4141

4242
To force this plan, use:
43-
SET DEBUG='+d,subplan_tokens,force_subplan_0x1836646581797f8f,force_subplan_0x38d170e70c04e92c,force_subplan_0xeed2c0bd3e39ba93,force_subplan_0x079e429c703ec298';
43+
SET DEBUG='+d,subplan_tokens,force_subplan_0xeed2c0bd3e39ba93,force_subplan_0x079e429c703ec298,force_subplan_0x38d170e70c04e92c,force_subplan_0x1836646581797f8f';
4444

4545
SET DEBUG='-d,subplan_tokens';
4646
EXPLAIN FORMAT=tree SELECT * FROM t1 JOIN t1 AS t2 ON t1.a=t2.a ORDER BY t1.a;

mysql-test/suite/innodb/include/explain_then_rollback_and_commit.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
--skip_if_hypergraph # Depends on the query plan.
12
--eval EXPLAIN FORMAT=JSON $sql_to_do
23

34
BEGIN;

mysql-test/suite/innodb/t/blob_partial_update.test

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@ INSERT INTO tab VALUES
2323
ANALYZE TABLE tab;
2424
--echo # Sven
2525
select json_extract(j1, '$[0]') from tab;
26+
--skip_if_hypergraph # Depends on the query plan.
2627
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'VISWA');
2728
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Viswa');
2829
--echo # Show Viswa
2930
select json_extract(j1, '$[0]') from tab;
31+
--skip_if_hypergraph # Depends on the query plan.
3032
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Nath');
3133
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Nath');
3234
--echo # Show Nath
@@ -36,6 +38,7 @@ select json_extract(j1, '$[0]') from tab;
3638

3739
ALTER TABLE tab MODIFY j1 LONGTEXT ;
3840

41+
--skip_if_hypergraph # Depends on the query plan.
3942
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setlongtext');
4043

4144
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setlongtext');
@@ -50,6 +53,7 @@ SELECT JSON_STORAGE_FREE(j1) FROM tab;
5053
--echo # Show Setlongtext
5154
SELECT json_extract(j1, '$[0]') FROM tab;
5255

56+
--skip_if_hypergraph # Depends on the query plan.
5357
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Replongtext');
5458

5559
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Replongtext');
@@ -67,6 +71,7 @@ SELECT json_extract(j1, '$[0]') from tab;
6771
--echo When column modify from LONGTEXT to JSON
6872
ALTER TABLE tab MODIFY j1 JSON ;
6973

74+
--skip_if_hypergraph # Depends on the query plan.
7075
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setjson');
7176

7277
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setjson');
@@ -76,6 +81,7 @@ ANALYZE TABLE tab;
7681
--echo # Show Setjson
7782
SELECT json_extract(j1, '$[0]') FROM tab;
7883

84+
--skip_if_hypergraph # Depends on the query plan.
7985
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repjson');
8086

8187
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repjson');
@@ -90,6 +96,7 @@ ALTER TABLE tab ROW_FORMAT = COMPRESSED ;
9096

9197
SHOW CREATE TABLE tab;
9298

99+
--skip_if_hypergraph # Depends on the query plan.
93100
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setcomp');
94101

95102
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setcomp');
@@ -99,6 +106,7 @@ ANALYZE TABLE tab;
99106
--echo # Show Setcomp
100107
SELECT json_extract(j1, '$[0]') FROM tab;
101108

109+
--skip_if_hypergraph # Depends on the query plan.
102110
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repcomp');
103111

104112
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repcomp');
@@ -113,6 +121,7 @@ ANALYZE TABLE tab;
113121

114122
SHOW CREATE TABLE tab;
115123

124+
--skip_if_hypergraph # Depends on the query plan.
116125
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setdyna');
117126

118127
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setdyna');
@@ -122,6 +131,7 @@ ANALYZE TABLE tab;
122131
--echo # Show Setdyna
123132
SELECT json_extract(j1, '$[0]') FROM tab;
124133

134+
--skip_if_hypergraph # Depends on the query plan.
125135
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repdyna');
126136

127137
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repdyna');
@@ -136,6 +146,7 @@ ALTER TABLE tab ROW_FORMAT = REDUNDANT ;
136146

137147
SHOW CREATE TABLE tab;
138148

149+
--skip_if_hypergraph # Depends on the query plan.
139150
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setredu');
140151

141152
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setredu');
@@ -145,6 +156,7 @@ ANALYZE TABLE tab;
145156
--echo # Show Setredu
146157
SELECT json_extract(j1, '$[0]') FROM tab;
147158

159+
--skip_if_hypergraph # Depends on the query plan.
148160
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repredu');
149161

150162
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repredu');
@@ -159,6 +171,7 @@ SHOW CREATE TABLE tab;
159171

160172
ANALYZE TABLE tab;
161173

174+
--skip_if_hypergraph # Depends on the query plan.
162175
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setcomp');
163176

164177
UPDATE tab SET j1 = JSON_SET(j1, '$[0]', 'Setcomp');
@@ -168,6 +181,7 @@ ANALYZE TABLE tab;
168181
--echo # Show Setcomp
169182
SELECT json_extract(j1, '$[0]') FROM tab;
170183

184+
--skip_if_hypergraph # Depends on the query plan.
171185
EXPLAIN FORMAT=JSON UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repcomp');
172186

173187
UPDATE tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repcomp');
@@ -178,6 +192,7 @@ SELECT json_extract(j1, '$[0]') FROM tab;
178192
--echo # Create a view on JSON column
179193
CREATE VIEW view_tab AS SELECT * FROM tab;
180194

195+
--skip_if_hypergraph # Depends on the query plan.
181196
EXPLAIN FORMAT=JSON UPDATE view_tab SET j1 = JSON_SET(j1, '$[0]', 'Setview');
182197

183198
UPDATE view_tab SET j1 = JSON_SET(j1, '$[0]', 'Setview');
@@ -192,6 +207,7 @@ SELECT JSON_STORAGE_FREE(j1) FROM view_tab;
192207
--echo # Show Setview
193208
SELECT json_extract(j1, '$[0]') FROM view_tab;
194209

210+
--skip_if_hypergraph # Depends on the query plan.
195211
EXPLAIN FORMAT=JSON UPDATE view_tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repview');
196212

197213
UPDATE view_tab SET j1 = JSON_REPLACE(j1, '$[0]', 'Repview');
@@ -296,6 +312,7 @@ INSERT INTO tab2 VALUES(1, '{"a":"a","b":"b"}', DEFAULT);
296312

297313
ANALYZE TABLE tab2;
298314

315+
--skip_if_hypergraph # Depends on the query plan.
299316
--error ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
300317
EXPLAIN FORMAT=JSON UPDATE tab2 SET c2 = JSON_SET(c2, '$.a', 'x');
301318

@@ -319,6 +336,7 @@ INSERT INTO tab3 VALUES(3, '{"Chetan": [300,400],"Sasri": [500,600]}','{"Dhoni":
319336
SELECT * FROM tab3 order by a;
320337

321338
--echo Check with JSON_SET
339+
--skip_if_hypergraph # Depends on the query plan.
322340
EXPLAIN FORMAT=JSON UPDATE tab3 SET j1 = JSON_SET(j1, '$.a', 'x'),
323341
j2 = JSON_SET(j2, '$.a', 'y'),
324342
j1 = JSON_SET(j1, '$.b', 'z');
@@ -330,6 +348,7 @@ j1 = JSON_SET(j1, '$.b', 'z');
330348
SELECT * FROM tab3 order by a;
331349

332350
--echo Check with JSON_REPLACE
351+
--skip_if_hypergraph # Depends on the query plan.
333352
EXPLAIN FORMAT=JSON UPDATE tab3 SET j1 = JSON_REPLACE(j1,'$[1].A1', 'partRe') ;
334353

335354
UPDATE tab3 SET j1 = JSON_REPLACE(j1,'$[1].A1', 'PartRe') ;

mysql-test/suite/innodb/t/blob_partial_update_2.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ INSERT INTO tab2 VALUES(1, '{"a":"a","b":"b"}', DEFAULT);
309309

310310
ANALYZE TABLE tab2;
311311

312+
--skip_if_hypergraph # Depends on the query plan.
312313
--error ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
313314
EXPLAIN FORMAT=JSON UPDATE tab2 SET c2 = JSON_SET(c2, '$.a', 'x');
314315

mysql-test/suite/innodb_fts/t/opt.test

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,6 +1028,7 @@ DROP TABLE t1;
10281028
CREATE TABLE t1(f1 CHAR(1) CHARSET latin1, FULLTEXT(f1)) ENGINE=INNODB;
10291029
EXPLAIN SELECT 1 FROM t1 WHERE 1.238585e+308 <= MATCH(f1) AGAINST ('1' IN BOOLEAN MODE);
10301030

1031+
--skip_if_hypergraph # Depends on query plan.
10311032
EXPLAIN FORMAT = JSON SELECT 1 FROM t1 WHERE 1.238585e+308 <= MATCH(f1) AGAINST ('1' IN BOOLEAN MODE);
10321033

10331034
DROP TABLE t1;

0 commit comments

Comments
 (0)