From 94640832454f9b0691fca1a46750f64d1a4859b9 Mon Sep 17 00:00:00 2001 From: Geoff Genz Date: Thu, 8 Sep 2022 05:54:46 -0600 Subject: [PATCH 1/4] Fix sqlalchemy 1.4 issue, update superset testing version --- clickhouse_connect/cc_sqlalchemy/dialect.py | 5 +++-- clickhouse_connect/driver/client.py | 15 ++++++++++----- tests/test_requirements.txt | 7 ++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/clickhouse_connect/cc_sqlalchemy/dialect.py b/clickhouse_connect/cc_sqlalchemy/dialect.py index a9f1a706..423f1baf 100644 --- a/clickhouse_connect/cc_sqlalchemy/dialect.py +++ b/clickhouse_connect/cc_sqlalchemy/dialect.py @@ -82,8 +82,9 @@ def get_check_constraints(self, connection, table_name, schema=None, **kw): return [] def has_table(self, connection, table_name, schema=None): - row = connection.execute(f'EXISTS TABLE {full_table(table_name, schema)}').next() - return row.result == 1 + result = connection.execute(f'EXISTS TABLE {full_table(table_name, schema)}') + row = result.fetchone() + return row[0] == 1 def has_sequence(self, connection, sequence_name, schema=None): return False diff --git a/clickhouse_connect/driver/client.py b/clickhouse_connect/driver/client.py index ca1be8a5..dafbd1c1 100644 --- a/clickhouse_connect/driver/client.py +++ b/clickhouse_connect/driver/client.py @@ -340,12 +340,17 @@ def min_version(self, version_str: str) -> bool: """ Determine whether the connected server is at least the submitted version :param version_str: Version string consisting of up to 4 integers delimited by dots - :return: 1 if the version_str is greater than the server_version, 0 if equal, -1 if less than + :return: True version_str is greater than the server_version, False if less than """ - server_parts = [int(x) for x in self.server_version.split('.')] - server_parts.extend([0] * (4 - len(server_parts))) - version_parts = [int(x) for x in version_str.split('.')] - version_parts.extend([0] * (4 - len(version_parts))) + try: + server_parts = [int(x) for x in self.server_version.split('.')] + server_parts.extend([0] * (4 - len(server_parts))) + version_parts = [int(x) for x in version_str.split('.')] + version_parts.extend([0] * (4 - len(version_parts))) + except ValueError: + logger.warning('Server %s or requested version %s does not match format of numbers separated by dots', + self.server_version, version_str) + return False for x, y in zip(server_parts, version_parts): if x > y: return True diff --git a/tests/test_requirements.txt b/tests/test_requirements.txt index 8313394b..41ed44c0 100644 --- a/tests/test_requirements.txt +++ b/tests/test_requirements.txt @@ -1,10 +1,11 @@ requests pytz -werkzeug==2.0.3 -sqlalchemy>1.3.21,<1.4 -apache_superset>=1.4.1 +sqlalchemy>=1.4.0 +apache_superset>=2.0.0 +flask=2.0.3 MarkupSafe==2.0.1 Jinja2==3.0.3 +werkzeug==2.0.3 cython pytest pytest-mock From 45b25d6799f91fdc0a44b4068bff93fdd195d88d Mon Sep 17 00:00:00 2001 From: Geoff Genz Date: Thu, 8 Sep 2022 05:59:53 -0600 Subject: [PATCH 2/4] fix typo, update changelog --- CHANGELOG.md | 5 +++++ tests/test_requirements.txt | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc17f239..e25b6133 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ * In the next minor release (0.3.0) the row_binary option for ClickHouse serialization will be removed. The performance is significantly lower than Native format and maintaining the option adds complexity with no corresponding benefit +### Release 0.2.6 2022-09-08 + +#### Bug Fix +* Fixed an SQLAlchemy dialect issue with SQLAlchemy 1.4 that would cause problems in the most recent Superset version + ### Release 0.2.5 2022-08-30 #### Bug Fix diff --git a/tests/test_requirements.txt b/tests/test_requirements.txt index 41ed44c0..e548b5d8 100644 --- a/tests/test_requirements.txt +++ b/tests/test_requirements.txt @@ -2,7 +2,7 @@ requests pytz sqlalchemy>=1.4.0 apache_superset>=2.0.0 -flask=2.0.3 +flask==2.0.3 MarkupSafe==2.0.1 Jinja2==3.0.3 werkzeug==2.0.3 From e13069480db55dfe6200ac9bd069885a460794d3 Mon Sep 17 00:00:00 2001 From: Geoff Genz Date: Thu, 8 Sep 2022 06:03:33 -0600 Subject: [PATCH 3/4] Tweak test requirements --- tests/test_requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_requirements.txt b/tests/test_requirements.txt index e548b5d8..28b8b80f 100644 --- a/tests/test_requirements.txt +++ b/tests/test_requirements.txt @@ -1,6 +1,6 @@ requests pytz -sqlalchemy>=1.4.0 +sqlalchemy>1.3.21,<1.4 apache_superset>=2.0.0 flask==2.0.3 MarkupSafe==2.0.1 From d6b171798676f784b3e9131e10507fb4c2683379 Mon Sep 17 00:00:00 2001 From: Geoff Genz Date: Thu, 8 Sep 2022 06:12:07 -0600 Subject: [PATCH 4/4] Tweak test requirements --- tests/test_requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_requirements.txt b/tests/test_requirements.txt index 28b8b80f..c3e60373 100644 --- a/tests/test_requirements.txt +++ b/tests/test_requirements.txt @@ -6,6 +6,7 @@ flask==2.0.3 MarkupSafe==2.0.1 Jinja2==3.0.3 werkzeug==2.0.3 +WTForms==2.3.3 cython pytest pytest-mock