Struct deltalake::datafusion::sql::parser::DFParser

source ·
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>

source

pub fn new(sql: &str) -> Result<DFParser<'a>, ParserError>

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

source

pub fn new_with_dialect( sql: &str, dialect: &'a (dyn Dialect + 'static) ) -> Result<DFParser<'a>, 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 + 'static) ) -> 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_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> 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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where 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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where 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> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more