[MCOL-5408] JSON_TYPE() returned incorrect result Created: 2023-01-30  Updated: 2023-02-01

Status: Open
Project: MariaDB ColumnStore
Component/s: PrimProc
Affects Version/s: 22.08.7, 22.08.8
Fix Version/s: Icebox

Type: Bug Priority: Major
Reporter: Daniel Lee (Inactive) Assignee: Roman
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-28947 JSON_TYPE result is turncated, charse... Closed

 Description   

Build tested: 22.08.8 RC

JSON_TYPE(datatype) returns "OBJE" instead of "OBJECT"

For InnoDB tables, "OBJECT" is returned.

The difference is in the last query in the following examples.

ColumnStore

MariaDB [mytest]> CREATE TABLE `jsontest` (
    ->   `cInt` int(11) DEFAULT NULL,
    ->   `cVarchar` varchar(300) DEFAULT NULL,
    ->   `cText` text DEFAULT NULL
    -> ) ENGINE=Columnstore;
Query OK, 0 rows affected (0.143 sec)
 
MariaDB [mytest]> 
MariaDB [mytest]> SET @json = '{"A": 1, "B": 2, "C": 3}';
Query OK, 0 rows affected (0.000 sec)
 
MariaDB [mytest]> SELECT @json;
+--------------------------+
| @json                    |
+--------------------------+
| {"A": 1, "B": 2, "C": 3} |
+--------------------------+
1 row in set (0.000 sec)
 
MariaDB [mytest]> INSERT INTO jsontest VALUES (1, @json, @json);
Query OK, 1 row affected (0.145 sec)
 
MariaDB [mytest]> #
MariaDB [mytest]> SELECT JSON_TYPE(@json);
+------------------+
| JSON_TYPE(@json) |
+------------------+
| OBJECT           |
+------------------+
1 row in set (0.000 sec)
 
MariaDB [mytest]> #
MariaDB [mytest]> SELECT * FROM jsontest;
+------+--------------------------+--------------------------+
| cInt | cVarchar                 | cText                    |
+------+--------------------------+--------------------------+
|    1 | {"A": 1, "B": 2, "C": 3} | {"A": 1, "B": 2, "C": 3} |
+------+--------------------------+--------------------------+
1 row in set (0.033 sec)
 
MariaDB [mytest]> SELECT cVarchar, JSON_TYPE(cVarchar), cText, JSON_TYPE(cText) from jsontest;
+--------------------------+---------------------+--------------------------+------------------+
| cVarchar                 | JSON_TYPE(cVarchar) | cText                    | JSON_TYPE(cText) |
+--------------------------+---------------------+--------------------------+------------------+
| {"A": 1, "B": 2, "C": 3} | OBJE                | {"A": 1, "B": 2, "C": 3} | OBJE             |
+--------------------------+---------------------+--------------------------+------------------+
1 row in set (0.005 sec)

InnoDB

MariaDB [mytest]> DROP TABLE IF EXISTS jsontest;
Query OK, 0 rows affected (0.003 sec)
 
MariaDB [mytest]> CREATE TABLE `jsontest` (
    ->   `cInt` int(11) DEFAULT NULL,
    ->   `cVarchar` varchar(300) DEFAULT NULL,
    ->   `cText` text DEFAULT NULL
    -> ) ENGINE=innodb;
Query OK, 0 rows affected (0.002 sec)
 
MariaDB [mytest]> 
MariaDB [mytest]> SET @json = '{"A": 1, "B": 2, "C": 3}';
Query OK, 0 rows affected (0.000 sec)
 
MariaDB [mytest]> SELECT @json;
+--------------------------+
| @json                    |
+--------------------------+
| {"A": 1, "B": 2, "C": 3} |
+--------------------------+
1 row in set (0.000 sec)
 
MariaDB [mytest]> INSERT INTO jsontest VALUES (1, @json, @json);
Query OK, 1 row affected (0.000 sec)
 
MariaDB [mytest]> #
MariaDB [mytest]> SELECT JSON_TYPE(@json);
+------------------+
| JSON_TYPE(@json) |
+------------------+
| OBJECT           |
+------------------+
1 row in set (0.000 sec)
 
MariaDB [mytest]> #
MariaDB [mytest]> SELECT * FROM jsontest;
+------+--------------------------+--------------------------+
| cInt | cVarchar                 | cText                    |
+------+--------------------------+--------------------------+
|    1 | {"A": 1, "B": 2, "C": 3} | {"A": 1, "B": 2, "C": 3} |
+------+--------------------------+--------------------------+
1 row in set (0.000 sec)
 
MariaDB [mytest]> SELECT cVarchar, JSON_TYPE(cVarchar), cText, JSON_TYPE(cText) from jsontest;
+--------------------------+---------------------+--------------------------+------------------+
| cVarchar                 | JSON_TYPE(cVarchar) | cText                    | JSON_TYPE(cText) |
+--------------------------+---------------------+--------------------------+------------------+
| {"A": 1, "B": 2, "C": 3} | OBJECT              | {"A": 1, "B": 2, "C": 3} | OBJECT           |
+--------------------------+---------------------+--------------------------+------------------+



 Comments   
Comment by Roman [ 2023-01-31 ]

This issue has been reported long time ago. See the issue linked. It was even fixed in CS server.

Generated at Thu Feb 08 02:57:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.