Add protocol support for null Arrays
This commit is contained in:
@@ -155,6 +155,8 @@ class Array(AbstractType):
|
|||||||
raise ValueError('Array instantiated with no array_of type')
|
raise ValueError('Array instantiated with no array_of type')
|
||||||
|
|
||||||
def encode(self, items):
|
def encode(self, items):
|
||||||
|
if items is None:
|
||||||
|
return Int32.encode(-1)
|
||||||
return b''.join(
|
return b''.join(
|
||||||
[Int32.encode(len(items))] +
|
[Int32.encode(len(items))] +
|
||||||
[self.array_of.encode(item) for item in items]
|
[self.array_of.encode(item) for item in items]
|
||||||
@@ -162,7 +164,11 @@ class Array(AbstractType):
|
|||||||
|
|
||||||
def decode(self, data):
|
def decode(self, data):
|
||||||
length = Int32.decode(data)
|
length = Int32.decode(data)
|
||||||
|
if length == -1:
|
||||||
|
return None
|
||||||
return [self.array_of.decode(data) for _ in range(length)]
|
return [self.array_of.decode(data) for _ in range(length)]
|
||||||
|
|
||||||
def repr(self, list_of_items):
|
def repr(self, list_of_items):
|
||||||
|
if list_of_items is None:
|
||||||
|
return 'NULL'
|
||||||
return '[' + ', '.join([self.array_of.repr(item) for item in list_of_items]) + ']'
|
return '[' + ', '.join([self.array_of.repr(item) for item in list_of_items]) + ']'
|
||||||
|
|||||||
Reference in New Issue
Block a user