[ 
https://issues.apache.org/jira/browse/CASSANDRA-15679?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefania Alborghetti updated CASSANDRA-15679:
---------------------------------------------
    Test and Documentation Plan: 
This bug is triggered when we try to deserialize a blob inside a container, 
such as list, set, or map. copyutil stores blobs as bytearrays. Python 
bytearrays are mutable and not hashable data structures.

In Python 3 there is bytes type that is exactly what we need in this situation. 
On older versions that do not support Python 3 and in case we run cqlsh with 
Python 2 at 4.0, we should fall back to str.


https://github.com/apache/cassandra/pull/506
https://github.com/apache/cassandra/pull/507
https://github.com/apache/cassandra/pull/508
https://github.com/apache/cassandra/pull/509
https://github.com/apache/cassandra/pull/510
                         Status: Patch Available  (was: Open)

> cqlsh COPY FROM of map of blobs fails with parse error "unhashable type: 
> 'bytearray'"
> -------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15679
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15679
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tool/cqlsh
>            Reporter: Erick Ramirez
>            Assignee: Aleksandr Sorokoumov
>            Priority: Normal
>              Labels: pull-request-available
>             Fix For: 2.1.21, 2.2.17, 3.0.21, 3.11.7, 4.x
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> h2. Background
> A user was having issues loading CSV data with the {{COPY FROM}} command into 
> a {{map}} column with {{blob}} values.
> h2. Replication steps
> I can easily replicate the problem with this simple table:
> {noformat}
> CREATE TABLE community.blobmaptable (
>     id text PRIMARY KEY,
>     blobmapcol map<int, blob>
> )
> {noformat}
> I have this CSV file that contains just 1 row:
> {noformat}
> $ cat blobmap.csv 
> c3,{3: 0x74776f}
> {noformat}
> And here's the error when I try to load it:
> {noformat}
> cqlsh:community> COPY blobmaptable (id, blobmapcol) FROM '~/blobmap.csv' ;
> Using 1 child processes
> Starting copy of community.blobmaptable with columns [id, blobmapcol].
> Failed to import 1 rows: ParseError - Failed to parse {3: 0x74776f} : 
> unhashable type: 'bytearray',  given up without retries
> Failed to process 1 rows; failed rows written to 
> import_community_blobmaptable.err
> Processed: 1 rows; Rate:       2 rows/s; Avg. rate:       3 rows/s
> 1 rows imported from 1 files in 0.389 seconds (0 skipped).
> {noformat}
> I've also logged 
> [PYTHON-1234|https://datastax-oss.atlassian.net/browse/PYTHON-1234] because I 
> wasn't sure if it was a Python driver issue. Cheers!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to