Struct deltalake::datafusion::sql::sqlparser::dialect::AnsiDialect
source · pub struct AnsiDialect {}
Trait Implementations§
source§impl Debug for AnsiDialect
impl Debug for AnsiDialect
source§impl Dialect for AnsiDialect
impl Dialect for AnsiDialect
source§fn is_identifier_start(&self, ch: char) -> bool
fn is_identifier_start(&self, ch: char) -> bool
Determine if a character is a valid start character for an unquoted identifier
source§fn is_identifier_part(&self, ch: char) -> bool
fn is_identifier_part(&self, ch: char) -> bool
Determine if a character is a valid unquoted identifier character
source§fn is_delimited_identifier_start(&self, ch: char) -> bool
fn is_delimited_identifier_start(&self, ch: char) -> bool
Determine if a character starts a quoted identifier. The default
implementation, accepting “double quoted” ids is both ANSI-compliant
and appropriate for most dialects (with the notable exception of
MySQL, MS SQL, and sqlite). You can accept one of characters listed
in
Word::matching_end_quote
heresource§fn is_proper_identifier_inside_quotes(
&self,
_chars: Peekable<Chars<'_>>
) -> bool
fn is_proper_identifier_inside_quotes( &self, _chars: Peekable<Chars<'_>> ) -> bool
Determine if quoted characters are proper for identifier
source§fn supports_filter_during_aggregation(&self) -> bool
fn supports_filter_during_aggregation(&self) -> bool
Does the dialect support
FILTER (WHERE expr)
for aggregate queries?source§fn supports_within_after_array_aggregation(&self) -> bool
fn supports_within_after_array_aggregation(&self) -> bool
Returns true if the dialect supports
ARRAY_AGG() [WITHIN GROUP (ORDER BY)]
expressions.
Otherwise, the dialect should expect an ORDER BY
without the WITHIN GROUP
clause, e.g. ANSI
source§fn supports_group_by_expr(&self) -> bool
fn supports_group_by_expr(&self) -> bool
Returns true if the dialects supports
group sets, roll up, or cube
expressions.source§fn supports_substring_from_for_expr(&self) -> bool
fn supports_substring_from_for_expr(&self) -> bool
Returns true if the dialect supports
SUBSTRING(expr [FROM start] [FOR len])
expressionssource§fn supports_in_empty_list(&self) -> bool
fn supports_in_empty_list(&self) -> bool
Returns true if the dialect supports
(NOT) IN ()
expressionssource§fn supports_start_transaction_modifier(&self) -> bool
fn supports_start_transaction_modifier(&self) -> bool
Returns true if the dialect supports
BEGIN {DEFERRED | IMMEDIATE | EXCLUSIVE} [TRANSACTION]
statementssource§fn convert_type_before_value(&self) -> bool
fn convert_type_before_value(&self) -> bool
Returns true if the dialect has a CONVERT function which accepts a type first
and an expression second, e.g.
CONVERT(varchar, 1)
source§fn parse_prefix(
&self,
_parser: &mut Parser<'_>
) -> Option<Result<Expr, ParserError>>
fn parse_prefix( &self, _parser: &mut Parser<'_> ) -> Option<Result<Expr, ParserError>>
Dialect-specific prefix parser override
source§fn parse_infix(
&self,
_parser: &mut Parser<'_>,
_expr: &Expr,
_precedence: u8
) -> Option<Result<Expr, ParserError>>
fn parse_infix( &self, _parser: &mut Parser<'_>, _expr: &Expr, _precedence: u8 ) -> Option<Result<Expr, ParserError>>
Dialect-specific infix parser override
source§fn get_next_precedence(
&self,
_parser: &Parser<'_>
) -> Option<Result<u8, ParserError>>
fn get_next_precedence( &self, _parser: &Parser<'_> ) -> Option<Result<u8, ParserError>>
Dialect-specific precedence override
source§fn parse_statement(
&self,
_parser: &mut Parser<'_>
) -> Option<Result<Statement, ParserError>>
fn parse_statement( &self, _parser: &mut Parser<'_> ) -> Option<Result<Statement, ParserError>>
Dialect-specific statement parser override
Auto Trait Implementations§
impl Freeze for AnsiDialect
impl RefUnwindSafe for AnsiDialect
impl Send for AnsiDialect
impl Sync for AnsiDialect
impl Unpin for AnsiDialect
impl UnwindSafe for AnsiDialect
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 moreCreates a shared type from an unshared type.