Skip to main content
Every request to POST /v1/query runs in one of two modes, controlled by the mode field in the request body.

Execute Mode

"mode": "execute" is the default. The engine parses, plans, optimizes, and then runs the query — fetching rows from DynamoDB and returning them in the response.
  • Consumes DynamoDB RCUs charged to your AWS account.
  • Required scope: query
  • Returns a data payload with rows, column metadata, and timing fields.

Plan Mode

"mode": "plan" parses and optimizes the query without fetching any data.
  • Does NOT consume DynamoDB RCUs.
  • Required scope: query
  • Returns a human-readable plan tree, an optimizer weight (cost estimate), and the normalized SQL string.
Plan mode is useful for:
  • Debugging slow queries — check whether the optimizer selected an index or fell back to a scan.
  • Validating SQL in CI/CD — catch syntax errors and unsupported features without consuming capacity.
  • Previewing query structure — understand how the engine will execute a query before running it against production tables.

Understanding the Response Fields

weight

The optimizer’s relative cost estimate. Lower is cheaper. A weight of 0 means no cost estimate was computed — for example, when the query has no index candidates and the optimizer produces a simple scan plan.

planTime

Present in both modes. Covers parse + plan + optimize only. It does not include any DynamoDB I/O.

execTime

Present in execute mode only. Total elapsed time from request receipt to response, including all DynamoDB I/O. Always >= planTime.

Example

Plan mode request:
Plan mode response:
The plan tree shows the engine will perform a full Scan with a Filter applied — no index was matched. If you have a GSI on status, check that the schema metadata is registered correctly in the portal so the optimizer can see it.
If you see Scan(...) in the plan for a query that should use an index, run the query in plan mode first and inspect the tree before paying DynamoDB RCU costs for a scan.
Execute mode request (same query):
Execute mode response: