Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 ca85bec1d -> 2e21cac34
  refs/heads/cassandra-3.0 77eee181c -> 14b52bca3
  refs/heads/cassandra-3.X 699fa9a9d -> 574ca2e2d
  refs/heads/trunk 7c0d161b9 -> dba908017


cqlsh COPY: unprotected pk values before converting them if not using prepared 
statements

patch by Stefania Alborghetti; reviewed by Paulo Motta for CASSANDRA-12863


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2e21cac3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2e21cac3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2e21cac3

Branch: refs/heads/cassandra-2.2
Commit: 2e21cac342750d1bf1426bd72e14fd3dfd094fb1
Parents: ca85bec
Author: Stefania Alborghetti <stefania.alborghe...@datastax.com>
Authored: Mon Oct 31 09:20:19 2016 +0800
Committer: Stefania Alborghetti <stefania.alborghe...@datastax.com>
Committed: Fri Nov 11 10:55:25 2016 +0800

----------------------------------------------------------------------
 CHANGES.txt                |  1 +
 pylib/cqlshlib/copyutil.py | 11 +++++++----
 2 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2e21cac3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b550885..98c1839 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.9
+ * cqlsh COPY: unprotected pk values before converting them if not using 
prepared statements (CASSANDRA-12863)
  * Fix Util.spinAssertEquals (CASSANDRA-12283)
  * Fix potential NPE for compactionstats (CASSANDRA-12462)
  * Prepare legacy authenticate statement if credentials table initialised 
after node startup (CASSANDRA-12813)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2e21cac3/pylib/cqlshlib/copyutil.py
----------------------------------------------------------------------
diff --git a/pylib/cqlshlib/copyutil.py b/pylib/cqlshlib/copyutil.py
index aee2920..0c11636 100644
--- a/pylib/cqlshlib/copyutil.py
+++ b/pylib/cqlshlib/copyutil.py
@@ -1778,15 +1778,18 @@ class ImportConversion(object):
                                                          where_clause)
         return parent.session.prepare(select_query)
 
+    @staticmethod
+    def unprotect(v):
+        if v is not None:
+            return CqlRuleSet.dequote_value(v)
+
     def _get_converter(self, cql_type):
         """
         Return a function that converts a string into a value the can be passed
         into BoundStatement.bind() for the given cql type. See 
cassandra.cqltypes
         for more details.
         """
-        def unprotect(v):
-            if v is not None:
-                return CqlRuleSet.dequote_value(v)
+        unprotect = self.unprotect
 
         def convert(t, v):
             v = unprotect(v)
@@ -2028,7 +2031,7 @@ class ImportConversion(object):
             return self.cqltypes[n].serialize(v, self.proto_version)
 
         def serialize_value_not_prepared(n, v):
-            return self.cqltypes[n].serialize(self.converters[n](v), 
self.proto_version)
+            return 
self.cqltypes[n].serialize(self.converters[n](self.unprotect(v)), 
self.proto_version)
 
         partition_key_indexes = self.partition_key_indexes
         serialize = serialize_value_prepared if self.use_prepared_statements 
else serialize_value_not_prepared

Reply via email to