Files
lancedb/docs/src/js/classes/MergeInsertBuilder.md
LuQQiu ed594b0f76 feat: return version for all write operations (#2368)
return version info for all write operations (add, update, merge_insert
and column modification operations)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Table modification operations (add, update, delete, merge,
add/alter/drop columns) now return detailed result objects including
version numbers and operation statistics.
- Result objects provide clearer feedback such as rows affected and new
table version after each operation.

- **Documentation**
- Updated documentation to describe new result objects and their fields
for all relevant table operations.
- Added documentation for new result interfaces and updated method
return types in Node.js and Python APIs.

- **Tests**
- Enhanced test coverage to assert correctness of returned versioning
and operation metadata after table modifications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-05 14:25:34 -07:00

2.5 KiB

@lancedb/lancedbDocs


@lancedb/lancedb / MergeInsertBuilder

Class: MergeInsertBuilder

A builder used to create and run a merge insert operation

Constructors

new MergeInsertBuilder()

new MergeInsertBuilder(native, schema): MergeInsertBuilder

Construct a MergeInsertBuilder. Internal use only.

Parameters

  • native: NativeMergeInsertBuilder

  • schema: Schema<any> | Promise<Schema<any>>

Returns

MergeInsertBuilder

Methods

execute()

execute(data): Promise<MergeResult>

Executes the merge insert operation

Parameters

Returns

Promise<MergeResult>

the merge result


whenMatchedUpdateAll()

whenMatchedUpdateAll(options?): MergeInsertBuilder

Rows that exist in both the source table (new data) and the target table (old data) will be updated, replacing the old row with the corresponding matching row.

If there are multiple matches then the behavior is undefined. Currently this causes multiple copies of the row to be created but that behavior is subject to change.

An optional condition may be specified. If it is, then only matched rows that satisfy the condtion will be updated. Any rows that do not satisfy the condition will be left as they are. Failing to satisfy the condition does not cause a "matched row" to become a "not matched" row.

The condition should be an SQL string. Use the prefix target. to refer to rows in the target table (old data) and the prefix source. to refer to rows in the source table (new data).

For example, "target.last_update < source.last_update"

Parameters

  • options?

  • options.where?: string

Returns

MergeInsertBuilder


whenNotMatchedBySourceDelete()

whenNotMatchedBySourceDelete(options?): MergeInsertBuilder

Rows that exist only in the target table (old data) will be deleted. An optional condition can be provided to limit what data is deleted.

Parameters

  • options?

  • options.where?: string An optional condition to limit what data is deleted

Returns

MergeInsertBuilder


whenNotMatchedInsertAll()

whenNotMatchedInsertAll(): MergeInsertBuilder

Rows that exist only in the source table (new data) should be inserted into the target table.

Returns

MergeInsertBuilder