pub enum Set {
SingleAssignment {
scope: Option<ContextModifier>,
hivevar: bool,
variable: ObjectName,
values: Vec<Expr>,
},
ParenthesizedAssignments {
variables: Vec<ObjectName>,
values: Vec<Expr>,
},
MultipleAssignments {
assignments: Vec<SetAssignment>,
},
SetSessionAuthorization(SetSessionAuthorizationParam),
SetSessionParam(SetSessionParamKind),
SetRole {
context_modifier: Option<ContextModifier>,
role_name: Option<Ident>,
},
SetTimeZone {
local: bool,
value: Expr,
},
SetNames {
charset_name: Ident,
collation_name: Option<String>,
},
SetNamesDefault {},
SetTransaction {
modes: Vec<TransactionMode>,
snapshot: Option<ValueWithSpan>,
session: bool,
},
}Expand description
Variants for the SET family of statements.
Variants§
SingleAssignment
SQL Standard-style
SET a = 1;
SET var = value (standard SQL-style assignment).
Fields
scope: Option<ContextModifier>Optional scope modifier (SESSION / LOCAL).
variable: ObjectNameVariable name to assign.
ParenthesizedAssignments
Snowflake-style
SET (a, b, ..) = (1, 2, ..);
SET (a, b) = (1, 2) (tuple assignment syntax).
Fields
variables: Vec<ObjectName>Variables being assigned in tuple form.
MultipleAssignments
MySQL-style
SET a = 1, b = 2, ..;
SET a = 1, b = 2 (MySQL-style comma-separated assignments).
Fields
assignments: Vec<SetAssignment>List of SET assignments (MySQL-style comma-separated).
SetSessionAuthorization(SetSessionAuthorizationParam)
Session authorization for Postgres/Redshift
SET SESSION AUTHORIZATION { user_name | DEFAULT }See https://www.postgresql.org/docs/current/sql-set-session-authorization.html See https://docs.aws.amazon.com/redshift/latest/dg/r_SET_SESSION_AUTHORIZATION.html
SetSessionParam(SetSessionParamKind)
MS-SQL session
See https://learn.microsoft.com/en-us/sql/t-sql/statements/set-statements-transact-sql
SetRole
SET [ SESSION | LOCAL ] ROLE role_nameSets session state. Examples: ANSI, Postgresql, MySQL, and Oracle
Fields
context_modifier: Option<ContextModifier>Non-ANSI optional identifier to inform if the role is defined inside the current session (SESSION) or transaction (LOCAL).
SetTimeZone
SET TIME ZONE <value>Note: this is a PostgreSQL-specific statements
SET TIME ZONE <value> is an alias for SET timezone TO <value> in PostgreSQL
However, we allow it for all dialects.
SET TIME ZONE statement. local indicates the LOCAL keyword.
SET TIME ZONE <value> statement.
SetNames
SET NAMES 'charset_name' [COLLATE 'collation_name']Fields
SetNamesDefault
SET NAMES DEFAULTNote: this is a MySQL-specific statement.
SetTransaction
SET TRANSACTION ...Fields
modes: Vec<TransactionMode>Transaction modes (e.g., ISOLATION LEVEL, READ ONLY).
snapshot: Option<ValueWithSpan>Optional snapshot value for transaction snapshot control.
Trait Implementations§
impl Eq for Set
Source§impl Ord for Set
impl Ord for Set
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Set
impl PartialOrd for Set
impl StructuralPartialEq for Set
Source§impl VisitMut for Set
impl VisitMut for Set
Source§fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
VisitorMut. Read moreAuto Trait Implementations§
impl Freeze for Set
impl RefUnwindSafe for Set
impl Send for Set
impl Sync for Set
impl Unpin for Set
impl UnsafeUnpin for Set
impl UnwindSafe for Set
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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