Skip to content

SQL playground

Run your own SELECTs against the live Cloudflare D1 database that powers this site.

Read-only SQL playground. SELECT-only; tables: load_hourly, weather_hourly, manifests. Max 1500 chars; LIMIT 1000 auto-applied.

Examples:
CREATE TABLE load_hourly (
ts_utc TEXT, -- ISO 8601 UTC
ts_myt TEXT, -- ISO 8601 Asia/Kuala_Lumpur
year, month, hour, weekday INTEGER,
is_weekend, is_etou_peak INTEGER, -- 0/1
t_canonical REAL, -- canonical Senai temperature (°C)
cdh REAL, -- cooling-degree-hours
s_t REAL, -- normalised hourly basis Sₜ
c_m_mw_per_unit REAL, -- monthly calibration constant
load_mw REAL, -- synthesised hourly load
johor_share REAL -- modelled Johor / peninsular share
);
CREATE TABLE weather_hourly (
ts_utc, ts_myt, date_myt TEXT,
year, month, hour, weekday INTEGER,
is_weekend, is_etou_peak INTEGER,
power_t2m, power_ghi, power_dni, power_dhi REAL,
power_rh2m, power_ws10m REAL,
metar_tmpc, metar_dwpc, metar_relh, metar_sknt REAL,
t_canonical REAL
);
CREATE TABLE manifests (
source TEXT, dataset TEXT, run_id TEXT,
ingested_at TEXT, source_url TEXT,
row_count INTEGER, bytes INTEGER, source_hash TEXT
);
  • SELECT statements only (rejects INSERT / UPDATE / DELETE / DDL).
  • Single statement per request (no ; allowed mid-query).
  • Auto-appended LIMIT 1000 if you don’t supply one.
  • 1500-character query length cap.
  • Tables outside the allowlist are blocked even via subqueries.