> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: QueryPlan

> Not exported: an exported type refers to it.

[browser](/api/modules/browser).QueryPlan

Not exported: an exported type refers to it.

## Properties

### strategy

• **strategy**: `"remote_statement"` | `"input_upload"` | `"residual"`

***

### provider

• **provider**: `null` | `"snowflake"` | `"databricks"` | `"duckdb"` | `"clickhouse"`

***

### inputs

• **inputs**: \{ `table`: `string` ; `fields`: `string`\[] ; `parameterRows?`: `number` ; `predicateFields?`: `string`\[]  }\[]

***

### output

• **output**: \{ `name`: `string` ; `kind`: `null` | `string` ; `nullable`: `boolean` ; `optional`: `boolean`  }\[]

***

### fragments

• `Optional` **fragments**: \{ `id`: \{ `kind`: `"rows"` | `"aggregate_state"` ; `node`: `number`  } ; `node`: `number` ; `tables`: `string`\[] ; `provider`: `"snowflake"` | `"databricks"` | `"duckdb"` | `"clickhouse"` ; `output`: \{ `name`: `string` ; `kind`: `null` | `string` ; `nullable`: `boolean` ; `optional`: `boolean`  }\[] ; `validations`: (`"complete_result"` | `"exact_cells"` | `"required_values"` | `"integer_sum_overflow"` | `"join_cardinality"` | `"integer_arithmetic"`)\[]  }\[]

***

### compute

• `Optional` **compute**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `inputBytes` | `number` |
| `cellBytes` | `number` |
| `intermediateBytes` | `number` |
| `memoryPoolBytes` | `number` |
| `spillBytes` | `number` |
| `heapBytes` | `number` |

***

### parameterCount

• **parameterCount**: `number`

***

### alternatives

• `Optional` **alternatives**: \{ `logicalAlternative`: `number` ; `fragments`: \{ `kind`: `"rows"` | `"aggregate_state"` ; `node`: `number`  }\[] ; `joinFilters`: \{ `build_table`: `string` ; `build_field`: `string` ; `probe_table`: `string` ; `probe_field`: `string`  }\[] ; `joinFilterPricing`: `null` | `"overflow"` | `"estimated"` | `"unknown_selectivity"` | `"fragment_estimate_unknown"` | `"scan_estimate_unknown"` | `"key_statistics_unknown"` | `"key_width_unknown"` | `"dependency_cycle"` ; `statements`: `number` ; `pushedNodes`: `number` ; `estimatedOutputBytes`: `null` | `number` ; `estimatedSourceWorkBytes`: `null` | `number` ; `estimatedSourceMicros`: `null` | `number` ; `compute`: \{ `model`: `"fixed_prior"` ; `inputMicros`: `null` | `number` ; `operatorMicros`: `null` | `number` ; `validationMicros`: `null` | `number` ; `spillMicros`: `null` | `number` ; `workingBytes`: `null` | `number` ; `spillIoBytes`: `null` | `number`  } ; `localInputBytes`: `number` ; `selected`: `boolean`  }\[]

***

### searchBudgetExhausted

• `Optional` **searchBudgetExhausted**: `boolean`

***

### search

