Commit Graph

1 Commits

Author SHA1 Message Date
claude@clouddev1 cd6371a4ec tests: Phase 1 SQL SELECT integration tests
`tests/sql_select.rs` covers the full advanced-mode SELECT path
end to end (ADR-0030 Phase 1, ADR-0031):

App-level dispatch
- `advanced_mode_select_dispatches_as_command_select`: an
  advanced-mode `select 1` produces exactly one
  `Action::ExecuteDsl { command: Command::Select { sql }, .. }`
  carrying the validated SQL text.
- `simple_mode_select_yields_sql_hint_and_does_not_dispatch`:
  a simple-mode `select` produces no dispatch action and the
  error output contains the SQL hint naming both recovery
  paths (`mode advanced` / the `:` one-shot).
- `colon_one_shot_from_simple_mode_dispatches_select`:
  `:select 1` keeps the persistent mode as `Simple` while
  dispatching `Command::Select` with the `:` stripped.
- `advanced_mode_select_from_internal_table_is_rejected`:
  a SELECT against `__rdbms_playground_columns` is refused by
  the grammar's `reject_internal_table` validator.

Worker round-trip
- `database_run_select_constant_returns_a_single_row`:
  `select 1` runs through `Database::run_select` and returns
  a `DataResult` with one row whose only cell is `1`; all
  `column_types` are `None` (ADR-0030 §6).
- `database_run_select_from_user_table_returns_inserted_rows`:
  create-table → insert → `select Name from T` round-trips
  the inserted row through the worker.
- `database_run_select_appends_to_history_when_source_present`:
  the literal source line lands in `history.log` so replay
  re-runs it (ADR-0030 §11).
2026-05-19 21:50:47 +00:00