pub struct ExecuteUsingStatement {
pub name: Ident,
pub using: ThinVec<Ident>,
pub meta: Meta,
}Expand description
A MySQL EXECUTE <name> [USING @<var> [, ...]] prepared-statement invocation (gated by
UtilitySyntax::prepared_statements_from).
A different argument surface on the same EXECUTE keyword from DuckDB’s parenthesized
positional-expression ExecuteStatement: MySQL supplies parameters through a USING
clause whose members are strictly user-variable references (sql_yacc.yy
execute_var_list → execute_var_ident: '@' ident_or_text), never arbitrary
expressions — EXECUTE s USING 1 and EXECUTE s USING @@sys are both ER_PARSE_ERROR
on mysql:8, and there is no EXECUTE s(...) parenthesized form. So this node holds a
list of variable-name Idents, not Exprs, and is non-generic. A bare EXECUTE s
(no USING) leaves using empty; MySQL has no empty-USING spelling, so
an empty list unambiguously means the clause was absent.
Like PrepareFromStatement, the statement grammar-parses but cannot be prepared over
the binary protocol (ER_UNSUPPORTED_PS 1295) — a bind verdict the parse layer leaves
untouched.
Fields§
§name: IdentName referenced by this syntax.
using: ThinVec<Ident>The USING user-variable references, in source order; each is a variable name held
without its @ sigil (quote style preserved for round-trip). Empty for the bare
EXECUTE name form (no USING clause).
meta: MetaSource location and node identity.
Trait Implementations§
Source§impl Clone for ExecuteUsingStatement
impl Clone for ExecuteUsingStatement
Source§fn clone(&self) -> ExecuteUsingStatement
fn clone(&self) -> ExecuteUsingStatement
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecuteUsingStatement
impl Debug for ExecuteUsingStatement
Source§impl<'de> Deserialize<'de> for ExecuteUsingStatement
impl<'de> Deserialize<'de> for ExecuteUsingStatement
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 Eq for ExecuteUsingStatement
Source§impl Hash for ExecuteUsingStatement
impl Hash for ExecuteUsingStatement
Source§impl PartialEq for ExecuteUsingStatement
impl PartialEq for ExecuteUsingStatement
Source§impl Render for ExecuteUsingStatement
impl Render for ExecuteUsingStatement
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 Serialize for ExecuteUsingStatement
impl Serialize for ExecuteUsingStatement
Source§impl Spanned for ExecuteUsingStatement
impl Spanned for ExecuteUsingStatement
impl StructuralPartialEq for ExecuteUsingStatement
Auto Trait Implementations§
impl Freeze for ExecuteUsingStatement
impl RefUnwindSafe for ExecuteUsingStatement
impl Send for ExecuteUsingStatement
impl Sync for ExecuteUsingStatement
impl Unpin for ExecuteUsingStatement
impl UnsafeUnpin for ExecuteUsingStatement
impl UnwindSafe for ExecuteUsingStatement
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.