OmniSciDB
a5dc49c757
|
#include <ParserNode.h>
Public Member Functions | |
CaseExpr (std::list< ExprPair * > *w, Expr *e) | |
std::shared_ptr< Analyzer::Expr > | analyze (const Catalog_Namespace::Catalog &catalog, Analyzer::Query &query, TlistRefType allow_tlist_ref=TLIST_NONE) const override |
std::string | to_string () const override |
Public Member Functions inherited from Parser::Node | |
virtual | ~Node () |
Static Public Member Functions | |
static std::shared_ptr < Analyzer::Expr > | normalize (const std::list< std::pair< std::shared_ptr< Analyzer::Expr >, std::shared_ptr< Analyzer::Expr >>> &, const std::shared_ptr< Analyzer::Expr >, const Executor *executor=nullptr) |
Private Attributes | |
std::list< std::unique_ptr < ExprPair > > | when_then_list_ |
std::unique_ptr< Expr > | else_expr_ |
Additional Inherited Members | |
Public Types inherited from Parser::Expr | |
enum | TlistRefType { TLIST_NONE, TLIST_REF, TLIST_COPY } |
Definition at line 696 of file ParserNode.h.
Definition at line 698 of file ParserNode.h.
References CHECK, and when_then_list_.
|
overridevirtual |
Implements Parser::Expr.
Definition at line 1058 of file ParserNode.cpp.
References kBOOLEAN.
|
static |
Definition at line 1664 of file ParserNode.cpp.
References CHECK, Analyzer::BinOper::common_numeric_type(), Parser::common_string_type(), Parser::anonymous_namespace{ParserNode.cpp}::expr_is_null(), get_logical_type_info(), SQLTypeInfo::get_type(), SQLTypeInfo::is_boolean(), SQLTypeInfo::is_number(), SQLTypeInfo::is_string(), kENCODING_DICT, kNULLT, kTEXT, SQLTypeInfo::set_notnull(), and TRANSIENT_DICT_ID.
Referenced by QueryRewriter::rewriteColumnarDelete(), QueryRewriter::rewriteColumnarUpdate(), and RelAlgTranslator::translateCase().
|
overridevirtual |
Implements Parser::Expr.
Definition at line 1790 of file ParserNode.cpp.
|
private |
Definition at line 718 of file ParserNode.h.
|
private |
Definition at line 717 of file ParserNode.h.
Referenced by CaseExpr().