pub enum SemScalarExpr {
Show 19 variants
Array(ArrayExpr),
Const(ScalarConstExpr),
ColumnRef(ColumnReferenceExpr),
FuncCall(FuncCallExpr),
Arith(ArithExpr),
TypeCast(TypeCastExpr),
Case(CaseExpr),
Boolean(BooleanExpr),
NullTest(NullTestExpr),
SubLink(SubLinkExpr),
Coalesce(CoalesceExpr),
MinMax(MinMaxExpr),
Collate(CollateExpr),
SqlValue(SqlValueExpr),
Param(ParamRef),
NamedArg(NamedArgExpr),
Indirection(IndirectionExpr),
ImplicitCast(ImplicitCastExpr),
Unexpected(String),
}Expand description
scalar explation in semantic ast
Variants§
Array(ArrayExpr)
array expression
Const(ScalarConstExpr)
const expression
ColumnRef(ColumnReferenceExpr)
column reference expression
FuncCall(FuncCallExpr)
function call expression
Arith(ArithExpr)
arith expression
TypeCast(TypeCastExpr)
type casting expression
Case(CaseExpr)
cast expression
Boolean(BooleanExpr)
boolean expression
NullTest(NullTestExpr)
null test expression
SubLink(SubLinkExpr)
sub-query expression
Coalesce(CoalesceExpr)
calesce expression
MinMax(MinMaxExpr)
min-max expressions
Collate(CollateExpr)
collate explressions
SqlValue(SqlValueExpr)
SQL standard value expression
Param(ParamRef)
parameter reference expression
NamedArg(NamedArgExpr)
named argment expression
Indirection(IndirectionExpr)
indirectrion expression
ImplicitCast(ImplicitCastExpr)
implicit cast expression
§Note
ImplicitCast is not in Syntax level AST.
sql-fun inserts implicit cast at a implicit coversion as needed.
Unexpected(String)
Unexpected syntax node in expression
Implementations§
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn get_type(&self) -> Option<TypeReference>
pub fn get_type(&self) -> Option<TypeReference>
determine expresion value type
Sourcepub fn is_not_null(&self) -> Option<bool>
pub fn is_not_null(&self) -> Option<bool>
determine expression value is nullable
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn get_column_def(&self) -> Option<ColumnDefinition>
pub fn get_column_def(&self) -> Option<ColumnDefinition>
get column definition
Sourcepub fn get_column_name(&self) -> String
pub fn get_column_name(&self) -> String
get column name
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn wrap_implicit_cast(
taget_type: &TypeReference,
value_expr: &SemScalarExpr,
) -> Self
pub fn wrap_implicit_cast( taget_type: &TypeReference, value_expr: &SemScalarExpr, ) -> Self
convert value_expr with implicit casting
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn implicit_cast_if_require<TParseContext>(
context: &mut TParseContext,
result_type: &TypeReference,
expr: &mut SemScalarExpr,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
pub fn implicit_cast_if_require<TParseContext>(
context: &mut TParseContext,
result_type: &TypeReference,
expr: &mut SemScalarExpr,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
convert expression type with implicit cast
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn require_array<TParseContext>(
&self,
context: &mut TParseContext,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
pub fn require_array<TParseContext>(
&self,
context: &mut TParseContext,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
test expression is array and report
Source§impl SemScalarExpr
impl SemScalarExpr
Sourcepub fn fits_array_index<TParseContext>(
&self,
context: &mut TParseContext,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
pub fn fits_array_index<TParseContext>(
&self,
context: &mut TParseContext,
) -> Result<(), AnalysisError>where
TParseContext: ParseContext,
test fits array index
Trait Implementations§
Source§impl Clone for SemScalarExpr
impl Clone for SemScalarExpr
Source§fn clone(&self) -> SemScalarExpr
fn clone(&self) -> SemScalarExpr
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SemScalarExpr
impl Debug for SemScalarExpr
Source§impl<'de> Deserialize<'de> for SemScalarExpr
impl<'de> Deserialize<'de> for SemScalarExpr
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&SemScalarExpr> for IndexElement
impl From<&SemScalarExpr> for IndexElement
Source§fn from(value: &SemScalarExpr) -> Self
fn from(value: &SemScalarExpr) -> Self
Source§impl Hash for SemScalarExpr
impl Hash for SemScalarExpr
Source§impl PartialEq for SemScalarExpr
impl PartialEq for SemScalarExpr
Source§impl Serialize for SemScalarExpr
impl Serialize for SemScalarExpr
impl Eq for SemScalarExpr
impl StructuralPartialEq for SemScalarExpr
Auto Trait Implementations§
impl Freeze for SemScalarExpr
impl RefUnwindSafe for SemScalarExpr
impl Send for SemScalarExpr
impl Sync for SemScalarExpr
impl Unpin for SemScalarExpr
impl UnwindSafe for SemScalarExpr
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more