You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2016/03/29 18:58:19 UTC
[03/15] cassandra git commit: COPY FROM fails when importing blob
COPY FROM fails when importing blob
patch by Stefania Alborghetti; reviewed by Paulo Motta for CASSANDRA-11375
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5a45aa62
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5a45aa62
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5a45aa62
Branch: refs/heads/trunk
Commit: 5a45aa62dd57f59753396c5d5541dbf3a0a1b220
Parents: 8b8a3f5
Author: Stefania Alborghetti <st...@datastax.com>
Authored: Fri Mar 18 16:46:37 2016 +0800
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Mar 29 17:56:33 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
pylib/cqlshlib/copyutil.py | 16 ++++++++++------
2 files changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a45aa62/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7794d4f..65d094f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.14
+ * COPY FROM fails when importing blob (CASSANDRA-11375)
* Backport CASSANDRA-10679 (CASSANDRA-9598)
* Don't do defragmentation if reading from repaired sstables (CASSANDRA-10342)
* Fix streaming_socket_timeout_in_ms not enforced (CASSANDRA-11286)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5a45aa62/pylib/cqlshlib/copyutil.py
----------------------------------------------------------------------
diff --git a/pylib/cqlshlib/copyutil.py b/pylib/cqlshlib/copyutil.py
index ba2a47b..28e08b1 100644
--- a/pylib/cqlshlib/copyutil.py
+++ b/pylib/cqlshlib/copyutil.py
@@ -1176,7 +1176,7 @@ class FeedingProcess(mp.Process):
if rows:
sent += self.send_chunk(ch, rows)
except Exception, exc:
- self.outmsg.send(ImportTaskError(exc.__class__.__name__, exc.message))
+ self.outmsg.send(ImportTaskError(exc.__class__.__name__, str(exc)))
if reader.exhausted:
break
@@ -1679,7 +1679,11 @@ class ImportConversion(object):
return converters.get(t.typename, convert_unknown)(unprotect(v), ct=t)
def convert_blob(v, **_):
- return bytearray.fromhex(v[2:])
+ try:
+ return bytearray.fromhex(v[2:])
+ except TypeError:
+ # Work-around for Python 2.6 bug
+ return bytearray.fromhex(unicode(v[2:]))
def convert_text(v, **_):
return v
@@ -1869,7 +1873,7 @@ class ImportConversion(object):
try:
return [conv(val) for conv, val in zip(converters, row)]
except Exception, e:
- raise ParseError(e.message)
+ raise ParseError(str(e))
def get_null_primary_key_message(self, idx):
message = "Cannot insert null value for primary key column '%s'." % (self.columns[idx],)
@@ -2183,7 +2187,7 @@ class ImportProcess(ChildProcess):
try:
return conv.convert_row(r)
except Exception, err:
- errors[err.message].append(r)
+ errors[str(err)].append(r)
return None
converted_rows = filter(None, [convert_row(r) for r in rows])
@@ -2248,7 +2252,7 @@ class ImportProcess(ChildProcess):
pk = get_row_partition_key_values(row)
rows_by_ring_pos[get_ring_pos(ring, pk_to_token_value(pk))].append(row)
except Exception, e:
- errors[e.message].append(row)
+ errors[str(e)].append(row)
if errors:
for msg, rows in errors.iteritems():
@@ -2286,7 +2290,7 @@ class ImportProcess(ChildProcess):
def report_error(self, err, chunk, rows=None, attempts=1, final=True):
if self.debug:
traceback.print_exc(err)
- self.outmsg.send(ImportTaskError(err.__class__.__name__, err.message, rows, attempts, final))
+ self.outmsg.send(ImportTaskError(err.__class__.__name__, str(err), rows, attempts, final))
if final:
self.update_chunk(rows, chunk)