#!/usr/bin/env bash
# onx-db-analyze-table — mysqlcheck --analyze (istatistikleri guncelle)
# Input:  {"db_name":"onx_xxx_app","table":"wp_posts"}  — table opsiyoneldir
# Output: {"db_name":...,"table":...,"analyzed":true}

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/_lib/common.sh"

require_root
require_cmd mysqlcheck
onx_json_input

DB_NAME="$(onx_json_field db_name)"
TABLE="$(onx_json_field table '')"

[[ -z "$DB_NAME" ]] && onx_die 1 "db_name zorunlu"
[[ "$DB_NAME" =~ ^[a-z0-9_]+$ ]] || onx_die 1 "Gecersiz db_name: '${DB_NAME}'"
if [[ -n "$TABLE" ]]; then
    [[ "$TABLE" =~ ^[a-zA-Z0-9_]+$ ]] || onx_die 1 "Gecersiz table: '${TABLE}'"
fi

onx_log "db-analyze-table: db=${DB_NAME} table=${TABLE:-ALL}"

_mycnf_tmp

if [[ -n "$TABLE" ]]; then
    mysqlcheck --defaults-extra-file="$_MYCNF_TMP" --analyze "$DB_NAME" "$TABLE" \
        || onx_die 3 "ANALYZE basarisiz: ${DB_NAME}.${TABLE}"
else
    mysqlcheck --defaults-extra-file="$_MYCNF_TMP" --analyze --all-tables "$DB_NAME" \
        || onx_die 3 "ANALYZE basarisiz (tum tablolar): ${DB_NAME}"
fi

TABLE_OUT="${TABLE:-null}"
if [[ "$TABLE_OUT" != "null" ]]; then
    TABLE_OUT="\"${TABLE_OUT}\""
fi
json_ok "{\"db_name\":\"${DB_NAME}\",\"table\":${TABLE_OUT},\"analyzed\":true}"
