Files
lancedb/docs/src/js/classes/Connection.md
Jack Ye e26b22bcca refactor!: consolidate namespace related naming and enterprise integration (#3205)
1. Refactored every client (Rust core, Python, Node/TypeScript) so
“namespace” usage is explicit: code now keeps namespace paths
(namespace_path) separate from namespace clients (namespace_client).
Connections propagate the client, table creation routes through it, and
managed versioning defaults are resolved from namespace metadata. Python
gained LanceNamespaceDBConnection/async counterparts, and the
namespace-focused tests were rewritten to match the clarified API
surface.
2. Synchronized the workspace with Lance 5.0.0-beta.3 (see
https://github.com/lance-format/lance/pull/6186 for the upstream
namespace refactor), updating Cargo/uv lockfiles and ensuring all
bindings align with the new namespace semantics.
3. Added a namespace-backed code path to lancedb.connect() via new
keyword arguments (namespace_client_impl, namespace_client_properties,
plus the existing pushdown-ops flag). When those kwargs are supplied,
connect() delegates to connect_namespace, so users can opt into
namespace clients without changing APIs. (The async helper will gain
parity in a later change)
2026-04-03 00:09:03 -07:00

7.3 KiB

@lancedb/lancedbDocs


@lancedb/lancedb / 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()

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>


close()

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)

abstract createEmptyTable(
   name,
   schema,
   options?): Promise<Table>

Creates a new empty Table

Parameters
  • name: string The name of the table.

  • schema: SchemaLike The schema of the table

  • options?: Partial<CreateTableOptions> Additional options (backwards compatibility)

Returns

Promise<Table>

createEmptyTable(name, schema, namespacePath, options)

abstract createEmptyTable(
   name,
   schema,
   namespacePath?,
   options?): Promise<Table>

Creates a new empty Table

Parameters
  • name: string The name of the table.

  • schema: SchemaLike The schema of the table

  • namespacePath?: string[] The namespace path to create the table in (defaults to root namespace)

  • options?: Partial<CreateTableOptions> Additional options

Returns

Promise<Table>


createTable()

createTable(options, namespacePath)

abstract createTable(options, namespacePath?): Promise<Table>

Creates a new Table and initialize it with new data.

Parameters
  • options: object & Partial<CreateTableOptions> The options object.

  • namespacePath?: string[] The namespace path to create the table in (defaults to root namespace)

Returns

Promise<Table>

createTable(name, data, options)

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 | Record<string, unknown>[] Non-empty Array of Records to be inserted into the table

  • options?: Partial<CreateTableOptions> Additional options (backwards compatibility)

Returns

Promise<Table>

createTable(name, data, namespacePath, options)

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 | 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> Additional options

Returns

Promise<Table>


display()

abstract display(): string

Return a brief description of the connection

Returns

string


dropAllTables()

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>


dropTable()

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()

abstract isOpen(): boolean

Return true if the connection has not been closed

Returns

boolean


openTable()

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> Additional options

Returns

Promise<Table>


tableNames()

tableNames(options)

abstract tableNames(options?): Promise<string[]>

List all the table names in this database.

Tables will be returned in lexicographical order.

Parameters
  • options?: Partial<TableNamesOptions> options to control the paging / start point (backwards compatibility)
Returns

Promise<string[]>

tableNames(namespacePath, options)

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> options to control the paging / start point

Returns

Promise<string[]>