pub enum PLpgSQLStmt {
Show 28 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>,
},
ForDynamic {
label: Option<String>,
target: IntoTarget,
query: Expr,
params: Vec<Expr>,
body: Vec<PLpgSQLStmt>,
},
ForCursor {
label: Option<String>,
target: usize,
cursor: usize,
arguments: Vec<PLpgSQLCursorArgument>,
body: Vec<PLpgSQLStmt>,
},
ForeachArray {
label: Option<String>,
target: usize,
slice: usize,
expr: Expr,
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>,
},
Assert {
condition: Expr,
message: Option<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,
open: PLpgSQLCursorOpen,
},
FetchCursor {
cursor: usize,
target: IntoTarget,
direction: CursorDirection,
count: PLpgSQLCursorCount,
},
MoveCursor {
cursor: usize,
direction: CursorDirection,
count: PLpgSQLCursorCount,
},
CloseCursor {
cursor: usize,
},
Commit {
chain: bool,
},
Rollback {
chain: bool,
},
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.
ForDynamic
FOR target IN EXECUTE query [USING params] LOOP.
ForCursor
FOR recordvar IN bound_cursor [(arguments)] LOOP.
ForeachArray
FOREACH target [SLICE n] IN ARRAY expression 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
Assert
ASSERT condition [, message].
ExecSQL
Embedded SQL statement, optionally INTO [STRICT] target.
DynExecute
EXECUTE <string> [INTO [STRICT] target] [USING params].
Perform
OpenCursor
FetchCursor
MoveCursor
CloseCursor
Commit
Procedural COMMIT [AND [NO] CHAIN].
Rollback
Procedural ROLLBACK [AND [NO] CHAIN].
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
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
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
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> ⓘ
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> ⓘ
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