// sql console — run ad-hoc queries against archive or intelligence db // depends on: app.js async function runSql() { const sql = document.getElementById("sql-input").value.trim(); if (!sql) return; const database = document.getElementById("sql-db").value; const errEl = document.getElementById("sql-error"); const resultsEl = document.getElementById("sql-results"); const elapsedEl = document.getElementById("sql-elapsed"); errEl.style.display = "none"; resultsEl.innerHTML = ""; elapsedEl.textContent = ""; try { const data = await fetch("/admin/api/sql", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ sql, database }), }).then(r => r.json()); if (data.error) { errEl.textContent = data.error; errEl.style.display = ""; return; } elapsedEl.textContent = `${data.elapsed}ms`; const blocks = []; for (const r of (data.results || [])) { if (r.error) { blocks.push(`
| ${escapeHtml(c)} | `).join("")}
|---|
| ${row[c] == null ? 'NULL' : escapeHtml(row[c])} | `).join("")}