pub struct UpdateParams {
pub set_values: HashMap<String, Value>,
pub filters: Vec<LogicCondition>,
pub order: Vec<OrderTerm>,
pub limit: Option<u64>,
pub returning: Option<Vec<SelectItem>>,
}Expand description
Parameters for an UPDATE operation.
§Safety
Updates without filters are rejected to prevent accidental mass updates. Use LIMIT with ORDER BY for predictable results.
§Examples
use postgrest_parser::{UpdateParams, parse_filter, LogicCondition};
use std::collections::HashMap;
use serde_json::json;
// Update with filter
let mut set_values = HashMap::new();
set_values.insert("status".to_string(), json!("active"));
let filter = parse_filter("id", "eq.123").unwrap();
let params = UpdateParams::new(set_values)
.with_filters(vec![LogicCondition::Filter(filter)]);
assert!(params.has_filters());
assert_eq!(params.set_values.len(), 1);Fields§
§set_values: HashMap<String, Value>Column-value pairs for the SET clause
filters: Vec<LogicCondition>WHERE clause filters (required for safety)
order: Vec<OrderTerm>Optional ORDER BY clause (required if using LIMIT)
limit: Option<u64>Optional LIMIT clause
returning: Option<Vec<SelectItem>>Optional RETURNING clause columns
Implementations§
Source§impl UpdateParams
impl UpdateParams
Sourcepub fn new(set_values: HashMap<String, Value>) -> Self
pub fn new(set_values: HashMap<String, Value>) -> Self
Creates new update parameters with the given SET values.
Sourcepub fn with_filters(self, filters: Vec<LogicCondition>) -> Self
pub fn with_filters(self, filters: Vec<LogicCondition>) -> Self
Adds WHERE clause filters.
Sourcepub fn with_order(self, order: Vec<OrderTerm>) -> Self
pub fn with_order(self, order: Vec<OrderTerm>) -> Self
Adds ORDER BY clause.
Sourcepub fn with_limit(self, limit: u64) -> Self
pub fn with_limit(self, limit: u64) -> Self
Adds LIMIT clause (requires ORDER BY for safety).
Sourcepub fn with_returning(self, returning: Vec<SelectItem>) -> Self
pub fn with_returning(self, returning: Vec<SelectItem>) -> Self
Specifies columns to return after update (RETURNING clause).
Sourcepub fn has_filters(&self) -> bool
pub fn has_filters(&self) -> bool
Returns true if filters are present.
Sourcepub fn is_set_empty(&self) -> bool
pub fn is_set_empty(&self) -> bool
Returns true if no columns are being updated.
Trait Implementations§
Source§impl Clone for UpdateParams
impl Clone for UpdateParams
Source§fn clone(&self) -> UpdateParams
fn clone(&self) -> UpdateParams
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UpdateParams
impl Debug for UpdateParams
Source§impl<'de> Deserialize<'de> for UpdateParams
impl<'de> Deserialize<'de> for UpdateParams
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for UpdateParams
impl PartialEq for UpdateParams
Source§impl Serialize for UpdateParams
impl Serialize for UpdateParams
impl StructuralPartialEq for UpdateParams
Auto Trait Implementations§
impl Freeze for UpdateParams
impl RefUnwindSafe for UpdateParams
impl Send for UpdateParams
impl Sync for UpdateParams
impl Unpin for UpdateParams
impl UnwindSafe for UpdateParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more