# Copyright 2023 PingCAP, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

mysql> drop table if exists test.t
mysql> create table test.t(a json, b json, c json, d json, e json)
mysql> alter table test.t set tiflash replica 1
mysql> insert into test.t values(null, '{\"a\" : \"b\", \"aa\" : \"bb\"}', '[1,2,[3,4]]', '[1,2,{\"a\":\"b\"}]', '\"hello world\"') #NO_UNESCAPE

func> wait_table test t

mysql> set tidb_enforce_mpp=1; select a->>'\$.a' as col_a, b->>'\$.a' as col_b, c->>'\$[2]' as col_c, d->>'\$[0].\"a\"' as col_d, e->>'\$[*]' from test.t #NO_UNESCAPE
+-------+-------+--------+-------+------------+
| col_a | col_b | col_c  | col_d | e->>'$[*]' |
+-------+-------+--------+-------+------------+
| NULL  | b     | [3, 4] | NULL  | NULL       |
+-------+-------+--------+-------+------------+

mysql> set tidb_enforce_mpp=1; select b->>'\$.*' as col_a, c->>'\$[*]' as col_b, d->>'\$**.a'  from test.t #NO_UNESCAPE
+-------------+----------------+-------------+
| col_a       | col_b          | d->>'$**.a' |
+-------------+----------------+-------------+
| ["b", "bb"] | [1, 2, [3, 4]] | ["b"]       |
+-------------+----------------+-------------+

mysql> drop table if exists test.t
