Struct sqlparser::dialect::MySqlDialect
source · pub struct MySqlDialect {}
Trait Implementations§
source§impl Debug for MySqlDialect
impl Debug for MySqlDialect
source§impl Dialect for MySqlDialect
impl Dialect for MySqlDialect
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 identifier_quote_style(&self, _identifier: &str) -> Option<char>
fn identifier_quote_style(&self, _identifier: &str) -> Option<char>
Return the character used to quote identifiers.
source§fn supports_string_literal_backslash_escape(&self) -> bool
fn supports_string_literal_backslash_escape(&self) -> bool
Determine if the dialect supports escaping characters via ’' in string literals. Read more
source§fn supports_numeric_prefix(&self) -> bool
fn supports_numeric_prefix(&self) -> bool
Returns true if the dialect supports identifiers starting with a numeric
prefix such as tables named
59901_user_login
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 Read more
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 Read more
source§fn require_interval_qualifier(&self) -> bool
fn require_interval_qualifier(&self) -> bool
Whether
INTERVAL
expressions require units (called “qualifiers” in the ANSI SQL spec) to be specified,
e.g. INTERVAL 1 DAY
vs INTERVAL 1
. Read moresource§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 is_custom_operator_part(&self, _ch: char) -> bool
fn is_custom_operator_part(&self, _ch: char) -> bool
Most dialects do not have custom operators. Override this method to provide custom operators.
source§fn supports_unicode_string_literal(&self) -> bool
fn supports_unicode_string_literal(&self) -> bool
Determine if the dialect supports string literals with
U&
prefix.
This is used to specify Unicode code points in string literals.
For example, in PostgreSQL, the following is a valid string literal: Read moresource§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_window_clause_named_window_reference(&self) -> bool
fn supports_window_clause_named_window_reference(&self) -> bool
Returns true if the dialect supports referencing another named window
within a window clause declaration. Read more
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_connect_by(&self) -> bool
fn supports_connect_by(&self) -> bool
Returns true if the dialect supports CONNECT BY.
source§fn supports_match_recognize(&self) -> bool
fn supports_match_recognize(&self) -> bool
Returns true if the dialect supports the MATCH_RECOGNIZE operation.
source§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 supports_named_fn_args_with_eq_operator(&self) -> bool
fn supports_named_fn_args_with_eq_operator(&self) -> bool
Returns true if the dialect supports named arguments of the form FUN(a = ‘1’, b = ‘2’).
source§fn supports_window_function_null_treatment_arg(&self) -> bool
fn supports_window_function_null_treatment_arg(&self) -> bool
Returns true if the dialects supports specifying null treatment
as part of a window function’s parameter list as opposed
to after the parameter list. Read more
source§fn supports_dictionary_syntax(&self) -> bool
fn supports_dictionary_syntax(&self) -> bool
Returns true if the dialect supports defining structs or objects using a
syntax like
{'x': 1, 'y': 2, 'z': 3}
.source§fn support_map_literal_syntax(&self) -> bool
fn support_map_literal_syntax(&self) -> bool
Returns true if the dialect supports defining object using the
syntax like
Map {1: 10, 2: 20}
.source§fn supports_lambda_functions(&self) -> bool
fn supports_lambda_functions(&self) -> bool
Returns true if the dialect supports lambda functions, for example: Read more
source§fn supports_parenthesized_set_variables(&self) -> bool
fn supports_parenthesized_set_variables(&self) -> bool
Returns true if the dialect supports multiple variable assignment
using parentheses in a
SET
variable declaration. Read moresource§fn supports_select_wildcard_except(&self) -> bool
fn supports_select_wildcard_except(&self) -> bool
Returns true if the dialect supports an
EXCEPT
clause following a
wildcard in a select list. Read moresource§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 supports_triple_quoted_string(&self) -> bool
fn supports_triple_quoted_string(&self) -> bool
Returns true if the dialect supports triple quoted string
e.g.
"""abc"""
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 supports_trailing_commas(&self) -> bool
fn supports_trailing_commas(&self) -> bool
Does the dialect support trailing commas around the query?
source§fn supports_projection_trailing_commas(&self) -> bool
fn supports_projection_trailing_commas(&self) -> bool
Does the dialect support trailing commas in the projection list?
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 Read more
source§fn get_next_precedence_default(
&self,
parser: &Parser<'_>,
) -> Result<u8, ParserError>
fn get_next_precedence_default( &self, parser: &Parser<'_>, ) -> Result<u8, ParserError>
Get the precedence of the next token, looking at the full token stream. Read more
source§fn prec_value(&self, prec: Precedence) -> u8
fn prec_value(&self, prec: Precedence) -> u8
Decide the lexical Precedence of operators. Read more
source§fn prec_unknown(&self) -> u8
fn prec_unknown(&self) -> u8
Returns the precedence when the precedence is otherwise unknown
source§fn describe_requires_table_keyword(&self) -> bool
fn describe_requires_table_keyword(&self) -> bool
source§fn allow_extract_custom(&self) -> bool
fn allow_extract_custom(&self) -> bool
Returns true if this dialect allows the
EXTRACT
function to words other than Keyword
.source§fn allow_extract_single_quotes(&self) -> bool
fn allow_extract_single_quotes(&self) -> bool
Returns true if this dialect allows the
EXTRACT
function to use single quotes in the part being extracted.source§fn supports_create_index_with_clause(&self) -> bool
fn supports_create_index_with_clause(&self) -> bool
Does the dialect support with clause in create index statement?
e.g.
CREATE INDEX idx ON t WITH (key = value, key2)
Auto Trait Implementations§
impl Freeze for MySqlDialect
impl RefUnwindSafe for MySqlDialect
impl Send for MySqlDialect
impl Sync for MySqlDialect
impl Unpin for MySqlDialect
impl UnwindSafe for MySqlDialect
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