mirror of
https://github.com/lancedb/lancedb.git
synced 2026-01-09 13:22:58 +00:00
Provides the ability to set a timeout for merge insert. The default underlying timeout is however long the first attempt takes, or if there are multiple attempts, 30 seconds. This has two use cases: 1. Make the timeout shorter, when you want to fail if it takes too long. 2. Allow taking more time to do retries. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added support for specifying a timeout when performing merge insert operations in Python, Node.js, and Rust APIs. - Introduced a new option to control the maximum allowed execution time for merge inserts, including retry timeout handling. - **Documentation** - Updated and added documentation to describe the new timeout option and its usage in APIs. - **Tests** - Added and updated tests to verify correct timeout behavior during merge insert operations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
129 lines
2.7 KiB
Markdown
129 lines
2.7 KiB
Markdown
[**@lancedb/lancedb**](../README.md) • **Docs**
|
|
|
|
***
|
|
|
|
[@lancedb/lancedb](../globals.md) / MergeInsertBuilder
|
|
|
|
# Class: MergeInsertBuilder
|
|
|
|
A builder used to create and run a merge insert operation
|
|
|
|
## Constructors
|
|
|
|
### new MergeInsertBuilder()
|
|
|
|
```ts
|
|
new MergeInsertBuilder(native, schema): MergeInsertBuilder
|
|
```
|
|
|
|
Construct a MergeInsertBuilder. __Internal use only.__
|
|
|
|
#### Parameters
|
|
|
|
* **native**: `NativeMergeInsertBuilder`
|
|
|
|
* **schema**: `Schema`<`any`> \| `Promise`<`Schema`<`any`>>
|
|
|
|
#### Returns
|
|
|
|
[`MergeInsertBuilder`](MergeInsertBuilder.md)
|
|
|
|
## Methods
|
|
|
|
### execute()
|
|
|
|
```ts
|
|
execute(data, execOptions?): Promise<MergeResult>
|
|
```
|
|
|
|
Executes the merge insert operation
|
|
|
|
#### Parameters
|
|
|
|
* **data**: [`Data`](../type-aliases/Data.md)
|
|
|
|
* **execOptions?**: `Partial`<[`WriteExecutionOptions`](../interfaces/WriteExecutionOptions.md)>
|
|
|
|
#### Returns
|
|
|
|
`Promise`<[`MergeResult`](../interfaces/MergeResult.md)>
|
|
|
|
the merge result
|
|
|
|
***
|
|
|
|
### whenMatchedUpdateAll()
|
|
|
|
```ts
|
|
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`](MergeInsertBuilder.md)
|
|
|
|
***
|
|
|
|
### whenNotMatchedBySourceDelete()
|
|
|
|
```ts
|
|
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`](MergeInsertBuilder.md)
|
|
|
|
***
|
|
|
|
### whenNotMatchedInsertAll()
|
|
|
|
```ts
|
|
whenNotMatchedInsertAll(): MergeInsertBuilder
|
|
```
|
|
|
|
Rows that exist only in the source table (new data) should
|
|
be inserted into the target table.
|
|
|
|
#### Returns
|
|
|
|
[`MergeInsertBuilder`](MergeInsertBuilder.md)
|