@@ -126,10 +126,13 @@ def __init__(self, code, message, info):
126
126
self .info = info
127
127
128
128
@classmethod
129
- def recv_body (cls , f , protocol_version , * args ):
129
+ def recv_body (cls , f , protocol_version , protocol_features , * args ):
130
130
code = read_int (f )
131
131
msg = read_string (f )
132
- subcls = error_classes .get (code , cls )
132
+ if code == protocol_features .rate_limit_error :
133
+ subcls = RateLimitReachedException
134
+ else :
135
+ subcls = error_classes .get (code , cls )
133
136
extra_info = subcls .recv_error_info (f , protocol_version )
134
137
return subcls (code = code , message = msg , info = extra_info )
135
138
@@ -751,7 +754,7 @@ def recv(self, f, protocol_version, user_type_map, result_metadata):
751
754
raise DriverException ("Unknown RESULT kind: %d" % self .kind )
752
755
753
756
@classmethod
754
- def recv_body (cls , f , protocol_version , user_type_map , result_metadata ):
757
+ def recv_body (cls , f , protocol_version , protocol_features , user_type_map , result_metadata ):
755
758
kind = read_int (f )
756
759
msg = cls (kind )
757
760
msg .recv (f , protocol_version , user_type_map , result_metadata )
@@ -1160,7 +1163,7 @@ def _write_header(f, version, flags, stream_id, opcode, length):
1160
1163
write_int (f , length )
1161
1164
1162
1165
@classmethod
1163
- def decode_message (cls , protocol_version , user_type_map , stream_id , flags , opcode , body ,
1166
+ def decode_message (cls , protocol_version , protocol_features , user_type_map , stream_id , flags , opcode , body ,
1164
1167
decompressor , result_metadata ):
1165
1168
"""
1166
1169
Decodes a native protocol message body
@@ -1206,7 +1209,7 @@ def decode_message(cls, protocol_version, user_type_map, stream_id, flags, opcod
1206
1209
log .warning ("Unknown protocol flags set: %02x. May cause problems." , flags )
1207
1210
1208
1211
msg_class = cls .message_types_by_opcode [opcode ]
1209
- msg = msg_class .recv_body (body , protocol_version , user_type_map , result_metadata )
1212
+ msg = msg_class .recv_body (body , protocol_version , protocol_features , user_type_map , result_metadata )
1210
1213
msg .stream_id = stream_id
1211
1214
msg .trace_id = trace_id
1212
1215
msg .custom_payload = custom_payload
0 commit comments