Skip to main content
POST
/
v1
/
table
/
{id}
/
merge_insert
Merge insert (upsert) records into a table
curl --request POST \
  --url {scheme}://{host}:{port}/{basePath}/v1/table/{id}/merge_insert \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/vnd.apache.arrow.stream' \
  --data '"<string>"'
{
  "transaction_id": "<string>",
  "num_updated_rows": 1,
  "num_inserted_rows": 1,
  "num_deleted_rows": 1,
  "version": 1
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

id
string
required

string identifier of an object in a namespace, following the Lance Namespace spec. When the value is equal to the delimiter, it represents the root namespace. For example, v1/namespace/$/list performs a ListNamespace on the root namespace.

Query Parameters

delimiter
string

An optional delimiter of the string identifier, following the Lance Namespace spec. When not specified, the $ delimiter must be used.

on
string
required

Column name to use for matching rows (required)

when_matched_update_all
boolean
default:false

Update all columns when rows match

when_matched_update_all_filt
string

The row is updated (similar to UpdateAll) only for rows where the SQL expression evaluates to true

when_not_matched_insert_all
boolean
default:false

Insert all columns when rows don't match

when_not_matched_by_source_delete
boolean
default:false

Delete all rows from target table that don't match a row in the source table

when_not_matched_by_source_delete_filt
string

Delete rows from the target table if there is no match AND the SQL expression evaluates to true

timeout
string

Timeout for the operation (e.g., "30s", "5m")

use_index
boolean
default:false

Whether to use index for matching rows

Body

application/vnd.apache.arrow.stream

Arrow IPC stream containing the records to merge

The body is of type file.

Response

Result of merge insert operation

Response from merge insert operation

transaction_id
string

Optional transaction identifier

num_updated_rows
integer<int64>

Number of rows updated

Required range: x >= 0
num_inserted_rows
integer<int64>

Number of rows inserted

Required range: x >= 0
num_deleted_rows
integer<int64>

Number of rows deleted (typically 0 for merge insert)

Required range: x >= 0
version
integer<int64>

The commit version associated with the operation

Required range: x >= 0