Correct v2 ExecuteMessage encoding
This commit is contained in:
@@ -364,39 +364,28 @@ class SupportedMessage(_MessageType):
|
|||||||
return cls(cql_versions=cql_versions, options=options)
|
return cls(cql_versions=cql_versions, options=options)
|
||||||
|
|
||||||
|
|
||||||
class QueryMessage(_MessageType):
|
# used for QueryMessage and ExecuteMessage
|
||||||
opcode = 0x07
|
|
||||||
name = 'QUERY'
|
|
||||||
|
|
||||||
_VALUES_FLAG = 0x01
|
_VALUES_FLAG = 0x01
|
||||||
_SKIP_METADATA_FLAG = 0x01
|
_SKIP_METADATA_FLAG = 0x01
|
||||||
_PAGE_SIZE_FLAG = 0x04
|
_PAGE_SIZE_FLAG = 0x04
|
||||||
_WITH_PAGING_STATE_SIZE_FLAG = 0x08
|
_WITH_PAGING_STATE_SIZE_FLAG = 0x08
|
||||||
_WITH_SERIAL_CONSISTENCY_FLAG = 0x10
|
_WITH_SERIAL_CONSISTENCY_FLAG = 0x10
|
||||||
|
|
||||||
def __init__(self, query, consistency_level, values=None):
|
|
||||||
|
class QueryMessage(_MessageType):
|
||||||
|
opcode = 0x07
|
||||||
|
name = 'QUERY'
|
||||||
|
|
||||||
|
def __init__(self, query, consistency_level):
|
||||||
self.query = query
|
self.query = query
|
||||||
self.consistency_level = consistency_level
|
self.consistency_level = consistency_level
|
||||||
self.values = values
|
|
||||||
|
|
||||||
def send_body(self, f, protocol_version):
|
def send_body(self, f, protocol_version):
|
||||||
write_longstring(f, self.query)
|
write_longstring(f, self.query)
|
||||||
write_consistency_level(f, self.consistency_level)
|
write_consistency_level(f, self.consistency_level)
|
||||||
if protocol_version < 2:
|
|
||||||
assert not self.values, "QueryMessage got unbound values with protocol v1"
|
|
||||||
return
|
|
||||||
|
|
||||||
flags = 0x00
|
flags = 0x00
|
||||||
if self.values:
|
|
||||||
flags |= self._VALUES_FLAG
|
|
||||||
|
|
||||||
write_byte(f, flags)
|
write_byte(f, flags)
|
||||||
|
|
||||||
if self.values:
|
|
||||||
write_short(f, len(self.values))
|
|
||||||
for value in self.values:
|
|
||||||
write_value(f, value)
|
|
||||||
|
|
||||||
|
|
||||||
CUSTOM_TYPE = object()
|
CUSTOM_TYPE = object()
|
||||||
|
|
||||||
@@ -548,10 +537,18 @@ class ExecuteMessage(_MessageType):
|
|||||||
|
|
||||||
def send_body(self, f, protocol_version):
|
def send_body(self, f, protocol_version):
|
||||||
write_string(f, self.query_id)
|
write_string(f, self.query_id)
|
||||||
|
if protocol_version == 1:
|
||||||
write_short(f, len(self.query_params))
|
write_short(f, len(self.query_params))
|
||||||
for param in self.query_params:
|
for param in self.query_params:
|
||||||
write_value(f, param)
|
write_value(f, param)
|
||||||
write_consistency_level(f, self.consistency_level)
|
write_consistency_level(f, self.consistency_level)
|
||||||
|
else:
|
||||||
|
write_consistency_level(f, self.consistency_level)
|
||||||
|
flags = _VALUES_FLAG
|
||||||
|
write_byte(f, flags)
|
||||||
|
write_short(f, len(self.query_params))
|
||||||
|
for param in self.query_params:
|
||||||
|
write_value(f, param)
|
||||||
|
|
||||||
|
|
||||||
class BatchMessage(_MessageType):
|
class BatchMessage(_MessageType):
|
||||||
|
|||||||
Reference in New Issue
Block a user