From 16ec2fa6437b32254a4baa9e63f0b8f54ee06613 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 2 Jan 2026 02:29:57 +0000 Subject: [PATCH 1/2] Initial plan From a20c651c70ebcd7b2f915b204947d690f02218c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 2 Jan 2026 02:36:01 +0000 Subject: [PATCH 2/2] Revert commit c1e4a22: remove execution.py file Co-authored-by: luisggc <31017690+luisggc@users.noreply.github.com> --- sqlcheck/execution.py | 68 ------------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 sqlcheck/execution.py diff --git a/sqlcheck/execution.py b/sqlcheck/execution.py deleted file mode 100644 index 30ca16c..0000000 --- a/sqlcheck/execution.py +++ /dev/null @@ -1,68 +0,0 @@ -from __future__ import annotations - -import concurrent.futures -from typing import Iterable - -from sqlcheck.db_connector import DBConnector, ExecutionResult -from sqlcheck.function_context import execution_context -from sqlcheck.function_registry import FunctionRegistry -from sqlcheck.models import FunctionResult, TestCase, TestResult - - -def run_test_case(case: TestCase, connector: DBConnector, registry: FunctionRegistry) -> TestResult: - execution: ExecutionResult | None = None - function_results: list[FunctionResult] = [] - with connector.open_session() as session: - for segment in case.segments: - for attempt in range(case.metadata.retries + 1): - execution = session.execute(segment.sql_parsed, timeout=case.metadata.timeout) - if execution.status.success or attempt >= case.metadata.retries: - break - if execution is None: - raise RuntimeError("Execution never started") - status = execution.status - output = execution.output - exit_on_failure = segment.directive.kwargs.get("exit_on_failure", True) - func = registry.resolve(segment.directive.name) - kwargs = { - key: value - for key, value in segment.directive.kwargs.items() - if key != "exit_on_failure" - } - with execution_context(segment.sql_parsed, status, output): - result = func(*segment.directive.args, **kwargs) - function_results.append(result) - if exit_on_failure and not result.success: - break - if execution is None: - raise RuntimeError("Execution never started") - return TestResult( - case=case, - status=execution.status, - output=execution.output, - function_results=function_results, - ) - - -def run_cases( - cases: Iterable[TestCase], - connector: DBConnector, - registry: FunctionRegistry, - workers: int, -) -> list[TestResult]: - parallel_cases = [case for case in cases if not case.metadata.serial] - serial_cases = [case for case in cases if case.metadata.serial] - results: list[TestResult] = [] - - with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor: - future_map = { - executor.submit(run_test_case, case, connector, registry): case - for case in parallel_cases - } - for future in concurrent.futures.as_completed(future_map): - results.append(future.result()) - - for case in serial_cases: - results.append(run_test_case(case, connector, registry)) - - return results \ No newline at end of file