pub struct DFParserBuilder<'a> { /* private fields */ }
Expand description
Builder for DFParser
§Example: Create and Parse SQL statements
let mut parser = DFParserBuilder::new("SELECT * FROM foo; SELECT 1 + 2")
.build()?;
// parse the SQL into DFStatements
let statements = parser.parse_statements()?;
assert_eq!(statements.len(), 2);
§Example: Create and Parse expression with a different dialect
let dialect = MySqlDialect{}; // Parse using MySQL dialect
let mut parser = DFParserBuilder::new("1 + 2")
.with_dialect(&dialect)
.build()?;
// parse 1+2 into an sqlparser::ast::Expr
let res = parser.parse_expr()?;
assert!(matches!(res.expr, Expr::BinaryOp {..}));
Implementations§
Source§impl<'a> DFParserBuilder<'a>
impl<'a> DFParserBuilder<'a>
Sourcepub fn new(sql: &'a str) -> Self
pub fn new(sql: &'a str) -> Self
Create a new parser builder for the specified tokens using the
GenericDialect
.
Sourcepub fn with_dialect(self, dialect: &'a dyn Dialect) -> Self
pub fn with_dialect(self, dialect: &'a dyn Dialect) -> Self
Adjust the parser builder’s dialect. Defaults to GenericDialect
Sourcepub fn with_recursion_limit(self, recursion_limit: usize) -> Self
pub fn with_recursion_limit(self, recursion_limit: usize) -> Self
Adjust the recursion limit of sql parsing. Defaults to 50
pub fn build(self) -> Result<DFParser<'a>, DataFusionError>
Auto Trait Implementations§
impl<'a> Freeze for DFParserBuilder<'a>
impl<'a> !RefUnwindSafe for DFParserBuilder<'a>
impl<'a> !Send for DFParserBuilder<'a>
impl<'a> !Sync for DFParserBuilder<'a>
impl<'a> Unpin for DFParserBuilder<'a>
impl<'a> !UnwindSafe for DFParserBuilder<'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
Mutably borrows from an owned value. Read more
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 more