mirror of
https://github.com/lancedb/lancedb.git
synced 2026-01-16 16:52:57 +00:00
added capability to pass WriteParams to delete
This commit is contained in:
@@ -124,7 +124,7 @@ impl Table {
|
||||
|
||||
#[napi(catch_unwind)]
|
||||
pub async fn delete(&self, predicate: String) -> napi::Result<()> {
|
||||
self.inner_ref()?.delete(&predicate).await.map_err(|e| {
|
||||
self.inner_ref()?.delete(&predicate, None).await.map_err(|e| {
|
||||
napi::Error::from_reason(format!(
|
||||
"Failed to delete rows in table {}: predicate={}",
|
||||
self.name, e
|
||||
|
||||
@@ -119,7 +119,7 @@ impl Table {
|
||||
pub fn delete(self_: PyRef<'_, Self>, condition: String) -> PyResult<&PyAny> {
|
||||
let inner = self_.inner_ref()?.clone();
|
||||
future_into_py(self_.py(), async move {
|
||||
inner.delete(&condition).await.infer_error()
|
||||
inner.delete(&condition, None).await.infer_error()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ impl JsTable {
|
||||
let table = js_table.table.clone();
|
||||
|
||||
rt.spawn(async move {
|
||||
let delete_result = table.delete(&predicate).await;
|
||||
let delete_result = table.delete(&predicate, None).await;
|
||||
|
||||
deferred.settle_with(&channel, move |mut cx| {
|
||||
delete_result.or_throw(&mut cx)?;
|
||||
|
||||
@@ -50,7 +50,7 @@ async fn main() -> Result<()> {
|
||||
create_empty_table(&db).await.unwrap();
|
||||
|
||||
// --8<-- [start:delete]
|
||||
tbl.delete("id > 24").await.unwrap();
|
||||
tbl.delete("id > 24", None).await.unwrap();
|
||||
// --8<-- [end:delete]
|
||||
|
||||
// --8<-- [start:drop_table]
|
||||
|
||||
@@ -399,7 +399,7 @@ pub(crate) trait TableInternal: std::fmt::Display + std::fmt::Debug + Send + Syn
|
||||
add: AddDataBuilder<NoData>,
|
||||
data: Box<dyn arrow_array::RecordBatchReader + Send>,
|
||||
) -> Result<()>;
|
||||
async fn delete(&self, predicate: &str) -> Result<()>;
|
||||
async fn delete(&self, predicate: &str, write_options: Option<WriteOptions>) -> Result<()>;
|
||||
async fn update(&self, update: UpdateBuilder) -> Result<()>;
|
||||
async fn create_index(&self, index: IndexBuilder) -> Result<()>;
|
||||
async fn list_indices(&self) -> Result<Vec<IndexConfig>>;
|
||||
@@ -566,8 +566,8 @@ impl Table {
|
||||
/// tbl.delete("id > 5").await.unwrap();
|
||||
/// # });
|
||||
/// ```
|
||||
pub async fn delete(&self, predicate: &str) -> Result<()> {
|
||||
self.inner.delete(predicate).await
|
||||
pub async fn delete(&self, predicate: &str, write_options: Option<WriteOptions>) -> Result<()> {
|
||||
self.inner.delete(predicate, write_options).await
|
||||
}
|
||||
|
||||
/// Create an index on the provided column(s).
|
||||
@@ -1861,8 +1861,9 @@ impl TableInternal for NativeTable {
|
||||
}
|
||||
|
||||
/// Delete rows from the table
|
||||
async fn delete(&self, predicate: &str) -> Result<()> {
|
||||
self.dataset.get_mut().await?.delete(predicate).await?;
|
||||
async fn delete(&self, predicate: &str, write_options: Option<WriteOptions>) -> Result<()> {
|
||||
let write_params = write_options.and_then(|e| e.lance_write_params);
|
||||
self.dataset.get_mut().await?.delete(predicate, write_params).await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user