MCPcopy Create free account
hub / github.com/apache/paimon-rust / handle_delete

Method handle_delete

crates/integrations/datafusion/src/sql_context.rs:940–965  ·  view source on GitHub ↗
(&self, delete: &Delete)

Source from the content-addressed store, hash-verified

938 }
939
940 async fn handle_delete(&self, delete: &Delete) -> DFResult<DataFrame> {
941 let tables = match &delete.from {
942 FromTable::WithFromKeyword(t) | FromTable::WithoutKeyword(t) => t,
943 };
944 let table_factor = tables
945 .first()
946 .map(|t| &t.relation)
947 .ok_or_else(|| DataFusionError::Plan("DELETE requires a target table".to_string()))?;
948 let table_name = match table_factor {
949 TableFactor::Table { name, .. } => name.clone(),
950 other => {
951 return Err(DataFusionError::Plan(format!(
952 "Unsupported target table in DELETE: {other}"
953 )))
954 }
955 };
956 let (catalog, _catalog_name, identifier) = self.resolve_catalog_and_table(&table_name)?;
957
958 let table = catalog
959 .get_table(&identifier)
960 .await
961 .map_err(to_datafusion_error)?;
962
963 let table_ref = table_name.to_string();
964 crate::delete::execute_delete(self, delete, table, &table_ref).await
965 }
966
967 async fn handle_insert_overwrite_partition(&self, insert: &Insert) -> DFResult<DataFrame> {
968 let table_name = match &insert.table {

Callers 1

sqlMethod · 0.80

Calls 4

execute_deleteFunction · 0.85
PlanClass · 0.50
get_tableMethod · 0.45

Tested by

no test coverage detected