upsert method
Upsert one point. payload may be omitted (null) or any
JSON-encodable Map.
Implementation
Future<void> upsert({
required String id,
required List<double> vector,
Map<String, dynamic>? payload,
}) async {
_checkOpen();
final idPtr = id.toNativeUtf8();
final vecPtr = _allocFloatVec(vector);
final payloadPtr =
payload == null ? nullptr : jsonEncode(payload).toNativeUtf8();
final errorOut = calloc<Pointer<Utf8>>();
try {
final rc = _b.qe_shard_upsert(
_shard,
idPtr.cast(),
vecPtr,
vector.length,
(payloadPtr == nullptr ? nullptr : payloadPtr.cast()),
errorOut.cast(),
);
if (rc != 0) {
throw QdrantException(
_consumeString(_b, errorOut) ?? 'qe_shard_upsert rc=$rc');
}
} finally {
malloc.free(idPtr);
malloc.free(vecPtr);
if (payloadPtr != nullptr) malloc.free(payloadPtr);
calloc.free(errorOut);
}
}