Stefania created CASSANDRA-12863:
------------------------------------

             Summary: cqlsh COPY FROM cannot parse timestamp in partition key 
if table contains a counter value
                 Key: CASSANDRA-12863
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12863
             Project: Cassandra
          Issue Type: Bug
          Components: Tools
            Reporter: Stefania
            Assignee: Stefania
             Fix For: 2.2.x, 3.0.x, 3.x


This sample table:

{code}
CREATE TABLE test (columnname text, day timestamp, israndom boolean, 
columnvalue text, counter counter, PRIMARY KEY ((columnname, day, israndom), 
columnvalue));
{code}

with this sample data:

{code}
origins|2016-10-01 00:00:00+0000|False|ACTUAL|6
origins|2016-10-01 00:00:00+0000|False|ADGMOB|4
origins|2016-10-01 00:00:00+0000|False|ANONPM|4
origins|2016-10-01 00:00:00+0000|False|CSRT2L|76
origins|2016-10-01 00:00:00+0000|False|DIAGOP|18
origins|2016-10-01 00:00:00+0000|False|E-SOFT|17
origins|2016-10-01 00:00:00+0000|False|E-TASK|10
{code}

when imported with

{code}
COPY ks.test FROM 'test.csv' WITH DELIMITER = '|';
{code}

will generate a parse error:

{code}
Failed to import 7 rows: ParseError - can't interpret u"'2016-10-01 
00:00:00+0000'" as a date with this format: %Y-%m-%d %H:%M:%S%z,  given up 
without retries
{code}

The problem is that when a counter value is present, we don't use prepared 
statements and hence add quotes to certain types, such as timestamps. However, 
because the timestamp is part of the partition key, we must parse it in order 
to determine the routing token. Here lies the problem, we do not remove the 
quotes before parsing the partition key, therefore ending up with a parse error.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to