#!/usr/bin/env bash
# Test-only SQL helper for the source-backed completeness probes. It deliberately
# uses the repository-pinned Go driver instead of a runner-provided mysql client.
# Nothing in Runtime or production composition imports or executes this command.

l0_completeness_sql_client() {
  local client="${L0_COMPLETENESS_SQL_CLIENT:-$OUT_DIR/l0-completeness-sql}"
  if [[ -n "${L0_COMPLETENESS_SQL_CLIENT:-}" && ! -x "$client" ]]; then
    echo "L0_COMPLETENESS_SQL_CLIENT is not executable: $client" >&2
    return 2
  fi
  if [[ ! -x "$client" ]]; then
    mkdir -p "$(dirname "$client")"
    if ! (
      cd "$REPO_ROOT/backend"
      go build -o "$client" ./cmd/integration-sql
    ); then
      return 1
    fi
  fi
  L0_COMPLETENESS_SQL_CLIENT="$client"
  export L0_COMPLETENESS_SQL_CLIENT
}

l0_completeness_sql_query() {
  local database="$1" statement="$2"
  l0_completeness_sql_client || return
  "$L0_COMPLETENESS_SQL_CLIENT" --database "$database" --sql "$statement" query
}

l0_completeness_sql_exec() {
  local database="$1" statement="$2"
  l0_completeness_sql_client || return
  "$L0_COMPLETENESS_SQL_CLIENT" --database "$database" --sql "$statement" exec
}

l0_completeness_sql_reset_database() {
  l0_completeness_sql_client || return
  "$L0_COMPLETENESS_SQL_CLIENT" --database "$TIDB_DATABASE" reset-database
}
