Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness
-
Normal
-
Normal
-
User Report
-
All
-
None
-
Description
Cqlsh fail to import an empty string which is present in a list data type.
In those conditions, simple csv backups can discard rows and data can be corrupted.
Conditions
# cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. CREATE TABLE test.test_1 ( uid uuid PRIMARY KEY, texts list<text> ); insert into test.test_1 ( uid, texts ) VALUES( 833fee3f-d4f9-418b-9387-84ac2cda5cb7, ['But if you now try to wash your hands,', ''] );
Now exporting and and re-importing data fails:
cqlsh> select * from test.test_1; uid | texts --------------------------------------+------------------------------------------------ 833fee3f-d4f9-418b-9387-84ac2cda5cb7 | ['But if you now try to wash your hands,', ''] cqlsh> COPY test.test_1 (uid, texts) TO 'ctm.csv'; Using 7 child processesStarting copy of test.test_1 with columns [uid, texts]. Processed: 1 rows; Rate: 9 rows/s; Avg. rate: 9 rows/s 1 rows exported to 1 files in 0.148 seconds. cqlsh> truncate table test.test_1; cqlsh> COPY test.test_1 (uid, texts) FROM 'ctm.csv'; Using 7 child processes Starting copy of test.test_1 with columns [uid, texts]. Failed to import 1 rows: ParseError - Failed to parse ['But if you now try to wash your hands,', ''] : Empty values are not allowed, given up without retries Failed to process 1 rows; failed rows written to import_test_test_1.err Processed: 1 rows; Rate: 2 rows/s; Avg. rate: 2 rows/s 1 rows imported from 1 files in 0.415 seconds (0 skipped). cqlsh> select * from test.test_1; uid | pid -----+-----