pub enum PLpgSQLStmt {
Show 21 variants
Block(PLpgSQLBlock),
Assign {
target: usize,
expr: Expr,
},
If {
cond: Expr,
then_body: Vec<PLpgSQLStmt>,
elsifs: Vec<(Expr, Vec<PLpgSQLStmt>)>,
else_body: Option<Vec<PLpgSQLStmt>>,
},
Case {
t_expr: Option<Expr>,
t_varno: Option<usize>,
arms: Vec<(Expr, Vec<PLpgSQLStmt>)>,
else_body: Option<Vec<PLpgSQLStmt>>,
},
Loop {
label: Option<String>,
body: Vec<PLpgSQLStmt>,
},
While {
label: Option<String>,
cond: Expr,
body: Vec<PLpgSQLStmt>,
},
ForI {
label: Option<String>,
var: usize,
lower: Expr,
upper: Expr,
step: Option<Expr>,
reverse: bool,
body: Vec<PLpgSQLStmt>,
},
ForQuery {
label: Option<String>,
target: IntoTarget,
query: Statement,
body: Vec<PLpgSQLStmt>,
},
Exit {
is_exit: bool,
label: Option<String>,
cond: Option<Expr>,
},
Return {
value: Option<PLpgSQLReturnValue>,
},
ReturnNext {
value: Option<PLpgSQLReturnValue>,
},
ReturnQuery {
query: Statement,
},
ReturnQueryExecute {
query: Expr,
params: Vec<Expr>,
},
Raise {
level: RaiseLevel,
condition: Option<String>,
message: Option<String>,
params: Vec<Expr>,
},
ExecSQL {
stmt: Statement,
into: Option<IntoTarget>,
strict: bool,
},
DynExecute {
query: Expr,
params: Vec<Expr>,
into: Option<IntoTarget>,
strict: bool,
},
Perform {
query: Statement,
},
OpenCursor {
cursor: usize,
arguments: Vec<PLpgSQLCursorArgument>,
},
FetchCursor {
cursor: usize,
target: IntoTarget,
direction: i64,
count: i64,
},
CloseCursor {
cursor: usize,
},
GetDiagnostics {
items: Vec<(String, usize)>,
},
}Expand description
Executable PL/pgSQL statement.
Variants§
Block(PLpgSQLBlock)
Assign
target := expr (also =). target indexes the datum table.
If
Fields
§
then_body: Vec<PLpgSQLStmt>§
elsifs: Vec<(Expr, Vec<PLpgSQLStmt>)>§
else_body: Option<Vec<PLpgSQLStmt>>Case
CASE statement. Simple form carries t_expr + the temporary
datum the compiler references from each rewritten WHEN.
Loop
While
ForI
FOR i IN [REVERSE] lower..upper [BY step] LOOP.
Fields
§
body: Vec<PLpgSQLStmt>ForQuery
FOR target IN <query> LOOP.
Exit
EXIT (is_exit) or CONTINUE, optionally labelled and
conditional (WHEN cond).
Return
Fields
§
value: Option<PLpgSQLReturnValue>ReturnNext
RETURN NEXT [expr] - bare form emits the current OUT /
TABLE column values.
Fields
§
value: Option<PLpgSQLReturnValue>ReturnQuery
ReturnQueryExecute
Raise
ExecSQL
Embedded SQL statement, optionally INTO [STRICT] target.
DynExecute
EXECUTE <string> [INTO [STRICT] target] [USING params].
Perform
OpenCursor
FetchCursor
CloseCursor
GetDiagnostics
GET DIAGNOSTICS var = KIND [, ...] as (kind, target datum).
Trait Implementations§
Source§impl Clone for PLpgSQLStmt
impl Clone for PLpgSQLStmt
Source§fn clone(&self) -> PLpgSQLStmt
fn clone(&self) -> PLpgSQLStmt
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PLpgSQLStmt
impl RefUnwindSafe for PLpgSQLStmt
impl Send for PLpgSQLStmt
impl Sync for PLpgSQLStmt
impl Unpin for PLpgSQLStmt
impl UnsafeUnpin for PLpgSQLStmt
impl UnwindSafe for PLpgSQLStmt
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
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