Skip to content

Commit 2dacbb8

Browse files
committed
fix(connection, transfer-protocol): modify conversion functions when server version < client requests
1 parent 03d7762 commit 2dacbb8

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

redshift_connector/core.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -662,11 +662,12 @@ def __init__(
662662
and not (b"server_protocol_version", str(self._client_protocol_version).encode()) in self.parameter_statuses
663663
):
664664
self._client_protocol_version = ClientProtocolVersion.BASE_SERVER
665+
self._enable_protocol_based_conversion_funcs()
665666

666667
self.in_transaction = False
667668

668669
def _enable_protocol_based_conversion_funcs(self: "Connection"):
669-
if self._client_protocol_version == ClientProtocolVersion.BINARY.value:
670+
if self._client_protocol_version >= ClientProtocolVersion.BINARY.value:
670671
self.pg_types[NUMERIC] = (FC_BINARY, numeric_in_binary)
671672
self.pg_types[DATE] = (FC_BINARY, date_recv_binary)
672673
self.pg_types[TIME] = (FC_BINARY, time_recv_binary)
@@ -1393,6 +1394,7 @@ def handle_PARAMETER_STATUS(self: "Connection", data: bytes, ps) -> None:
13931394
)
13941395
)
13951396
self._client_protocol_version = int(value)
1397+
self._enable_protocol_based_conversion_funcs()
13961398
elif key == b"server_version":
13971399
self._server_version: LooseVersion = LooseVersion(value.decode("ascii"))
13981400
if self._server_version < LooseVersion("8.2.0"):

0 commit comments

Comments
 (0)