feat: support explain over advanced-mode SQL queries
explain now wraps the advanced SQL commands — select, with (CTE), insert, update, delete — in addition to the DSL show data/update/ delete it already covered, rendering through the same plan tree (ADR-0039, closing the ADR-0030 OOS-2 gap). Implemented as a second Advanced `explain` CommandNode under the shared entry word, reusing the established shared-word dispatch (SQL-first, DSL-fallback) rather than new grammar machinery. build_explain_sql slices the inner SQL off the source and reuses the existing SQL builders; do_explain_plan runs EXPLAIN QUERY PLAN over the carried text verbatim (never executes, so safe for destructive verbs). Advanced explain update/delete now route through SQL with an identical plan; DSL-explain tests pinned to simple mode. Help and usage text now list the advanced explain forms.
This commit is contained in:
@@ -101,8 +101,10 @@ Current decisions at a glance (each backed by an ADR):
|
||||
- **Indexes & query plans:** `add index` / `drop index`
|
||||
(ADR-0025); `explain show data|update|delete` runs
|
||||
`EXPLAIN QUERY PLAN` and renders an annotated, span-styled
|
||||
plan tree (ADR-0028). `EXPLAIN QUERY PLAN` never executes,
|
||||
so explaining a destructive command is safe.
|
||||
plan tree (ADR-0028). In advanced mode `explain` also wraps
|
||||
SQL `select` / `with` / `insert` / `update` / `delete`
|
||||
(ADR-0039). `EXPLAIN QUERY PLAN` never executes, so
|
||||
explaining a destructive command is safe.
|
||||
|
||||
## Repository layout
|
||||
|
||||
|
||||
Reference in New Issue
Block a user