I am generating the CSV file by other means than the COPY ... TO command
and I thought that the NULL option did not apply to the COPY ... FROM
command but, as it turns out, it does! This solved my problem.

The documentation here (
http://www.datastax.com/documentation/cql/3.1/webhelp/index.html#cql/cql_reference/copy_r.html)
is misleading. Should I report this by other means than this post?

Thanks,
Petter





2013/9/24 Sylvain Lebresne <sylv...@datastax.com>

> Oh. That would be a COPY thing then. I'm not extremely familiar with cqlsh
> code (which COPY is part of) but looking at the online help for it, it
> seems to have a 'NULL' option that allows to define which character is used
> to represent nulls. And by default, it does is an empty string. So you
> could try something like:
>   COPY ... TO ... WITH NULL='null'
> (assuming that if you do have nulls you use the string 'null' to encode it
> in your csv and that your are sure nothing that's not supposed to be null
> will be represented by the string 'null').
>
> --
> Sylvain
>
>
> On Tue, Sep 24, 2013 at 9:41 AM, Petter von Dolwitz (Hem) <
> petter.von.dolw...@gmail.com> wrote:
>
>> Hi Sylvain,
>>
>> I was not describing the problem correctly. I'm sorry for this. This is
>> the situation:
>>
>> 1. I'm populating the DB with the java-driver (INSERT INTO...). Some
>> fields that are part of the primary key is *empty strings*. This works fine.
>> 2. I'm trying to populate the DB from a CSV (COPY ... FROM) using cqlsh.
>> Some fields that are part of the primary key is *empty strings*. This
>> scenario gives me the "Bad Request: Invalid null value for clustering key
>> part {field_name}" message. Seems like empty strings are treated as NULL
>> when using the COPY .. FROM command?
>>
>> This can obviously be me not knowing how to encode an empty string in a
>> CSV file. A simplified row from the CSV file can look like below:
>>
>> "field1_value","","","field4_value","field5_value"
>>
>> whereas field1 through field4 is part of the primary key.
>>
>> Thanks for your time,
>> Petter
>>
>>
>>
>>
>> 2013/9/23 Sylvain Lebresne <sylv...@datastax.com>
>>
>>>
>>> Is it not permitted to have null values in a field that is part a
>>>> primary key?
>>>>
>>>
>>> It's not.
>>>
>>>
>>>> This seems to be ok when using the java-driver
>>>>
>>>
>>> Are you sure? Because that would qualify as a bug (in the sense that
>>> it's not supported by C* so there is not reason why this would work with
>>> any driver). If you have some java driver code that show it possible, I'd
>>> be happy to have a look.
>>>
>>> --
>>> Sylvain
>>>
>>
>>
>

Reply via email to