-- VizieR TAP / VO 查询结果本地缓存
-- 对齐 paper_targets 的缓存范式：JSON 列存复杂结构、UNIQUE 约束、索引
CREATE TABLE IF NOT EXISTS vizier_query_cache (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    query_hash TEXT NOT NULL,        -- sha1(adql + max_records)
    adql TEXT NOT NULL,
    max_records INTEGER,
    result_json TEXT NOT NULL,       -- 序列化后的 VizierQueryResult
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    expires_at DATETIME,             -- TTL 过期时间（NULL = 永不过期）
    UNIQUE(query_hash)
);

CREATE INDEX IF NOT EXISTS idx_vizier_cache_hash ON vizier_query_cache(query_hash);
