5 Commits

Author SHA1 Message Date
DevOps Team
2d6e8e6182 Fix tuple parameter handling for SQLAlchemy 2.0 pooled queries
Fixes 'List of argument must consist only of dictionaries' error when
running parallel queries with ODBC-style ? placeholders.

The issue occurs because SQLAlchemy 2.0's text() expects named
parameters (dict) but the code was passing positional parameters (tuples).

Solution:
- Detect tuple parameters in _execute_query_pooled
- Convert tuples to dict with keys p1, p2, p3...
- Replace ? placeholders with :p1, :p2... in the query string
- Pass converted dict to conn.execute()

This maintains backward compatibility with single-connection mode
which uses pyodbc and handles tuple parameters natively.

Affected queries:
- table_exists (2 params: schema, table)
- get_columns (2 params: schema, table)
- get_primary_keys (2 params: schema, table)
2026-02-11 22:00:07 +07:00
DevOps Team
40bc615bf7 Add parallel checker execution with connection pooling
Implements Level 2 parallelization for row_count, schema, and
aggregate checkers, improving performance by 2-3x for tables with
multiple enabled checks.

Changes:
- Add max_workers config option (default: 4)
- Add ConnectionPool module with SQLAlchemy QueuePool
- Add URL encoding for connection strings
- Implement parallel checker execution with ThreadPoolExecutor
- Add fail-fast behavior on checker errors
- Update executor for SQLAlchemy 2.0 compatibility
- Fix engine disposal resource leak
- Cache pooled engines in ConnectionManager
- Add disconnect() cleanup for pooled engines

Performance:
- Sequential: 3 checkers × 100ms = 300ms
- Parallel: 3 checkers ≈ 100ms (2-3x speedup)

Configuration:
  execution:
    max_workers: 4  # Controls parallel checker execution
    continue_on_error: true
2026-02-11 21:46:10 +07:00
DevOps Team
f5b190c91d Remove investigation feature completely
- Delete investigation CLI command and related services
- Remove investigation data models and report generators
- Clean up configuration options and documentation
- Update gitignore and remove stale egg-info

Investigation feature is no longer needed and has been fully removed.
Backup preserved in git tag 'pre-investigation-removal'.
2026-02-11 20:40:43 +07:00
git
2966711ca6 Remove version and authors, Fix links to git repo 2026-01-03 22:18:42 +07:00
git
2f8859dbe8 Initial commit 2026-01-03 22:05:49 +07:00