Return list columns as lists instead of tuples

This commit is contained in:
Tyler Hobbs
2014-07-15 17:57:16 -05:00
parent ec097f1131
commit 1ef8f3331f
4 changed files with 13 additions and 7 deletions

View File

@@ -6,6 +6,11 @@ Bug Fixes
---------
* Properly specify UDTs for columns in CREATE TABLE statements
Other
-----
* Return list collection columns as python lists instead of tuples
now that tuples are a specific Cassandra type
2.1.0b1
=======
July 11, 2014

View File

@@ -714,7 +714,7 @@ class _SimpleParameterizedType(_ParameterizedType):
class ListType(_SimpleParameterizedType):
typename = 'list'
num_subtypes = 1
adapter = tuple
adapter = list
class SetType(_SimpleParameterizedType):
@@ -848,7 +848,8 @@ class UserType(TupleType):
'cassname': cls.cassname,
'typename': udt_name,
'fieldnames': field_names,
'keyspace': keyspace})
'keyspace': keyspace,
'mapped_class': None})
@classmethod
def cql_parameterized_type(cls):

View File

@@ -203,7 +203,7 @@ class TypeTests(unittest.TestCase):
1.25, # float
"1.2.3.4", # inet
12345, # int
('a', 'b', 'c'), # list<text> collection
['a', 'b', 'c'], # list<text> collection
sortedset((1, 2, 3)), # set<int> collection
{'a': 1, 'b': 2}, # map<text, int> collection
"text", # text
@@ -280,11 +280,11 @@ class TypeTests(unittest.TestCase):
s.execute("INSERT INTO mytable (a, b, c, o, s, l, n) VALUES ('a', 'b', %s, %s, %s, %s, %s)",
('', '', '', [''], {'': 3}))
self.assertEqual(
{'c': '', 'o': '', 's': '', 'l': ('', ), 'n': OrderedDict({'': 3})},
{'c': '', 'o': '', 's': '', 'l': [''], 'n': OrderedDict({'': 3})},
s.execute("SELECT c, o, s, l, n FROM mytable WHERE a='a' AND b='b'")[0])
self.assertEqual(
{'c': '', 'o': '', 's': '', 'l': ('', ), 'n': OrderedDict({'': 3})},
{'c': '', 'o': '', 's': '', 'l': [''], 'n': OrderedDict({'': 3})},
s.execute(s.prepare("SELECT c, o, s, l, n FROM mytable WHERE a='a' AND b='b'"), [])[0])
# non-string types shouldn't accept empty strings

View File

@@ -81,9 +81,9 @@ marshalled_value_pairs = (
(b'', 'ListType(FloatType)', None),
(b'', 'SetType(LongType)', None),
(b'\x00\x00', 'MapType(DecimalType, BooleanType)', OrderedDict()),
(b'\x00\x00', 'ListType(FloatType)', ()),
(b'\x00\x00', 'ListType(FloatType)', []),
(b'\x00\x00', 'SetType(IntegerType)', sortedset()),
(b'\x00\x01\x00\x10\xafYC\xa3\xea<\x11\xe1\xabc\xc4,\x03"y\xf0', 'ListType(TimeUUIDType)', (UUID(bytes=b'\xafYC\xa3\xea<\x11\xe1\xabc\xc4,\x03"y\xf0'),)),
(b'\x00\x01\x00\x10\xafYC\xa3\xea<\x11\xe1\xabc\xc4,\x03"y\xf0', 'ListType(TimeUUIDType)', [UUID(bytes=b'\xafYC\xa3\xea<\x11\xe1\xabc\xc4,\x03"y\xf0')]),
)
ordered_dict_value = OrderedDict()