pub struct CopyIntoStatement<X: Extension = NoExt> {
pub target: CopyIntoTarget,
pub source: CopyIntoSource<X>,
pub options: ThinVec<CopyOption>,
pub meta: Meta,
}Expand description
A Snowflake COPY INTO bulk load/unload statement.
Moves rows between a table and a location: COPY INTO <target> FROM <source> [<option> = <value> ...]. Unlike PostgreSQL’s CopyStatement — which is a
{FROM | TO} <endpoint> transfer with comma-separated options — the direction
is fixed (INTO <target> FROM <source>) and the load-vs-unload sense is carried
by which side is the table: a table target with a location
source loads, a location target with a table/query source
unloads. It is a sibling statement rather than a variant of CopyStatement
because the two share only the COPY keyword: the endpoint model, the option
spelling (KEY = VALUE, space-separated, with a nested
OptionList for FILE_FORMAT), and the clause set
(FILES, PATTERN, VALIDATION_MODE) are disjoint. This mirrors sqlparser-rs’s
separate CopyIntoSnowflake node.
Every trailing clause — FILE_FORMAT = (...), FILES = (...), PATTERN = '...',
VALIDATION_MODE = ..., and the copy options (ON_ERROR = ..., FORCE = TRUE, …)
— rides the one generic options list as a CopyOption whose
value shape captures its argument, exactly the ADR-0011 reshape
CopyStatement uses for PostgreSQL/DuckDB options: no per-keyword field.
The @<stage> internal/named-stage source-target sigil is not modelled yet — it
needs a tokenizer stage-reference surface (Snowflake enables no @ lexer path
today) — so CopyIntoTarget/CopyIntoSource carry the table and external
string-location forms (and the query source), with the stage sigil a tracked
follow-up.
Fields§
§target: CopyIntoTargetObject targeted by this syntax.
source: CopyIntoSource<X>Input source for this syntax.
options: ThinVec<CopyOption>The trailing <key> = <value> clauses (FILE_FORMAT, FILES, PATTERN,
VALIDATION_MODE, and the copy options), space-separated in source. Each is a
CopyOption whose value captures the argument shape;
FILE_FORMAT’s nested list rides CopyOptionValue::OptionList, FILES’s
comma list rides CopyOptionValue::List. Empty when none were written.
meta: MetaSource location and node identity.
Trait Implementations§
Source§impl<X: Clone + Extension> Clone for CopyIntoStatement<X>
impl<X: Clone + Extension> Clone for CopyIntoStatement<X>
Source§fn clone(&self) -> CopyIntoStatement<X>
fn clone(&self) -> CopyIntoStatement<X>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de, X> Deserialize<'de> for CopyIntoStatement<X>where
X: Deserialize<'de> + Extension,
impl<'de, X> Deserialize<'de> for CopyIntoStatement<X>where
X: Deserialize<'de> + Extension,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl<X: Eq + Extension> Eq for CopyIntoStatement<X>
Source§impl<X: Extension + Render> Render for CopyIntoStatement<X>
impl<X: Extension + Render> Render for CopyIntoStatement<X>
Source§fn render(&self, ctx: &RenderCtx<'_>, f: &mut Formatter<'_>) -> Result
fn render(&self, ctx: &RenderCtx<'_>, f: &mut Formatter<'_>) -> Result
Source§fn operand_binding_power(&self) -> Option<BindingPower>
fn operand_binding_power(&self) -> Option<BindingPower>
None (the default) for a self-delimiting node — an atom, call, or
constructor — that never needs parentheses. Read moreSource§impl<X> Serialize for CopyIntoStatement<X>
impl<X> Serialize for CopyIntoStatement<X>
Source§impl<X: Extension> Spanned for CopyIntoStatement<X>
impl<X: Extension> Spanned for CopyIntoStatement<X>
impl<X: PartialEq + Extension> StructuralPartialEq for CopyIntoStatement<X>
Auto Trait Implementations§
impl<X> Freeze for CopyIntoStatement<X>
impl<X> RefUnwindSafe for CopyIntoStatement<X>where
X: RefUnwindSafe,
impl<X> Send for CopyIntoStatement<X>where
X: Send,
impl<X> Sync for CopyIntoStatement<X>where
X: Sync,
impl<X> Unpin for CopyIntoStatement<X>
impl<X> UnsafeUnpin for CopyIntoStatement<X>
impl<X> UnwindSafe for CopyIntoStatement<X>where
X: UnwindSafe,
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> DynAstExt for T
impl<T> DynAstExt for T
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&dyn Any for downcasting a node back to its concrete type.Source§fn dyn_clone(&self) -> Box<dyn DynAstExt>
fn dyn_clone(&self) -> Box<dyn DynAstExt>
Clone (whose
Self-returning signature cannot go through a vtable).Source§fn dyn_eq(&self, other: &dyn DynAstExt) -> bool
fn dyn_eq(&self, other: &dyn DynAstExt) -> bool
PartialEq (whose &Self argument cannot go through a vtable). Equal
iff other holds the same concrete type and that type deems the values
equal; differently-typed nodes are never equal.