• `Optional` **search**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `work` | `number` |
| `workLimit` | `number` |
| `resumedWork` | `number` |
| `phases` | `Partial`\<`Record`\<`"cardinality"` \| `"logical_rule"` \| `"join_enumeration"` \| `"extraction"` \| `"source_implementation"` \| `"physical_combination"` \| `"join_filter"`, `number`>> |
| `limits` | (`"join_enumeration"` \| `"work"` \| `"logical_shape"` \| `"placement_frontier"` \| `"join_filter_frontier"` \| `"complete_plan_frontier"`)\[] |
| `logicalGroups` | `number` |
| `estimatedGroups` | `number` |
| `estimateReuses` | `number` |
| `logicalExpressions` | `number` |
| `importReuses` | `number` |
| `logicalRecipes` | `number` |
| `ruleApplications` | `number` |
| `childCombinations` | `number` |
| `pendingTasks` | `number` |
| `physicalRequests` | `number` |
| `physicalImplementations` | `number` |
| `requestStates` | `Partial`\<`Record`\<`"pending"` \| `"complete"` \| `"empty"` \| `"waiting_cycle"` \| `"work_stopped"`, `number`>> |
| `reopenedRequests` | `number` |
| `extractedTrees` | `number` |
| `duplicateTrees` | `number` |
| `pricedPlacements` | `number` |
| `sourceRequests` | `number` |
| `sourceReuses` | `number` |
| `sourceCompilations` | `number` |
| `sourceCacheEvictions` | `number` |
| `filterGraphRequests` | `number` |
| `filterGraphReuses` | `number` |
| `filterGraphSkips` | `number` |
| `filterGraphEntries` | `number` |
| `filterGraphKeyBytes` | `number` |
| `retainedPlans` | `number` |

***

### cardinalities

• `Optional` **cardinalities**: \{ `tables`: `string`\[] ; `rows`: `null` | `number` ; `outputBytes`: `null` | `number` ; `basis`: `"unknown"` | `"statistics"` | `"heuristic"`  }\[]

***

### statistics

• `Optional` **statistics**: \{ `table`: `string` ; `status`: `"unavailable"` | `"fetched"` | `"cached"` | `"local"` | `"withheld"` | `"not_requested"` ; `rows`: `null` | `number` ; `rowsOrigin`: `null` | `"observed"` | `"local"` | `"catalog"` ; `dataBytes`: `null` | `number` ; `observedColumns`: `number` ; `columns?`: \{ `field`: `string` ; `distinct`: `null` | `"observed"` | `"local"` | `"catalog"` ; `nullFraction`: `null` | `"observed"` | `"local"` | `"catalog"` ; `bounds`: `null` | `"observed"` | `"local"` | `"catalog"`  }\[] ; `ageMs`: `null` | `number` ; `versioned`: `boolean`  }\[]

***

### selection

• `Optional` **selection**: `"single_source_observation"` | `"comparable_cost_estimate"` | `"structural_preference"` | `"qualification_alternative"`

***

### rules

• `Optional` **rules**: \{ `tables`: `string`\[] ; `rule`: `"aggregate_before_join"` | `"join_reorder"` | `"predicate_pushdown"` | `"derived_predicate"` | `"top_n_pushdown"`  }\[]

***

### constraints

• `Optional` **constraints**: \{ `tables`: `string`\[] ; `reason`: `"parameter_relation_unsupported"` | `"validation_barrier"` | `"operator_unsupported"` | `"disclosure_refused"` | `"input_shape_bound"`  }\[]

***

### calibration

• `Optional` **calibration**: \{ `tables`: `string`\[] ; `provider`: `"snowflake"` | `"databricks"` | `"duckdb"` | `"clickhouse"` ; `profile`: \{ `statementMicros`: `number` ; `statementOrigin`: `"prior"` | `"measured"` ; `bytesPerMs`: `number` ; `throughputOrigin`: `"prior"` | `"measured"` ; `workBytesPerMs`: `number` ; `workOrigin`: `"prior"` | `"measured"` ; `samples`: `number` ; `usableSamples`: `number`  } ; `recorded`: `number`  }\[]

***

### logicalAlternatives

• `Optional` **logicalAlternatives**: \{ `origin`: `"written"` | `"memo"` ; `enumeration`: `null` | `"exact"` | `"bounded"` ; `tree`: `string` ; `statements`: `number` ; `estimatedSourceMicros`: `null` | `number` ; `estimatedComputeMicros`: `null` | `number` ; `selected`: `boolean`  }\[]

***

### maxRows

• **maxRows**: `number`

***

### maxBytes

• **maxBytes**: `number`

***

### validations

• **validations**: (`"complete_result"` | `"exact_cells"` | `"required_values"` | `"integer_sum_overflow"` | `"join_cardinality"` | `"integer_arithmetic"`)\[]


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.