Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness
-
Normal
-
Low Hanging Fruit
-
User Report
-
Description
Currently, Apache Cassandra generates invalid JSON for the "duration" type.
cqlsh> CREATE KEYSPACE ks1 WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
cqlsh> CREATE TABLE ks1.data (id int, d duration, PRIMARY KEY (id));
cqlsh> INSERT INTO ks1.data (id, d) VALUES (1, 6h40m);
cqlsh> SELECT JSON d FROM ks1.data WHERE id = 1;
[json]
--------------
{"d": 6h40m}
That is, the duration is not quoted and is therefore invalid according to https://jsonlint.com/, for example.
Fix the problem by quoting the formatted duration type properly:
cqlsh> INSERT INTO ks1.data (id, d) VALUES (1, 6h40m);
cqlsh> SELECT JSON d FROM ks1.data WHERE id = 1;
[json]
----------------
{"d": "6h40m"}
(1 rows)
The problem is fixed by the following patch: