mirror of
https://github.com/lancedb/lancedb.git
synced 2026-05-19 21:10:41 +00:00
### Summary - Expose Connection.renameTable in the Node.js bindings and align it with existing namespace-aware connection APIs. ### Changes - Add napi-rs rename_table on Connection, delegating to Rust Connection::rename_table. - Add renameTable(oldName, newName, namespacePath?) on abstract Connection and implement on LocalConnection. - Add a connection test that renames a table and checks names / open behavior. #### Testing - cd nodejs && npm run build - cd nodejs && npm test __test__/connection.test.ts fix : #3364 --------- Co-authored-by: Will Jones <willjones127@gmail.com>
507 lines
10 KiB
Markdown
507 lines
10 KiB
Markdown
[**@lancedb/lancedb**](../README.md) • **Docs**
|
|
|
|
***
|
|
|
|
[@lancedb/lancedb](../globals.md) / Connection
|
|
|
|
# Class: `abstract` Connection
|
|
|
|
A LanceDB Connection that allows you to open tables and create new ones.
|
|
|
|
Connection could be local against filesystem or remote against a server.
|
|
|
|
A Connection is intended to be a long lived object and may hold open
|
|
resources such as HTTP connection pools. This is generally fine and
|
|
a single connection should be shared if it is going to be used many
|
|
times. However, if you are finished with a connection, you may call
|
|
close to eagerly free these resources. Any call to a Connection
|
|
method after it has been closed will result in an error.
|
|
|
|
Closing a connection is optional. Connections will automatically
|
|
be closed when they are garbage collected.
|
|
|
|
Any created tables are independent and will continue to work even if
|
|
the underlying connection has been closed.
|
|
|
|
## Methods
|
|
|
|
### cloneTable()
|
|
|
|
```ts
|
|
abstract cloneTable(
|
|
targetTableName,
|
|
sourceUri,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Clone a table from a source table.
|
|
|
|
A shallow clone creates a new table that shares the underlying data files
|
|
with the source table but has its own independent manifest. This allows
|
|
both the source and cloned tables to evolve independently while initially
|
|
sharing the same data, deletion, and index files.
|
|
|
|
#### Parameters
|
|
|
|
* **targetTableName**: `string`
|
|
The name of the target table to create.
|
|
|
|
* **sourceUri**: `string`
|
|
The URI of the source table to clone from.
|
|
|
|
* **options?**
|
|
Clone options.
|
|
|
|
* **options.isShallow?**: `boolean`
|
|
Whether to perform a shallow clone (defaults to true).
|
|
|
|
* **options.sourceTag?**: `string`
|
|
The tag of the source table to clone.
|
|
|
|
* **options.sourceVersion?**: `number`
|
|
The version of the source table to clone.
|
|
|
|
* **options.targetNamespacePath?**: `string`[]
|
|
The namespace path for the target table (defaults to root namespace).
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
***
|
|
|
|
### close()
|
|
|
|
```ts
|
|
abstract close(): void
|
|
```
|
|
|
|
Close the connection, releasing any underlying resources.
|
|
|
|
It is safe to call this method multiple times.
|
|
|
|
Any attempt to use the connection after it is closed will result in an error.
|
|
|
|
#### Returns
|
|
|
|
`void`
|
|
|
|
***
|
|
|
|
### createEmptyTable()
|
|
|
|
#### createEmptyTable(name, schema, options)
|
|
|
|
```ts
|
|
abstract createEmptyTable(
|
|
name,
|
|
schema,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Creates a new empty Table
|
|
|
|
##### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table.
|
|
|
|
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
|
|
The schema of the table
|
|
|
|
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
|
|
Additional options (backwards compatibility)
|
|
|
|
##### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
#### createEmptyTable(name, schema, namespacePath, options)
|
|
|
|
```ts
|
|
abstract createEmptyTable(
|
|
name,
|
|
schema,
|
|
namespacePath?,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Creates a new empty Table
|
|
|
|
##### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table.
|
|
|
|
* **schema**: [`SchemaLike`](../type-aliases/SchemaLike.md)
|
|
The schema of the table
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path to create the table in (defaults to root namespace)
|
|
|
|
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
|
|
Additional options
|
|
|
|
##### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
***
|
|
|
|
### createNamespace()
|
|
|
|
```ts
|
|
abstract createNamespace(namespacePath, options?): Promise<CreateNamespaceResponse>
|
|
```
|
|
|
|
Create a new namespace at the given path.
|
|
|
|
#### Parameters
|
|
|
|
* **namespacePath**: `string`[]
|
|
The namespace path to create.
|
|
|
|
* **options?**: `Partial`<[`CreateNamespaceOptions`](../interfaces/CreateNamespaceOptions.md)>
|
|
Creation `mode`
|
|
("create" | "exist_ok" | "overwrite") and optional `properties`
|
|
to attach to the namespace.
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`CreateNamespaceResponse`](../interfaces/CreateNamespaceResponse.md)>
|
|
|
|
The properties of the
|
|
created namespace and an optional transaction id.
|
|
|
|
***
|
|
|
|
### createTable()
|
|
|
|
#### createTable(options, namespacePath)
|
|
|
|
```ts
|
|
abstract createTable(options, namespacePath?): Promise<Table>
|
|
```
|
|
|
|
Creates a new Table and initialize it with new data.
|
|
|
|
##### Parameters
|
|
|
|
* **options**: `object` & `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
|
|
The options object.
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path to create the table in (defaults to root namespace)
|
|
|
|
##### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
#### createTable(name, data, options)
|
|
|
|
```ts
|
|
abstract createTable(
|
|
name,
|
|
data,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Creates a new Table and initialize it with new data.
|
|
|
|
##### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table.
|
|
|
|
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`<`string`, `unknown`>[]
|
|
Non-empty Array of Records
|
|
to be inserted into the table
|
|
|
|
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
|
|
Additional options (backwards compatibility)
|
|
|
|
##### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
#### createTable(name, data, namespacePath, options)
|
|
|
|
```ts
|
|
abstract createTable(
|
|
name,
|
|
data,
|
|
namespacePath?,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Creates a new Table and initialize it with new data.
|
|
|
|
##### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table.
|
|
|
|
* **data**: [`TableLike`](../type-aliases/TableLike.md) \| `Record`<`string`, `unknown`>[]
|
|
Non-empty Array of Records
|
|
to be inserted into the table
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path to create the table in (defaults to root namespace)
|
|
|
|
* **options?**: `Partial`<[`CreateTableOptions`](../interfaces/CreateTableOptions.md)>
|
|
Additional options
|
|
|
|
##### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
***
|
|
|
|
### describeNamespace()
|
|
|
|
```ts
|
|
abstract describeNamespace(namespacePath): Promise<DescribeNamespaceResponse>
|
|
```
|
|
|
|
Describe a namespace, returning its properties.
|
|
|
|
#### Parameters
|
|
|
|
* **namespacePath**: `string`[]
|
|
The namespace path to describe, in
|
|
parent → child order, e.g. `["analytics", "sales"]`.
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`DescribeNamespaceResponse`](../interfaces/DescribeNamespaceResponse.md)>
|
|
|
|
The namespace's properties
|
|
(may be undefined if the namespace has none).
|
|
|
|
***
|
|
|
|
### display()
|
|
|
|
```ts
|
|
abstract display(): string
|
|
```
|
|
|
|
Return a brief description of the connection
|
|
|
|
#### Returns
|
|
|
|
`string`
|
|
|
|
***
|
|
|
|
### dropAllTables()
|
|
|
|
```ts
|
|
abstract dropAllTables(namespacePath?): Promise<void>
|
|
```
|
|
|
|
Drop all tables in the database.
|
|
|
|
#### Parameters
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path to drop tables from (defaults to root namespace).
|
|
|
|
#### Returns
|
|
|
|
`Promise`<`void`>
|
|
|
|
***
|
|
|
|
### dropNamespace()
|
|
|
|
```ts
|
|
abstract dropNamespace(namespacePath, options?): Promise<DropNamespaceResponse>
|
|
```
|
|
|
|
Drop a namespace.
|
|
|
|
Use `behavior: "cascade"` to also drop everything contained in the
|
|
namespace (sub-namespaces and tables). The default `"restrict"`
|
|
behavior refuses to drop a non-empty namespace.
|
|
|
|
#### Parameters
|
|
|
|
* **namespacePath**: `string`[]
|
|
The namespace path to drop.
|
|
|
|
* **options?**: `Partial`<[`DropNamespaceOptions`](../interfaces/DropNamespaceOptions.md)>
|
|
`mode` ("skip" | "fail"
|
|
for missing-namespace handling) and `behavior` ("restrict" | "cascade").
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`DropNamespaceResponse`](../interfaces/DropNamespaceResponse.md)>
|
|
|
|
Any properties returned by
|
|
the server and an optional transaction id.
|
|
|
|
***
|
|
|
|
### dropTable()
|
|
|
|
```ts
|
|
abstract dropTable(name, namespacePath?): Promise<void>
|
|
```
|
|
|
|
Drop an existing table.
|
|
|
|
#### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table to drop.
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path of the table (defaults to root namespace).
|
|
|
|
#### Returns
|
|
|
|
`Promise`<`void`>
|
|
|
|
***
|
|
|
|
### isOpen()
|
|
|
|
```ts
|
|
abstract isOpen(): boolean
|
|
```
|
|
|
|
Return true if the connection has not been closed
|
|
|
|
#### Returns
|
|
|
|
`boolean`
|
|
|
|
***
|
|
|
|
### listNamespaces()
|
|
|
|
```ts
|
|
abstract listNamespaces(namespacePath?, options?): Promise<ListNamespacesResponse>
|
|
```
|
|
|
|
List the immediate child namespaces under the given parent.
|
|
|
|
Results may be paginated. To retrieve subsequent pages, pass the
|
|
`pageToken` returned by a previous call.
|
|
|
|
#### Parameters
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The parent namespace path. Defaults
|
|
to the root namespace if omitted.
|
|
|
|
* **options?**: `Partial`<[`ListNamespacesOptions`](../interfaces/ListNamespacesOptions.md)>
|
|
Pagination options
|
|
(`pageToken`, `limit`).
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`ListNamespacesResponse`](../interfaces/ListNamespacesResponse.md)>
|
|
|
|
Child namespace names and
|
|
an optional token for fetching the next page.
|
|
|
|
***
|
|
|
|
### openTable()
|
|
|
|
```ts
|
|
abstract openTable(
|
|
name,
|
|
namespacePath?,
|
|
options?): Promise<Table>
|
|
```
|
|
|
|
Open a table in the database.
|
|
|
|
#### Parameters
|
|
|
|
* **name**: `string`
|
|
The name of the table
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path of the table (defaults to root namespace)
|
|
|
|
* **options?**: `Partial`<[`OpenTableOptions`](../interfaces/OpenTableOptions.md)>
|
|
Additional options
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`Table`](Table.md)>
|
|
|
|
***
|
|
|
|
### renameTable()
|
|
|
|
```ts
|
|
abstract renameTable(
|
|
oldName,
|
|
newName,
|
|
namespacePath?): Promise<void>
|
|
```
|
|
|
|
#### Parameters
|
|
|
|
* **oldName**: `string`
|
|
|
|
* **newName**: `string`
|
|
|
|
* **namespacePath?**: `string`[]
|
|
|
|
#### Returns
|
|
|
|
`Promise`<`void`>
|
|
|
|
***
|
|
|
|
### tableNames()
|
|
|
|
#### tableNames(options)
|
|
|
|
```ts
|
|
abstract tableNames(options?): Promise<string[]>
|
|
```
|
|
|
|
List all the table names in this database.
|
|
|
|
Tables will be returned in lexicographical order.
|
|
|
|
##### Parameters
|
|
|
|
* **options?**: `Partial`<[`TableNamesOptions`](../interfaces/TableNamesOptions.md)>
|
|
options to control the
|
|
paging / start point (backwards compatibility)
|
|
|
|
##### Returns
|
|
|
|
`Promise`<`string`[]>
|
|
|
|
#### tableNames(namespacePath, options)
|
|
|
|
```ts
|
|
abstract tableNames(namespacePath?, options?): Promise<string[]>
|
|
```
|
|
|
|
List all the table names in this database.
|
|
|
|
Tables will be returned in lexicographical order.
|
|
|
|
##### Parameters
|
|
|
|
* **namespacePath?**: `string`[]
|
|
The namespace path to list tables from (defaults to root namespace)
|
|
|
|
* **options?**: `Partial`<[`TableNamesOptions`](../interfaces/TableNamesOptions.md)>
|
|
options to control the
|
|
paging / start point
|
|
|
|
##### Returns
|
|
|
|
`Promise`<`string`[]>
|