Conversation
cc6932e to
bdf9acb
Compare
Contributor
|
This is an automated comment for commit fa453c3 with description of existing statuses. It's updated for the latest CI running ✅ Click here to open a full report in a separate page Successful checks
|
bdf9acb to
6e5465a
Compare
ee47f99 to
fa453c3
Compare
This was referenced Aug 23, 2024
robot-clickhouse
added a commit
that referenced
this pull request
Aug 23, 2024
robot-clickhouse-ci-1
added a commit
that referenced
this pull request
Aug 23, 2024
Backport #68654 to 24.8: CI: Disable SQLLogic job
alexey-milovidov
added a commit
that referenced
this pull request
Feb 21, 2026
The SQLLogic test (`tests/sqllogic/`) runs the sqllogictest corpus against ClickHouse, comparing results with SQLite as a reference. It was disabled in Aug 2024 (PR #68654) due to an unhandled `sqlglot` parse error, and the CI infrastructure was deleted in Mar 2025. This change: - Fixes `sqlglot` crashes in `test_parser.py` by wrapping both the CREATE TABLE transpilation and the CAST/NULL transformation paths in `try/except`, falling back to original SQL on failure - Replaces the ODBC dependency with the native `clickhouse_driver.dbapi` driver (already available in the Docker image), adding a `NATIVE` engine to `connection.py` with `NativeConnectingArgs` - Updates `runner.py` to use the `NATIVE` engine instead of `ODBC` - Adds `sqlglot` and `deepdiff` to `ci/docker/stateless-test/requirements.txt` - Creates `ci/jobs/sqllogic_test.py` CI job script that clones the sqllogictest repo, then runs self-test, statements-test, and complete-test - Wires the new `SQLLogic test` job into the Praktika CI master workflow - Updates `canonic_report.json` to match new driver and `sqlglot` version behavior Changelog category: CI Fix or improvement Changelog entry: Resurrect SQLLogic test in CI, replacing ODBC with native driver Co-Authored-By: Claude Opus 4.6 <[email protected]>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First part of the job called "self-test" fails with sqlglot parser exception:
2024-08-22 16:16:20 Traceback (most recent call last): 2024-08-22 16:16:20 File "/repo/tests/sqllogic/runner.py", line 497, in <module> 2024-08-22 16:16:20 main() 2024-08-22 16:16:20 File "/repo/tests/sqllogic/runner.py", line 493, in main 2024-08-22 16:16:20 args.func(args) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/runner.py", line 409, in calle 2024-08-22 16:16:20 runner.run_all_tests_from_dir(self_test_dir) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_runner.py", line 570, in run_all_tests_from_dir 2024-08-22 16:16:20 self.run_all_tests_from_file(file_path, self._input_dir) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_runner.py", line 563, in run_all_tests_from_file 2024-08-22 16:16:20 self.run_one_test(stream, test_name, test_file) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_runner.py", line 543, in run_one_test 2024-08-22 16:16:20 for status in self.__statuses(parser, out_stream): 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_runner.py", line 344, in __statuses 2024-08-22 16:16:20 for block in parser.test_blocks(): 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_parser.py", line 446, in test_blocks 2024-08-22 16:16:20 yield from self._iterate_blocks() 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_parser.py", line 437, in _iterate_blocks 2024-08-22 16:16:20 yield FileBlockBase.parse_block(self, prev, i) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_parser.py", line 213, in parse_block 2024-08-22 16:16:20 request = FileBlockBase.convert_request(request) 2024-08-22 16:16:20 File "/repo/tests/sqllogic/test_parser.py", line 145, in convert_request 2024-08-22 16:16:20 result = sqlglot.transpile(sql, read="sqlite", write="clickhouse")[0] 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/__init__.py", line 177, in transpile 2024-08-22 16:16:20 for expression in parse(sql, read, error_level=error_level) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/__init__.py", line 102, in parse 2024-08-22 16:16:20 return Dialect.get_or_raise(read or dialect).parse(sql, **opts) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/dialects/dialect.py", line 512, in parse 2024-08-22 16:16:20 return self.parser(**opts).parse(self.tokenize(sql), sql) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1234, in parse 2024-08-22 16:16:20 return self._parse( 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1303, in _parse 2024-08-22 16:16:20 expressions.append(parse_method(self)) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1532, in _parse_statement 2024-08-22 16:16:20 return self.STATEMENT_PARSERS[self._prev.token_type](self) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 667, in <lambda> 2024-08-22 16:16:20 TokenType.CREATE: lambda self: self._parse_create(), 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1676, in _parse_create 2024-08-22 16:16:20 extend_props(self._parse_properties()) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1862, in _parse_properties 2024-08-22 16:16:20 prop = self._parse_property() 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1802, in _parse_property 2024-08-22 16:16:20 return self.PROPERTY_PARSERS[self._prev.text.upper()](self) 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 837, in <lambda> 2024-08-22 16:16:20 "PRIMARY KEY": lambda self: self._parse_primary_key(in_props=True), 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 5033, in _parse_primary_key 2024-08-22 16:16:20 expressions = self._parse_wrapped_csv( 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 5834, in _parse_wrapped_csv 2024-08-22 16:16:20 return self._parse_wrapped( 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 5841, in _parse_wrapped 2024-08-22 16:16:20 self.raise_error("Expecting (") 2024-08-22 16:16:20 File "/usr/local/lib/python3.10/dist-packages/sqlglot/parser.py", line 1347, in raise_error 2024-08-22 16:16:20 raise error 2024-08-22 16:16:20 sqlglot.errors.ParseError: Expecting (. Line 1, Col: 76. 2024-08-22 16:16:20 CREATE TABLE t1(a INTEGER, b INTEGER) ENGINE = MergeTree() PRIMARY KEY tuple()second part of the job fails with timeout:
wasting 2h of runtime
Changelog category (leave one):
Documentation entry for user-facing changes
CI Settings (Only check the boxes if you know what you are doing):