[ 
https://issues.apache.org/jira/browse/CASSANDRA-12794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15801956#comment-15801956
 ] 

Tyler Hobbs commented on CASSANDRA-12794:
-----------------------------------------

I think this is a good solution.  +1 on committing, the patch and tests look 
good.

> COPY FROM with NULL='' fails when inserting empty row in primary key 
> ---------------------------------------------------------------------
>
>                 Key: CASSANDRA-12794
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12794
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>         Environment: Tested using C* 2.1.15
>            Reporter: Sucwinder Bassi
>            Assignee: Stefania
>             Fix For: 3.0.x, 3.x
>
>
> Using this table:
> {noformat}
> CREATE TABLE testtab (  a_id text,  b_id text,  c_id text,  d_id text,  
> order_id uuid,  acc_id bigint,  bucket bigint,  r_id text,  ts bigint,  
> PRIMARY KEY ((a_id, b_id, c_id, d_id), order_id));
> {noformat}
> insert one row:
> {noformat}
> INSERT INTO testtab (a_id, b_id , c_id , d_id , order_id, r_id ) VALUES ( '', 
> '', '', 'a1', 645e7d3c-aef7-4e3c-b834-24b792cf2e55, 'r1');
> {noformat}
> Use COPY to dump the row to temp.csv:
> {noformat}
> copy testtab TO 'temp.csv';
> {noformat}
> Which creates this file:
> {noformat}
> $ cat temp.csv 
> ,,,a1,645e7d3c-aef7-4e3c-b834-24b792cf2e55,,,r1,
> {noformat}
> Truncate the testtab table and then use copy from with NULL='' to insert the 
> row:
> {noformat}
> cqlsh:sbkeyspace> COPY testtab FROM 'temp.csv' with NULL='';
> Using 1 child processes
> Starting copy of sbkeyspace.testtab with columns ['a_id', 'b_id', 'c_id', 
> 'd_id', 'order_id', 'acc_id', 'bucket', 'r_id', 'ts'].
> Failed to import 1 rows: ParseError - Cannot insert null value for primary 
> key column 'a_id'. If you want to insert empty strings, consider using the 
> WITH NULL=<marker> option for COPY.,  given up without retries
> Failed to process 1 rows; failed rows written to import_sbkeyspace_testtab.err
> Processed: 1 rows; Rate:       2 rows/s; Avg. rate:       3 rows/s
> 1 rows imported from 1 files in 0.398 seconds (0 skipped).
> {noformat}
> It shows 1 rows inserted, but the table is empty:
> {noformat}
> select * from testtab ;
>  a_id | b_id | c_id | d_id | order_id | acc_id | bucket | r_id | ts
> ------+------+------+------+----------+--------+--------+------+----
> (0 rows)
> {noformat}
> The same error is returned even without the with NULL=''. Is it actually 
> possible for copy from to insert an empty row into the primary key? The 
> insert command shown above inserts the empty row for the primary key without 
> any problems.
> Is this related to https://issues.apache.org/jira/browse/CASSANDRA-7792?



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

Reply via email to