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

# Dataset columns

# DatasetColumnsClient

`adaline.datasets.columns` manages the column schema of a dataset — add, rename, or delete columns, and resolve dynamic columns whose values are produced by prompts, HTTP requests, or dynamic functions.

## Access

```typescript theme={null}
import { Adaline } from '@adaline/client';

const adaline = new Adaline();
const columns = adaline.datasets.columns; // DatasetColumnsClient
```

The class is also exported directly:

```typescript theme={null}
import { DatasetColumnsClient } from '@adaline/client';
```

Types from `@adaline/api`:

```typescript theme={null}
import type {
  DatasetColumn,
  AddDatasetColumnsRequest,
  AddDatasetColumnsResponse,
  UpdateDatasetColumnRequest,
  FetchDynamicColumnsRequest,
  FetchDynamicColumnsResponse,
} from '@adaline/api';
```

Column `type` can be `input`, `output`, `metadata`, or a dynamic type such as `prompt`, `api`, or `dynamic-function`.

***

## create()

Append one or more column definitions to a dataset. Existing rows get empty values for the new columns.

```typescript theme={null}
create(options: {
  datasetId: string;
  columns: AddDatasetColumnsRequest['columns'];
}): Promise<AddDatasetColumnsResponse>
```

### Parameters

| Name        | Type                                  | Required | Description                                                                         |
| ----------- | ------------------------------------- | -------- | ----------------------------------------------------------------------------------- |
| `datasetId` | `string`                              | Yes      | Dataset identifier.                                                                 |
| `columns`   | `AddDatasetColumnsRequest['columns']` | Yes      | Array of column definitions. Each has `name`, `type`, and type-specific `settings`. |

### Returns

`Promise<AddDatasetColumnsResponse>` with `{ columns: DatasetColumn[] }` — the newly added columns with server-assigned IDs.

### Example

```typescript theme={null}
const { columns } = await adaline.datasets.columns.create({
  datasetId: 'dataset_abc123',
  columns: [
    { name: 'category', type: 'input' },
    { name: 'response', type: 'output' },
  ],
});

console.log(`Added ${columns.length} columns`);
```

***

## update()

Change a column's name, type, or settings.

```typescript theme={null}
update(options: {
  datasetId: string;
  columnId: string;
  column: UpdateDatasetColumnRequest;
}): Promise<DatasetColumn>
```

### Returns

`Promise<DatasetColumn>` — the updated column.

### Example

```typescript theme={null}
await adaline.datasets.columns.update({
  datasetId: 'dataset_abc123',
  columnId: 'column_xyz789',
  column: { name: 'renamed_column' },
});
```

***

## delete()

Delete a column from a dataset. All row values for this column are dropped.

```typescript theme={null}
delete(options: { datasetId: string; columnId: string }): Promise<void>
```

***

## fetchDynamic()

Trigger on-demand resolution for dynamic columns — columns whose values are generated from another prompt, an HTTP endpoint, or a dynamic function. Returns the resolved values without persisting them.

```typescript theme={null}
fetchDynamic(options: {
  datasetId: string;
  query: FetchDynamicColumnsRequest;
}): Promise<FetchDynamicColumnsResponse>
```

### Parameters

| Name        | Type                                                                            | Required | Description                                                                                                                                 |
| ----------- | ------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `datasetId` | `string`                                                                        | Yes      | Dataset identifier.                                                                                                                         |
| `query`     | [`FetchDynamicColumnsRequest`](/docs/reference/api/v2/openapi/fetch-dynamic-columns) | Yes      | `{ columnIds: string[]; rowIds?: string[] }`. Resolve the given dynamic columns against every row (or only against the specified `rowIds`). |

### Returns

`Promise<FetchDynamicColumnsResponse>` with `{ results: Array<{ rowId: string; columnId: string; value: DatasetCellResponse }> }`.

### Example

```typescript theme={null}
const { results } = await adaline.datasets.columns.fetchDynamic({
  datasetId: 'dataset_abc123',
  query: {
    columnIds: ['column_api_response'],
    rowIds: ['row_def456', 'row_ghi012'],
  },
});

for (const r of results) {
  console.log(`${r.rowId}/${r.columnId}:`, r.value);
}
```

***

## See Also

* [DatasetsClient](/docs/reference/sdk/v2/typescript/classes/datasets) — parent client
* [DatasetRowsClient](/docs/reference/sdk/v2/typescript/classes/dataset-rows) — sibling sub-client for rows
* API reference: [Add columns](/docs/reference/api/v2/openapi/add-dataset-columns) · [Update column](/docs/reference/api/v2/openapi/update-dataset-column) · [Delete column](/docs/reference/api/v2/openapi/delete-dataset-column) · [Fetch dynamic columns](/docs/reference/api/v2/openapi/fetch-dynamic-columns)
