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<Value>,
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 ...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§
impl<T> Allocation for T
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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<T> DynPartialEq for T
impl<T> DynPartialEq for T
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<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<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