Chulinz/Text2SQL-Decisions
Text2SQL-Decisions v0.3 28,081 English-only examples across two separate configurations. Both are template-generated, execution-validated drafts, not human-reviewed benchmarks. No model has been fine-tuned as part of this release. Configuration Rows Task License default 25,000 Four-candidate SQL plan selection on public sensor and e-commerce data CC BY 4.0 meter 3,081 Bounded meter planning decisions, including conversational context CC0-1.0 The configurations… See the full description on the dataset page: https://huggingface.co/datasets/Chulinz/Text2SQL-Decisions.
067
1import { fixtureAsOf, fixtureStart } from './data-config.js';2import type { FixtureMeter, FixtureReading } from './data-schema.js';3 4export const meterCatalog: FixtureMeter[] = Array.from({ length: 15 }, (_, index) => ({5 id: `meter-${String(index + 1).padStart(2, '0')}`,6 name: `${['DI Water', 'Chemical', 'H2SO4'][index % 3]} ${index + 1}`,7 resource: ['DI Water', 'Chemical', 'H2SO4'][index % 3],8 unit: index % 3 === 0 ? 'm3' : 'L',9 building: index < 9 ? 'A' : 'B',10 floor: Math.floor(index / 3) % 3 + 1,11 expected_interval_minutes: 60,12}));13 14export function generateMeterReadings(): FixtureReading[] {15 const readings: FixtureReading[] = [];16 const end = Date.parse(fixtureAsOf);17 for (const [index, meter] of meterCatalog.entries()) {18 if (index === 14) continue;19 let cumulative = 1000 + index * 100;20 for (let time = Date.parse(fixtureStart), step = 0; time <= end; time += 3_600_000, step++) {21 const reset = index === 3 && time === Date.parse('2026-10-08T00:00:00Z');22 const today = time > Date.parse('2026-10-08T17:00:00Z');23 const increment = (index + 1) * (1 + step % 6 / 10) * (index === 2 && today ? 5 : 1);24 cumulative = reset ? 0 : Math.round((cumulative + increment) * 1000) / 1000;25 if (index === 12 && time > end - 5 * 3_600_000) continue;26 if (index === 4 && time > end - 9 * 3_600_000 && time < end - 5 * 3_600_000) continue;27 readings.push({ meter_id: meter.id, recorded_at: new Date(time).toISOString(), cumulative_value: cumulative,28 quality: index === 5 && time === end - 2 * 3_600_000 ? 'invalid' : 'valid', reset });29 }30 }31 readings.push({ meter_id: 'meter-14', recorded_at: new Date(end + 3_600_000).toISOString(), cumulative_value: 999999, quality: 'valid', reset: false });32 return readings;33}34 