|
7 | 7 | from datetime import datetime as Datetime |
8 | 8 | from datetime import timedelta as Timedelta |
9 | 9 | from decimal import Decimal |
10 | | -from distutils.version import LooseVersion |
11 | 10 | from hashlib import md5 |
12 | 11 | from itertools import count |
13 | 12 | from os import getpid |
14 | 13 | from struct import pack |
15 | 14 | from typing import TYPE_CHECKING |
16 | 15 | from warnings import warn |
17 | 16 |
|
| 17 | +from packaging import version |
18 | 18 | from scramp import ScramClient # type: ignore |
19 | 19 |
|
20 | 20 | from redshift_connector.config import ( |
@@ -2111,10 +2111,12 @@ def handle_PARAMETER_STATUS(self: "Connection", data: bytes, ps) -> None: |
2111 | 2111 | self._client_protocol_version = int(value) |
2112 | 2112 | self._enable_protocol_based_conversion_funcs() |
2113 | 2113 | elif key == b"server_version": |
2114 | | - self._server_version: LooseVersion = LooseVersion(value.decode("ascii")) |
2115 | | - if self._server_version < LooseVersion("8.2.0"): |
| 2114 | + self._server_version: typing.Union[version.LegacyVersion, version.Version] = version.parse( |
| 2115 | + (value.decode("ascii")) |
| 2116 | + ) |
| 2117 | + if self._server_version < version.parse("8.2.0"): |
2116 | 2118 | self._commands_with_count = (b"INSERT", b"DELETE", b"UPDATE", b"MOVE") |
2117 | | - elif self._server_version < LooseVersion("9.0.0"): |
| 2119 | + elif self._server_version < version.parse("9.0.0"): |
2118 | 2120 | self._commands_with_count = (b"INSERT", b"DELETE", b"UPDATE", b"MOVE", b"FETCH", b"COPY") |
2119 | 2121 |
|
2120 | 2122 | def array_inspect(self: "Connection", value): |
|
0 commit comments