You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ca...@codespot.com on 2012/09/09 06:12:55 UTC
[cassandra-dbapi2] push by pcannon@gmail.com - Support for inet data
type on 2012-09-09 04:12 GMT
Revision: 1c79c28369d8
Author: paul cannon <pa...@datastax.com>
Date: Sat Sep 8 20:00:13 2012
Log: Support for inet data type
http://code.google.com/a/apache-extras.org/p/cassandra-dbapi2/source/detail?r=1c79c28369d8
Modified:
/cql/cqltypes.py
/test/test_marshalling.py
=======================================
--- /cql/cqltypes.py Thu Aug 30 21:01:20 2012
+++ /cql/cqltypes.py Sat Sep 8 20:00:13 2012
@@ -35,6 +35,7 @@
varint_pack, varint_unpack)
from decimal import Decimal
import time
+import socket
import calendar
import re
@@ -406,6 +407,25 @@
deserialize = staticmethod(varint_unpack)
serialize = staticmethod(varint_pack)
+class InetAddressType(_CassandraType):
+ typename = 'inet'
+
+ @staticmethod
+ def deserialize(byts):
+ if len(byts) == 16:
+ fam = socket.AF_INET6
+ else:
+ fam = socket.AF_INET
+ return socket.inet_ntop(fam, byts)
+
+ @staticmethod
+ def serialize(addr):
+ if ':' in addr:
+ fam = socket.AF_INET6
+ else:
+ fam = socket.AF_INET
+ return socket.inet_pton(fam, addr)
+
class CounterColumnType(_CassandraType):
typename = 'counter'
=======================================
--- /test/test_marshalling.py Sun Aug 19 13:43:08 2012
+++ /test/test_marshalling.py Sat Sep 8 20:00:13 2012
@@ -56,6 +56,9 @@
('\x7f\xff\xff\xff\xff\xff\xff\xff', 'LongType', 9223372036854775807),
('\x80\x00\x00\x00\x00\x00\x00\x00', 'LongType', -9223372036854775808),
('', 'LongType', None),
+ ('', 'InetAddressType', None),
+ ('A46\xa9', 'InetAddressType', '65.52.54.169'),
+
('*\x00\x13(\xe1\x02\xcc\xc0\x00\x00\x00\x00\x00\x00\x01"', 'InetAddressType', '2a00:1328:e102:ccc0::122'),
('\xe3\x81\xbe\xe3\x81\x97\xe3\x81\xa6', 'UTF8Type',
u'\u307e\u3057\u3066'),
('\xe3\x81\xbe\xe3\x81\x97\xe3\x81\xa6' * 1000, 'UTF8Type',
u'\u307e\u3057\u3066' * 1000),
('', 'UTF8Type', u''),