pub enum Token {
Show 86 variants
EOF,
Word(Word),
Number(String, bool),
Char(char),
SingleQuotedString(String),
DoubleQuotedString(String),
TripleSingleQuotedString(String),
TripleDoubleQuotedString(String),
DollarQuotedString(DollarQuotedString),
SingleQuotedByteStringLiteral(String),
DoubleQuotedByteStringLiteral(String),
TripleSingleQuotedByteStringLiteral(String),
TripleDoubleQuotedByteStringLiteral(String),
SingleQuotedRawStringLiteral(String),
DoubleQuotedRawStringLiteral(String),
TripleSingleQuotedRawStringLiteral(String),
TripleDoubleQuotedRawStringLiteral(String),
NationalStringLiteral(String),
EscapedStringLiteral(String),
UnicodeStringLiteral(String),
HexStringLiteral(String),
Comma,
Whitespace(Whitespace),
DoubleEq,
Eq,
Neq,
Lt,
Gt,
LtEq,
GtEq,
Spaceship,
Plus,
Minus,
Mul,
Div,
DuckIntDiv,
Mod,
StringConcat,
LParen,
RParen,
Period,
Colon,
DoubleColon,
Assignment,
SemiColon,
Backslash,
LBracket,
RBracket,
Ampersand,
Pipe,
Caret,
LBrace,
RBrace,
RArrow,
Sharp,
Tilde,
TildeAsterisk,
ExclamationMarkTilde,
ExclamationMarkTildeAsterisk,
DoubleTilde,
DoubleTildeAsterisk,
ExclamationMarkDoubleTilde,
ExclamationMarkDoubleTildeAsterisk,
ShiftLeft,
ShiftRight,
Overlap,
ExclamationMark,
DoubleExclamationMark,
AtSign,
CaretAt,
PGSquareRoot,
PGCubeRoot,
Placeholder(String),
Arrow,
LongArrow,
HashArrow,
HashLongArrow,
AtArrow,
ArrowAt,
HashMinus,
AtQuestion,
AtAt,
Question,
QuestionAnd,
QuestionPipe,
CustomBinaryOperator(String),
}
Expand description
SQL Token enumeration
Variants§
EOF
An end-of-file marker, not a real token
Word(Word)
A keyword (like SELECT) or an optionally quoted SQL identifier
Number(String, bool)
An unsigned numeric literal
Char(char)
A character that could not be tokenized
SingleQuotedString(String)
Single quoted string: i.e: ‘string’
DoubleQuotedString(String)
Double quoted string: i.e: “string”
TripleSingleQuotedString(String)
Triple single quoted strings: Example ‘’‘abc’‘’ BigQuery
TripleDoubleQuotedString(String)
Triple double quoted strings: Example “”“abc”“” BigQuery
DollarQuotedString(DollarQuotedString)
Dollar quoted string: i.e: $$string$$ or $tag_name$string$tag_name$
SingleQuotedByteStringLiteral(String)
Byte string literal: i.e: b’string’ or B’string’ (note that some backends, such as PostgreSQL, may treat this syntax as a bit string literal instead, i.e: b’10010101’)
DoubleQuotedByteStringLiteral(String)
Byte string literal: i.e: b“string“ or B“string“
TripleSingleQuotedByteStringLiteral(String)
Triple single quoted literal with byte string prefix. Example B'''abc'''
BigQuery
TripleDoubleQuotedByteStringLiteral(String)
Triple double quoted literal with byte string prefix. Example B"""abc"""
BigQuery
SingleQuotedRawStringLiteral(String)
Single quoted literal with raw string prefix. Example R'abc'
BigQuery
DoubleQuotedRawStringLiteral(String)
Double quoted literal with raw string prefix. Example R"abc"
BigQuery
TripleSingleQuotedRawStringLiteral(String)
Triple single quoted literal with raw string prefix. Example R'''abc'''
BigQuery
TripleDoubleQuotedRawStringLiteral(String)
Triple double quoted literal with raw string prefix. Example R"""abc"""
BigQuery
NationalStringLiteral(String)
“National” string literal: i.e: N’string’
EscapedStringLiteral(String)
“escaped” string literal, which are an extension to the SQL standard: i.e: e’first \n second’ or E ‘first \n second’
UnicodeStringLiteral(String)
Unicode string literal: i.e: U&‘first \000A second’
HexStringLiteral(String)
Hexadecimal string literal: i.e.: X’deadbeef’
Comma
Comma
Whitespace(Whitespace)
Whitespace (space, tab, etc)
DoubleEq
Double equals sign ==
Eq
Equality operator =
Neq
Not Equals operator <>
(or !=
in some dialects)
Lt
Less Than operator <
Gt
Greater Than operator >
LtEq
Less Than Or Equals operator <=
GtEq
Greater Than Or Equals operator >=
Spaceship
Spaceship operator <=>
Plus
Plus operator +
Minus
Minus operator -
Mul
Multiplication operator *
Div
Division operator /
DuckIntDiv
Integer division operator //
in DuckDB
Mod
Modulo Operator %
StringConcat
String concatenation ||
LParen
Left parenthesis (
RParen
Right parenthesis )
Period
Period (used for compound identifiers or projections into nested types)
Colon
Colon :
DoubleColon
DoubleColon ::
(used for casting in PostgreSQL)
Assignment
Assignment :=
(used for keyword argument in DuckDB macros and some functions, and for variable declarations in DuckDB and Snowflake)
SemiColon
SemiColon ;
used as separator for COPY and payload
Backslash
Backslash \
used in terminating the COPY payload with \.
LBracket
Left bracket [
RBracket
Right bracket ]
Ampersand
Ampersand &
Pipe
Pipe |
Caret
Caret ^
LBrace
Left brace {
RBrace
Right brace }
RArrow
Right Arrow =>
Sharp
Sharp #
used for PostgreSQL Bitwise XOR operator
Tilde
Tilde ~
used for PostgreSQL Bitwise NOT operator or case sensitive match regular expression operator
TildeAsterisk
~*
, a case insensitive match regular expression operator in PostgreSQL
ExclamationMarkTilde
!~
, a case sensitive not match regular expression operator in PostgreSQL
ExclamationMarkTildeAsterisk
!~*
, a case insensitive not match regular expression operator in PostgreSQL
DoubleTilde
~~
, a case sensitive match pattern operator in PostgreSQL
DoubleTildeAsterisk
~~*
, a case insensitive match pattern operator in PostgreSQL
ExclamationMarkDoubleTilde
!~~
, a case sensitive not match pattern operator in PostgreSQL
ExclamationMarkDoubleTildeAsterisk
!~~*
, a case insensitive not match pattern operator in PostgreSQL
ShiftLeft
<<
, a bitwise shift left operator in PostgreSQL
ShiftRight
>>
, a bitwise shift right operator in PostgreSQL
Overlap
&&
, an overlap operator in PostgreSQL
ExclamationMark
Exclamation Mark !
used for PostgreSQL factorial operator
DoubleExclamationMark
Double Exclamation Mark !!
used for PostgreSQL prefix factorial operator
AtSign
AtSign @
used for PostgreSQL abs operator
CaretAt
^@
, a “starts with” string operator in PostgreSQL
PGSquareRoot
|/
, a square root math operator in PostgreSQL
PGCubeRoot
||/
, a cube root math operator in PostgreSQL
Placeholder(String)
?
or $
, a prepared statement arg placeholder
Arrow
->
, used as a operator to extract json field in PostgreSQL
LongArrow
->>
, used as a operator to extract json field as text in PostgreSQL
HashArrow
#>
, extracts JSON sub-object at the specified path
HashLongArrow
#>>
, extracts JSON sub-object at the specified path as text
AtArrow
jsonb @> jsonb -> boolean: Test whether left json contains the right json
ArrowAt
jsonb <@ jsonb -> boolean: Test whether right json contains the left json
HashMinus
jsonb #- text[] -> jsonb: Deletes the field or array element at the specified path, where path elements can be either field keys or array indexes.
AtQuestion
jsonb @? jsonpath -> boolean: Does JSON path return any item for the specified JSON value?
AtAt
jsonb @@ jsonpath → boolean: Returns the result of a JSON path predicate check for the specified JSON value. Only the first item of the result is taken into account. If the result is not Boolean, then NULL is returned.
Question
jsonb ? text -> boolean: Checks whether the string exists as a top-level key within the jsonb object
QuestionAnd
jsonb ?& text[] -> boolean: Check whether all members of the text array exist as top-level keys within the jsonb object
QuestionPipe
jsonb ?| text[] -> boolean: Check whether any member of the text array exists as top-level keys within the jsonb object
CustomBinaryOperator(String)
Custom binary operator This is used to represent any custom binary operator that is not part of the SQL standard. PostgreSQL allows defining custom binary operators using CREATE OPERATOR.
Implementations§
Trait Implementations§
Source§impl Ord for Token
impl Ord for Token
Source§impl PartialEq<Token> for TokenWithSpan
impl PartialEq<Token> for TokenWithSpan
Source§impl PartialEq<TokenWithSpan> for Token
impl PartialEq<TokenWithSpan> for Token
Source§impl PartialOrd for Token
impl PartialOrd for Token
Source§impl VisitMut for Token
impl VisitMut for Token
fn visit<V>(&mut self, visitor: &mut V) -> ControlFlow<<V as VisitorMut>::Break>where
V: VisitorMut,
impl Eq for Token
impl StructuralPartialEq for Token
Auto Trait Implementations§
impl Freeze for Token
impl RefUnwindSafe for Token
impl Send for Token
impl Sync for Token
impl Unpin for Token
impl UnwindSafe for Token
Blanket Implementations§
Source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
Source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
Source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
Source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
Source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
Source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
Source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
Source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
Source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
Source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
Source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
Source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
Source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
Source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.Source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
Source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
Source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
Source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
Source§fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
Source§fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
Source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
Source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moreSource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moreSource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moreSource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moreSource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
Source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
Source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moreSource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
Source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
Source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
Source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moreSource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.Source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
Source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
Source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more