From 2fe82cc884a7022050c18de9187a9d0a7d4517ef Mon Sep 17 00:00:00 2001 From: Thibault Charbonnier Date: Fri, 28 Sep 2018 20:13:32 -0700 Subject: [PATCH] feat(cql) add support for frames with custom payload --- lib/cassandra/cql.lua | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/cassandra/cql.lua b/lib/cassandra/cql.lua index 8216f63..e533113 100644 --- a/lib/cassandra/cql.lua +++ b/lib/cassandra/cql.lua @@ -154,7 +154,7 @@ local OP_CODES = { local FRAME_FLAGS = { --COMPRESSION = 0x01, TRACING = 0x02, - --CUSTOM_PAYLOAD = 0x04, + CUSTOM_PAYLOAD = 0x04, WARNING = 0x08, } @@ -1376,14 +1376,18 @@ do local op_code = header.op_code local body = Buffer.new(header.version, bytes) + local tracing_id, warnings + if band(header.flags, FRAME_FLAGS.TRACING) ~= 0 then + tracing_id = body:read_uuid() + end + if band(header.flags, FRAME_FLAGS.CUSTOM_PAYLOAD) ~= 0 then + body:read_bytes_map() -- discard + end + if band(header.flags, FRAME_FLAGS.WARNING) ~= 0 then + warnings = body:read_string_list() + end + if op_code == OP_CODES.RESULT then - local tracing_id, warnings - if band(header.flags, FRAME_FLAGS.TRACING) ~= 0 then - tracing_id = body:read_uuid() - end - if band(header.flags, FRAME_FLAGS.WARNING) ~= 0 then - warnings = body:read_string_list() - end local result_kind = body:read_int() local parser = results_parsers[result_kind] local res = parser(body)