We need much more thorough test coverage for cqlsh's COPY TO/FROM commands. There is one existing basic dtest (cqlsh_tests.py:TestCqlsh.test_copy_to) that we can use as a starting point for new tests.
The following things need to be tested:
- Non-default delimiters
- Null fields and non-default null markers
- Skipping a header line
- Explicit column ordering
- Column names that need to be quoted
- Every supported C* data type
- Data that fails validation server-side
- Wrong number of columns
- Node going down during COPY operation
In the non-failure cases, the tests should generally inserted data into Cassandra, run COPY TO to dump the data to CSV, truncate, run COPY FROM to reimport the data, and then verify that the reloaded data matches the originally inserted data.