Avoid UnicodeDecodeError when query string is unicode
Fixes PYTHON-76
This commit is contained in:
@@ -35,6 +35,7 @@ Bug Fixes
|
||||
* Fix cassandra.concurrent behavior when dealing with automatic paging
|
||||
(PYTHON-81)
|
||||
* Properly defunct connections after protocol errors
|
||||
* Avoid UnicodeDecodeError when query string is unicode (PYTHON-76)
|
||||
|
||||
2.0.2
|
||||
=====
|
||||
|
@@ -1253,8 +1253,10 @@ class Session(object):
|
||||
|
||||
if isinstance(query, SimpleStatement):
|
||||
query_string = query.query_string
|
||||
if six.PY2 and isinstance(query_string, six.text_type):
|
||||
query_string = query_string.encode('utf-8')
|
||||
if parameters:
|
||||
query_string = bind_params(query.query_string, parameters, self.encoders)
|
||||
query_string = bind_params(query_string, parameters, self.encoders)
|
||||
message = QueryMessage(
|
||||
query_string, cl, query.serial_consistency_level,
|
||||
fetch_size, timestamp=timestamp)
|
||||
|
@@ -436,3 +436,10 @@ class TypeTests(unittest.TestCase):
|
||||
prepared = s.prepare("SELECT b FROM mytable WHERE a=?")
|
||||
self.assertEqual(complete, s.execute(prepared, (2,))[0].b)
|
||||
self.assertEqual(partial_result, s.execute(prepared, (3,))[0].b)
|
||||
|
||||
def test_unicode_query_string(self):
|
||||
c = Cluster(protocol_version=PROTOCOL_VERSION)
|
||||
s = c.connect()
|
||||
|
||||
query = u"SELECT * FROM system.schema_columnfamilies WHERE keyspace_name = 'ef\u2052ef' AND columnfamily_name = %s"
|
||||
s.execute(query, (u"fe\u2051fe",))
|
||||
|
Reference in New Issue
Block a user