pub struct IntoClauseRemover;
Expand description
INTO Clause Remover - Removes INTO clause from AST for execution
This module implements AST rewriting to remove the INTO clause from SELECT statements. The INTO clause is used to store query results in temporary tables, but the query executor doesn’t understand this syntax.
The removal is done at the AST level (not via regex) to ensure correctness and maintainability. The caller is responsible for capturing the INTO table information before removal and storing the results after execution.
Example transformation:
-- Input:
SELECT col1, col2 INTO #temp FROM table WHERE x > 5
-- Output (for execution):
SELECT col1, col2 FROM table WHERE x > 5
Implementations§
Source§impl IntoClauseRemover
impl IntoClauseRemover
Sourcepub fn remove_into_clause(statement: SelectStatement) -> SelectStatement
pub fn remove_into_clause(statement: SelectStatement) -> SelectStatement
Auto Trait Implementations§
impl Freeze for IntoClauseRemover
impl RefUnwindSafe for IntoClauseRemover
impl Send for IntoClauseRemover
impl Sync for IntoClauseRemover
impl Unpin for IntoClauseRemover
impl UnwindSafe for IntoClauseRemover
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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