Adds countLogs(LogSearchRequest) — no FINAL, no cursor/sort/limit — reusing the same WHERE-clause logic as search() for tenant, env, app, level, q, logger, source, exchangeId, and time-range filters. Also extends ClickHouseTestHelper with executeInitSqlWithProjections() and makes the script runner non-fatal for ADD/MATERIALIZE PROJECTION. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>