You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-01 06:46:55 +03:00
fix(PrimProc): MCOL-5394 JSON_ARRAYAGG in MCS works differently than in InnoDB
This commit is contained in:
committed by
Alexey Antipovsky
parent
21ebd1ac20
commit
c618fa284d
100
mysql-test/columnstore/bugfixes/MCOL-5394-json_arrayagg.result
Normal file
100
mysql-test/columnstore/bugfixes/MCOL-5394-json_arrayagg.result
Normal file
@ -0,0 +1,100 @@
|
||||
DROP DATABASE IF EXISTS mcol_5394 ;
|
||||
CREATE DATABASE mcol_5394 ;
|
||||
USE mcol_5394 ;
|
||||
CREATE TABLE t1 (a int, k int, b VARCHAR(10)) engine=columnstore;
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 1, "alfa"),
|
||||
(1, 2, null),
|
||||
(2, 3, "doi"),
|
||||
(1, 4, "unu"),
|
||||
(3, 5, "trei"),
|
||||
(4, 6, null),
|
||||
(4, 7, null),
|
||||
(1, 8, "one");
|
||||
SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a;
|
||||
a JSON_ARRAYAGG(b)
|
||||
1 ["alfa",null,"unu","one"]
|
||||
2 ["doi"]
|
||||
3 ["trei"]
|
||||
4 [null,null]
|
||||
SELECT JSON_ARRAYAGG(b) FROM t1;
|
||||
JSON_ARRAYAGG(b)
|
||||
["alfa",null,"doi","unu","trei",null,null,"one"]
|
||||
PREPARE p1 FROM "SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a";
|
||||
EXECUTE p1;
|
||||
a JSON_ARRAYAGG(b)
|
||||
1 ["alfa",null,"unu","one"]
|
||||
2 ["doi"]
|
||||
3 ["trei"]
|
||||
4 [null,null]
|
||||
EXECUTE p1;
|
||||
a JSON_ARRAYAGG(b)
|
||||
1 ["alfa",null,"unu","one"]
|
||||
2 ["doi"]
|
||||
3 ["trei"]
|
||||
4 [null,null]
|
||||
deallocate prepare p1;
|
||||
PREPARE p3 FROM
|
||||
"SELECT SQL_BUFFER_RESULT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a";
|
||||
EXECUTE p3;
|
||||
a JSON_ARRAYAGG(b)
|
||||
1 ["alfa",null,"unu","one"]
|
||||
2 ["doi"]
|
||||
3 ["trei"]
|
||||
4 [null,null]
|
||||
EXECUTE p3;
|
||||
a JSON_ARRAYAGG(b)
|
||||
1 ["alfa",null,"unu","one"]
|
||||
2 ["doi"]
|
||||
3 ["trei"]
|
||||
4 [null,null]
|
||||
deallocate prepare p3;
|
||||
PREPARE p4 FROM "SELECT JSON_ARRAYAGG(b) FROM t1";
|
||||
EXECUTE p4;
|
||||
JSON_ARRAYAGG(b)
|
||||
["alfa",null,"doi","unu","trei",null,null,"one"]
|
||||
EXECUTE p4;
|
||||
JSON_ARRAYAGG(b)
|
||||
["alfa",null,"doi","unu","trei",null,null,"one"]
|
||||
deallocate prepare p4;
|
||||
SELECT JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1;
|
||||
JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]')
|
||||
["alfa", null, "doi", "unu", "trei", null, null, "one", true, false]
|
||||
PREPARE p1 FROM
|
||||
"SELECT a, JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1 GROUP BY a";
|
||||
EXECUTE p1;
|
||||
a JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]')
|
||||
1 ["alfa", null, "unu", "one", true, false]
|
||||
2 ["doi", true, false]
|
||||
3 ["trei", true, false]
|
||||
4 [null, null, true, false]
|
||||
EXECUTE p1;
|
||||
a JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]')
|
||||
1 ["alfa", null, "unu", "one", true, false]
|
||||
2 ["doi", true, false]
|
||||
3 ["trei", true, false]
|
||||
4 [null, null, true, false]
|
||||
deallocate prepare p1;
|
||||
PREPARE p4 FROM
|
||||
"SELECT JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1";
|
||||
EXECUTE p4;
|
||||
JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]')
|
||||
["alfa", null, "doi", "unu", "trei", null, null, "one", true, false]
|
||||
EXECUTE p4;
|
||||
JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]')
|
||||
["alfa", null, "doi", "unu", "trei", null, null, "one", true, false]
|
||||
deallocate prepare p4;
|
||||
SELECT a, JSON_ARRAYAGG(b) as jarray
|
||||
FROM t1
|
||||
GROUP BY a
|
||||
HAVING jarray= JSON_ARRAY("trei");
|
||||
a jarray
|
||||
3 ["trei"]
|
||||
TRUNCATE TABLE t1;
|
||||
SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a;
|
||||
a JSON_ARRAYAGG(b)
|
||||
SELECT JSON_ARRAYAGG(b) FROM t1;
|
||||
JSON_ARRAYAGG(b)
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE mcol_5394;
|
82
mysql-test/columnstore/bugfixes/MCOL-5394-json_arrayagg.test
Normal file
82
mysql-test/columnstore/bugfixes/MCOL-5394-json_arrayagg.test
Normal file
@ -0,0 +1,82 @@
|
||||
--source ../include/have_columnstore.inc
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS mcol_5394 ;
|
||||
--enable_warnings
|
||||
CREATE DATABASE mcol_5394 ;
|
||||
USE mcol_5394 ;
|
||||
|
||||
CREATE TABLE t1 (a int, k int, b VARCHAR(10)) engine=columnstore;
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 1, "alfa"),
|
||||
(1, 2, null),
|
||||
(2, 3, "doi"),
|
||||
(1, 4, "unu"),
|
||||
(3, 5, "trei"),
|
||||
(4, 6, null),
|
||||
(4, 7, null),
|
||||
(1, 8, "one");
|
||||
|
||||
--sorted_result
|
||||
SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a;
|
||||
--sorted_result
|
||||
SELECT JSON_ARRAYAGG(b) FROM t1;
|
||||
|
||||
PREPARE p1 FROM "SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a";
|
||||
--sorted_result
|
||||
EXECUTE p1;
|
||||
--sorted_result
|
||||
EXECUTE p1;
|
||||
deallocate prepare p1;
|
||||
|
||||
PREPARE p3 FROM
|
||||
"SELECT SQL_BUFFER_RESULT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a";
|
||||
--sorted_result
|
||||
EXECUTE p3;
|
||||
--sorted_result
|
||||
EXECUTE p3;
|
||||
deallocate prepare p3;
|
||||
|
||||
PREPARE p4 FROM "SELECT JSON_ARRAYAGG(b) FROM t1";
|
||||
--sorted_result
|
||||
EXECUTE p4;
|
||||
--sorted_result
|
||||
EXECUTE p4;
|
||||
deallocate prepare p4;
|
||||
|
||||
|
||||
--sorted_result
|
||||
SELECT JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1;
|
||||
|
||||
PREPARE p1 FROM
|
||||
"SELECT a, JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1 GROUP BY a";
|
||||
--sorted_result
|
||||
EXECUTE p1;
|
||||
--sorted_result
|
||||
EXECUTE p1;
|
||||
deallocate prepare p1;
|
||||
|
||||
|
||||
PREPARE p4 FROM
|
||||
"SELECT JSON_MERGE_PRESERVE(JSON_ARRAYAGG(b), '[true, false]') FROM t1";
|
||||
--sorted_result
|
||||
EXECUTE p4;
|
||||
--sorted_result
|
||||
EXECUTE p4;
|
||||
deallocate prepare p4;
|
||||
|
||||
|
||||
--sorted_result
|
||||
SELECT a, JSON_ARRAYAGG(b) as jarray
|
||||
FROM t1
|
||||
GROUP BY a
|
||||
HAVING jarray= JSON_ARRAY("trei");
|
||||
|
||||
TRUNCATE TABLE t1;
|
||||
|
||||
SELECT a, JSON_ARRAYAGG(b) FROM t1 GROUP BY a;
|
||||
SELECT JSON_ARRAYAGG(b) FROM t1;
|
||||
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
DROP DATABASE mcol_5394;
|
Reference in New Issue
Block a user