> ## 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. Every method is async.

## Access

```python theme={null}
from adaline.main import Adaline

adaline = Adaline()
columns = adaline.datasets.columns  # DatasetColumnsClient
```

The class is also exported directly:

```python theme={null}
from adaline.clients import DatasetColumnsClient
```

Types from `adaline_api`:

```python theme={null}
from adaline_api.models.dataset_column import DatasetColumn
from adaline_api.models.add_dataset_columns_request_columns_inner import AddDatasetColumnsRequestColumnsInner
from adaline_api.models.add_dataset_columns_response import AddDatasetColumnsResponse
from adaline_api.models.update_dataset_column_request import UpdateDatasetColumnRequest
from adaline_api.models.fetch_dynamic_columns_request import FetchDynamicColumnsRequest
from adaline_api.models.fetch_dynamic_columns_response import FetchDynamicColumnsResponse
```

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.

```python theme={null}
async def create(
    *,
    dataset_id: str,
    columns: List[AddDatasetColumnsRequestColumnsInner],
) -> AddDatasetColumnsResponse
```

### Parameters

| Name         | Type        | Required | Description                                           |
| ------------ | ----------- | -------- | ----------------------------------------------------- |
| `dataset_id` | `str`       | Yes      | Dataset identifier.                                   |
| `columns`    | `List[...]` | Yes      | Column definitions (name + type + optional settings). |

### Example

```python theme={null}
response = await adaline.datasets.columns.create(
    dataset_id="dataset_abc123",
    columns=[
        {"name": "category", "type": "input"},
        {"name": "response", "type": "output"},
    ],
)

print(f"Added {len(response.columns)} columns")
```

***

## update()

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

```python theme={null}
async def update(
    *,
    dataset_id: str,
    column_id: str,
    column: UpdateDatasetColumnRequest,
) -> DatasetColumn
```

### Example

```python theme={null}
from adaline_api.models.update_dataset_column_request import UpdateDatasetColumnRequest

await adaline.datasets.columns.update(
    dataset_id="dataset_abc123",
    column_id="column_xyz789",
    column=UpdateDatasetColumnRequest(name="renamed_column"),
)
```

***

## delete()

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

```python theme={null}
async def delete(*, dataset_id: str, column_id: str) -> None
```

***

## fetch\_dynamic()

Trigger on-demand resolution for dynamic columns. Returns the resolved values without persisting them.

```python theme={null}
async def fetch_dynamic(
    *,
    dataset_id: str,
    query: FetchDynamicColumnsRequest,
) -> FetchDynamicColumnsResponse
```

### Parameters

| Name         | Type                                                                            | Required | Description                                                |
| ------------ | ------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------- |
| `dataset_id` | `str`                                                                           | Yes      | Dataset identifier.                                        |
| `query`      | [`FetchDynamicColumnsRequest`](/docs/reference/api/v2/openapi/fetch-dynamic-columns) | Yes      | `{ column_ids: list[str]; row_ids: Optional[list[str]] }`. |

### Example

```python theme={null}
from adaline_api.models.fetch_dynamic_columns_request import FetchDynamicColumnsRequest

response = await adaline.datasets.columns.fetch_dynamic(
    dataset_id="dataset_abc123",
    query=FetchDynamicColumnsRequest(
        column_ids=["column_api_response"],
        row_ids=["row_def456", "row_ghi012"],
    ),
)

for r in response.results:
    print(f"{r.row_id}/{r.column_id}: {r.value}")
```

***

## See Also

* [DatasetsClient](/docs/reference/sdk/v2/python/classes/datasets) — parent client
* [DatasetRowsClient](/docs/reference/sdk/v2/python/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) · [Fetch dynamic columns](/docs/reference/api/v2/openapi/fetch-dynamic-columns)
