pub struct DFParser<'a> {
pub parser: Parser<'a>,
}
Expand description
DataFusion SQL Parser based on sqlparser
Parses DataFusion’s SQL dialect, often delegating to sqlparser
’s Parser
.
DataFusion mostly follows existing SQL dialects via
sqlparser
. However, certain statements such as COPY
and
CREATE EXTERNAL TABLE
have special syntax in DataFusion. See
Statement
for a list of this special syntax
Fields§
§parser: Parser<'a>
Implementations§
Source§impl<'a> DFParser<'a>
impl<'a> DFParser<'a>
Sourcepub fn new(sql: &str) -> Result<Self, ParserError>
pub fn new(sql: &str) -> Result<Self, ParserError>
Create a new parser for the specified tokens using the
GenericDialect
.
Sourcepub fn new_with_dialect(
sql: &str,
dialect: &'a dyn Dialect,
) -> Result<Self, ParserError>
pub fn new_with_dialect( sql: &str, dialect: &'a dyn Dialect, ) -> Result<Self, ParserError>
Create a new parser for the specified tokens with the specified dialect.
Sourcepub fn parse_sql(sql: &str) -> Result<VecDeque<Statement>, ParserError>
pub fn parse_sql(sql: &str) -> Result<VecDeque<Statement>, ParserError>
Parse a sql string into one or Statement
s using the
GenericDialect
.
Sourcepub fn parse_sql_with_dialect(
sql: &str,
dialect: &dyn Dialect,
) -> Result<VecDeque<Statement>, ParserError>
pub fn parse_sql_with_dialect( sql: &str, dialect: &dyn Dialect, ) -> Result<VecDeque<Statement>, ParserError>
Parse a SQL string and produce one or more Statement
s with
with the specified dialect.
pub fn parse_sql_into_expr_with_dialect( sql: &str, dialect: &dyn Dialect, ) -> Result<Expr, ParserError>
Sourcepub fn parse_statement(&mut self) -> Result<Statement, ParserError>
pub fn parse_statement(&mut self) -> Result<Statement, ParserError>
Parse a new expression
pub fn parse_expr(&mut self) -> Result<Expr, ParserError>
Sourcepub fn parse_copy(&mut self) -> Result<Statement, ParserError>
pub fn parse_copy(&mut self) -> Result<Statement, ParserError>
Parse a SQL COPY TO
statement
Sourcepub fn parse_option_key(&mut self) -> Result<String, ParserError>
pub fn parse_option_key(&mut self) -> Result<String, ParserError>
Parse the next token as a key name for an option list
Note this is different than parse_literal_string
because it allows keywords as well as other non words
Sourcepub fn parse_option_value(&mut self) -> Result<Value, ParserError>
pub fn parse_option_value(&mut self) -> Result<Value, ParserError>
Parse the next token as a value for an option list
Note this is different than parse_value
as it allows any
word or keyword in this location.
Sourcepub fn parse_explain(&mut self) -> Result<Statement, ParserError>
pub fn parse_explain(&mut self) -> Result<Statement, ParserError>
Parse a SQL EXPLAIN
Sourcepub fn parse_create(&mut self) -> Result<Statement, ParserError>
pub fn parse_create(&mut self) -> Result<Statement, ParserError>
Parse a SQL CREATE
statement handling CREATE EXTERNAL TABLE
Sourcepub fn parse_order_by_exprs(&mut self) -> Result<Vec<OrderByExpr>, ParserError>
pub fn parse_order_by_exprs(&mut self) -> Result<Vec<OrderByExpr>, ParserError>
Parse the ordering clause of a CREATE EXTERNAL TABLE
SQL statement
Sourcepub fn parse_order_by_expr(&mut self) -> Result<OrderByExpr, ParserError>
pub fn parse_order_by_expr(&mut self) -> Result<OrderByExpr, ParserError>
Parse an ORDER BY sub-expression optionally followed by ASC or DESC.
Auto Trait Implementations§
impl<'a> Freeze for DFParser<'a>
impl<'a> !RefUnwindSafe for DFParser<'a>
impl<'a> !Send for DFParser<'a>
impl<'a> !Sync for DFParser<'a>
impl<'a> Unpin for DFParser<'a>
impl<'a> !UnwindSafe for DFParser<'a>
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> 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>
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>
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