1install plugin mysqlx soname "mysqlx.so";
2call mtr.add_suppression("Plugin mysqlx reported: .Failed at SSL configuration: .SSL context is not usable without certificate and private key..");
3call mtr.add_suppression("Plugin mysqlx reported: .SSL_CTX_load_verify_locations failed.");
4DROP SCHEMA IF EXISTS xtest;
5Warnings:
6Note	1008	Can't drop database 'xtest'; database doesn't exist
7CREATE SCHEMA xtest DEFAULT CHARSET 'utf8mb4';
8CREATE TABLE xtest.xcoll (doc JSON, _id VARBINARY(16) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(doc, '$._id'))) STORED PRIMARY KEY);
9INSERT INTO xtest.xcoll (doc) VALUES
10('{"_id": 1, "age": 1, "name": "foo"}'),
11('{"_id": 2, "age": 2, "name": "bar"}'),
12('{"_id": 3, "age": 3, "name": "baz", "date": {"day": 20, "month": "Apr"}} '),
13('{"_id": 4, "age": 7, "name": "foo"}'),
14('{"_id": 5, "age": 17, "name": "buz"}');
15group by name
16doc
17{"name": "bar"}
18{"name": "baz"}
19{"name": "buz"}
20{"name": "foo"}
21command ok
22group by name and count
23doc
24{"name": "bar", "count": 1}
25{"name": "baz", "count": 1}
26{"name": "buz", "count": 1}
27{"name": "foo", "count": 2}
28command ok
29group by name, age and count
30doc
31{"age": 2, "name": "bar", "count": 1}
32{"age": 3, "name": "baz", "count": 1}
33{"age": 17, "name": "buz", "count": 1}
34{"age": 1, "name": "foo", "count": 1}
35{"age": 7, "name": "foo", "count": 1}
36command ok
37no projection - error expected
38Got expected error: Invalid empty projection list for grouping (code 5114)
39group by name, count name and criteria on count
40Got expected error: Invalid expression in grouping criteria (code 5154)
41group by name, criteria on max(age)
42doc
43{"my_age": "17", "my_name": "buz"}
44{"my_age": "7", "my_name": "foo"}
45command ok
46Mysqlx.Ok {
47  msg: "bye!"
48}
49ok
50DROP SCHEMA IF EXISTS xtest;
51UNINSTALL PLUGIN mysqlx;
52