> ## 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: Answers<Schema>

> Answers are available only in actions.

[server](/api/modules/server).Answers

Answers are available only in actions. A relation uses the same `q`
builder as views. A small local input can join one Snowflake statement only
when its disclosure rule admits upload. A cross-warehouse join, or local input
to Databricks, requires every input to disclose its bounded rows to isolated
compute. The host does not retain those rows as local tables. Unsupported
expressions refuse before fetching input rows.

## Type parameters

| Name | Type |
| :- | :- |
| `Schema` | extends [`GenericSchema`](/api/modules/server#genericschema) = [`GenericSchema`](/api/modules/server#genericschema) |

## Methods

### reserve

▸ **reserve**(): `Promise`\<[`AnswerReservation`](/api/modules/server#answerreservation)\<`Record`\<`string`, [`Value`](/api/modules/values#value)>>>

Reserve one expiring answer identity. No source work or discovery runs.

#### Returns

`Promise`\<[`AnswerReservation`](/api/modules/server#answerreservation)\<`Record`\<`string`, [`Value`](/api/modules/values#value)>>>

***

### ask

▸ **ask**\<`Expr`>(`relation`, `options`): `Promise`\<[`AnswerState`](/api/modules/server#answerstate)\<[`AnswerRow`](/api/modules/server#answerrow)\<`Schema`, `Expr`>, [`AnswerKind`](/api/modules/server#answerkind)>>

Freeze the selected plan and inputs in private custody, then execute
through the native scheduler. Retention requires explicit disclosure.

#### Type parameters

| Name |
| :- |
| `Expr` |

#### Parameters

| Name | Type |
| :- | :- |
| `relation` | [`ValidRelation`](/api/modules/browser#validrelation)\<`Schema`, `Expr`> |
| `options` | `Object` |
| `options.answer_id` | `string` |
| `options.result?` | `"complete"` \| `"browse"` |
| `options.max_rows?` | `number` |
| `options.max_bytes?` | `number` |

#### Returns

`Promise`\<[`AnswerState`](/api/modules/server#answerstate)\<[`AnswerRow`](/api/modules/server#answerrow)\<`Schema`, `Expr`>, [`AnswerKind`](/api/modules/server#answerkind)>>

***

### get

▸ **get**\<`Row`>(`answer_id`, `request?`): `Promise`\<[`AnswerState`](/api/modules/server#answerstate)\<`Row`, [`AnswerKind`](/api/modules/server#answerkind)>>

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |
| `request?` | `Object` |
| `request.relation` | [`Relation`](/api/classes/server.Relation)\<`unknown`> |
| `request.result?` | `"complete"` \| `"browse"` |
| `request.max_rows?` | `number` |
| `request.max_bytes?` | `number` |

#### Returns

`Promise`\<[`AnswerState`](/api/modules/server#answerstate)\<`Row`, [`AnswerKind`](/api/modules/server#answerkind)>>

***

### page

▸ **page**\<`Row`>(`answer_id`, `options?`): `Promise`\<`AnswerPage`\<`Row`, [`AnswerKind`](/api/modules/server#answerkind)>>

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |
| `options?` | `Object` |
| `options.cursor?` | `string` |
| `options.page_size?` | `number` |

#### Returns

`Promise`\<`AnswerPage`\<`Row`, [`AnswerKind`](/api/modules/server#answerkind)>>

***

### facets

▸ **facets**\<`Row`>(`answer_id`, `fields`): `Promise`\<[`AnswerFacets`](/api/modules/browser#answerfacets)\<`Row`>>

Distributions of a complete ready result, under its current read authority.

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |
| `fields` | readonly [`AnswerFacetSpecification`](/api/modules/browser#answerfacetspecification)\<`Row`>\[] |

#### Returns

`Promise`\<[`AnswerFacets`](/api/modules/browser#answerfacets)\<`Row`>>

***

### cancel

▸ **cancel**\<`Row`>(`answer_id`): `Promise`\<[`AnswerControl`](/api/interfaces/server.AnswerControl)\<`Row`>>

Requests cancellation. A provider acknowledgement is not confirmation.

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |

#### Returns

`Promise`\<[`AnswerControl`](/api/interfaces/server.AnswerControl)\<`Row`>>

***

### release

▸ **release**\<`Row`>(`answer_id`): `Promise`\<[`AnswerControl`](/api/interfaces/server.AnswerControl)\<`Row`>>

Drops retained result custody. Source cleanup keeps its independent owner.

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |

#### Returns

`Promise`\<[`AnswerControl`](/api/interfaces/server.AnswerControl)\<`Row`>>

***

### keep

▸ **keep**\<`Row`>(`answer_id`, `options`): `Promise`\<[`AnswerFile`](/api/interfaces/server.AnswerFile)>

Keep a ready result: the engine writes its complete rows as one CSV
file of `columns` (exactly the answer's columns, values of the declared
types), attests the execution that produced it, and grants `holder` (an
installed component such as `components.datasets`, or this component)
custody of the file under `key` until its work settles, with renewable
delivery leases of at most 24 hours, in one commit. `from` names every
source this program permits keeping. Requires
the caller's current read of the result and its sources' consent to the
holder's custody. A key holds one kept answer: repeating the same keep
returns it. The execution itself is unchanged.

#### Type parameters

| Name |
| :- |
| `Row` |

#### Parameters

| Name | Type |
| :- | :- |
| `answer_id` | [`AnswerId`](/api/modules/server#answerid)\<`Row`> |
| `options` | `Object` |
| `options.holder?` | `object` |
| `options.key` | `string` |
| `options.columns` | [`AnswerColumn`](/api/interfaces/server.AnswerColumn)\[] |
| `options.from` | readonly `string`\[] |

#### Returns

`Promise`\<[`AnswerFile`](/api/interfaces/server.AnswerFile)>

***

### explain

▸ **explain**\<`Expr`>(`relation`, `options?`): `Promise`\<[`AnswerExplanation`](/api/interfaces/server.AnswerExplanation)>

#### Type parameters

| Name |
| :- |
| `Expr` |

#### Parameters

| Name | Type |
| :- | :- |
| `relation` | [`ValidRelation`](/api/modules/browser#validrelation)\<`Schema`, `Expr`> |
| `options?` | `Object` |
| `options.max_rows?` | `number` |
| `options.max_bytes?` | `number` |

#### Returns

`Promise`\<[`AnswerExplanation`](/api/interfaces/server.AnswerExplanation)>

***

### collect

▸ **collect**\<`Expr`>(`relation`, `options?`): `Promise`\<[`AnswerCollection`](/api/interfaces/server.AnswerCollection)\<[`AnswerRow`](/api/modules/server#answerrow)\<`Schema`, `Expr`>>>

Ask once and return the complete answer; nothing is retained.

#### Type parameters

| Name |
| :- |
| `Expr` |

#### Parameters

| Name | Type |
| :- | :- |
| `relation` | [`ValidRelation`](/api/modules/browser#validrelation)\<`Schema`, `Expr`> |
| `options?` | `Object` |
| `options.max_rows?` | `number` |
| `options.max_bytes?` | `number` |

#### Returns

`Promise`\<[`AnswerCollection`](/api/interfaces/server.AnswerCollection)\<[`AnswerRow`](/api/modules/server#answerrow)\<`Schema`, `Expr`>>>


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