pub struct DFParser<'a> { /* private fields */ }
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

Implementations§

source§

impl<'a> DFParser<'a>

source

pub fn new(sql: &str) -> Result<Self, ParserError>

Create a new parser for the specified tokens using the GenericDialect.

source

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.

source

pub fn parse_sql(sql: &str) -> Result<VecDeque<Statement>, ParserError>

Parse a sql string into one or Statements using the GenericDialect.

source

pub fn parse_sql_with_dialect( sql: &str, dialect: &dyn Dialect ) -> Result<VecDeque<Statement>, ParserError>

Parse a SQL string and produce one or more Statements with with the specified dialect.

source

pub fn parse_statement(&mut self) -> Result<Statement, ParserError>

Parse a new expression

source

pub fn parse_describe(&mut self) -> Result<Statement, ParserError>

Parse a SQL DESCRIBE statement

source

pub fn parse_copy(&mut self) -> Result<Statement, ParserError>

Parse a SQL COPY TO statement

source

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

source

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.

source

pub fn parse_explain(&mut self) -> Result<Statement, ParserError>

Parse a SQL EXPLAIN

source

pub fn parse_create(&mut self) -> Result<Statement, ParserError>

Parse a SQL CREATE statement handling CREATE EXTERNAL TABLE

source

pub fn parse_order_by_exprs(&mut self) -> Result<Vec<OrderByExpr>, ParserError>

Parse the ordering clause of a CREATE EXTERNAL TABLE SQL statement

source

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> !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> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.