feat(nodejs): expose computed columns and refreshColumn

addComputedColumns declares columns defined by a SQL expression, and
refreshColumn fills a computed column's unfilled rows:

    await table.addComputedColumns([{ name: "doubled", valueSql: "x * 2" }]);
    await table.refreshColumn("doubled");
This commit is contained in:
Wyatt Alt
2026-08-04 13:47:24 -07:00
parent 5a1c839382
commit 5982eebbb3
7 changed files with 168 additions and 3 deletions
+28 -1
View File
@@ -71,7 +71,12 @@ Add new columns with defined values.
#### Parameters
* **newColumnTransforms**: `Field`<`any`> \| `Field`<`any`>[] \| `Schema`<`any`> \| [`AddColumnsSql`](../interfaces/AddColumnsSql.md)[]
* **newColumnTransforms**:
\| `Field`<`any`>
\| `Field`<`any`>[]
\| `Schema`<`any`>
\| [`AddColumnsSql`](../interfaces/AddColumnsSql.md)[]
\| `object`
Either:
- An array of objects with column names and SQL expressions to calculate values
- A single Arrow Field defining one column with its data type (column will be initialized with null values)
@@ -718,6 +723,28 @@ for await (const batch of table.query()) {
***
### refreshColumn()
```ts
abstract refreshColumn(column): Promise<RefreshColumnResult>
```
Compute and store values for a computed column's unfilled rows.
#### Parameters
* **column**: `string`
The name of the computed column to fill.
#### Returns
`Promise`&lt;[`RefreshColumnResult`](../interfaces/RefreshColumnResult.md)&gt;
A promise that resolves to the
number of rows filled and the new version number of the table.
***
### restore()
```ts
+1
View File
@@ -105,6 +105,7 @@
- [OptimizeOptions](interfaces/OptimizeOptions.md)
- [OptimizeStats](interfaces/OptimizeStats.md)
- [QueryExecutionOptions](interfaces/QueryExecutionOptions.md)
- [RefreshColumnResult](interfaces/RefreshColumnResult.md)
- [RemovalStats](interfaces/RemovalStats.md)
- [RenameTableOptions](interfaces/RenameTableOptions.md)
- [RestNamespaceConfig](interfaces/RestNamespaceConfig.md)
@@ -0,0 +1,23 @@
[**@lancedb/lancedb**](../README.md) • **Docs**
***
[@lancedb/lancedb](../globals.md) / RefreshColumnResult
# Interface: RefreshColumnResult
## Properties
### rowsFilled
```ts
rowsFilled: number;
```
***
### version
```ts
version: number;
```