pub struct Execute { /* private fields */ }Expand description
Execute a single mutating SQL statement (INSERT, UPDATE, DELETE).
Returns the number of rows affected.
§Examples
use ironflow_ops_postgres::execute::Execute;
use ironflow_core::operation::Operation;
let op = Execute::new(pool, "INSERT INTO users (name) VALUES ($1)", vec![serde_json::json!("Alice")]);
assert_eq!(op.kind(), "postgres");Implementations§
Source§impl Execute
impl Execute
Sourcepub fn new(pool: PgPool, sql: impl Into<String>, params: Vec<Value>) -> Self
pub fn new(pool: PgPool, sql: impl Into<String>, params: Vec<Value>) -> Self
Create a new execute operation.
Sourcepub async fn run(
&self,
_ctx: &OperationContext,
) -> Result<ExecuteOutput, OperationError>
pub async fn run( &self, _ctx: &OperationContext, ) -> Result<ExecuteOutput, OperationError>
Execute and return a typed result.
§Errors
Returns OperationError::External on SQL or connection errors.
Trait Implementations§
Source§impl Operation for Execute
impl Operation for Execute
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 OperationContext,
) -> Pin<Box<dyn Future<Output = Result<Value, OperationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 OperationContext,
) -> Pin<Box<dyn Future<Output = Result<Value, OperationError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the operation and return the result as JSON. Read more
Source§impl TypedOperation for Execute
impl TypedOperation for Execute
Source§type Output = ExecuteOutput
type Output = ExecuteOutput
The concrete output type that
Operation::execute produces.Auto Trait Implementations§
impl !RefUnwindSafe for Execute
impl !UnwindSafe for Execute
impl Freeze for Execute
impl Send for Execute
impl Sync for Execute
impl Unpin for Execute
impl UnsafeUnpin for Execute
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more