OmniSciDB  fe05a0c208
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Analyzer Namespace Reference

Namespaces

 anonymous_namespace{Analyzer.cpp}
 

Classes

class  Expr
 
class  ColumnVar
 
class  ExpressionTuple
 
class  Var
 
class  Constant
 
class  UOper
 
class  BinOper
 
class  Subquery
 
class  InValues
 
class  InIntegerSet
 
class  CharLengthExpr
 
class  KeyForStringExpr
 
class  SampleRatioExpr
 
class  LowerExpr
 Expression class for the LOWER (lowercase) string function. The "arg" constructor parameter must be an expression that resolves to a string datatype (e.g. TEXT). More...
 
class  CardinalityExpr
 
class  LikeExpr
 
class  RegexpExpr
 
class  LikelihoodExpr
 
class  AggExpr
 
class  CaseExpr
 
class  ExtractExpr
 
class  DateaddExpr
 
class  DatediffExpr
 
class  DatetruncExpr
 
class  FunctionOper
 
class  FunctionOperWithCustomTypeHandling
 
class  OffsetInFragment
 
struct  OrderEntry
 
class  WindowFunction
 
class  ArrayExpr
 
class  GeoUOper
 
class  GeoBinOper
 
class  TargetEntry
 
class  Query
 
class  GeoExpr
 
class  GeoColumnVar
 
class  GeoConstant
 
class  GeoOperator
 
class  GeoFunctionOperator
 
class  RangeTableEntry
 
class  Estimator
 
class  NDVEstimator
 
class  LargeNDVEstimator
 

Typedefs

using DomainSet = std::list< const Expr * >
 
using ExpressionPtr = std::shared_ptr< Analyzer::Expr >
 
using ExpressionPtrList = std::list< ExpressionPtr >
 
using ExpressionPtrVector = std::vector< ExpressionPtr >
 

Functions

bool Datum_equal (const SQLTypeInfo &ti, Datum val1, Datum val2)
 

Typedef Documentation

using Analyzer::DomainSet = typedef std::list<const Expr*>

Definition at line 61 of file Analyzer.h.

using Analyzer::ExpressionPtr = typedef std::shared_ptr<Analyzer::Expr>

Definition at line 180 of file Analyzer.h.

using Analyzer::ExpressionPtrList = typedef std::list<ExpressionPtr>

Definition at line 181 of file Analyzer.h.

using Analyzer::ExpressionPtrVector = typedef std::vector<ExpressionPtr>

Definition at line 182 of file Analyzer.h.

Function Documentation

bool Analyzer::Datum_equal ( const SQLTypeInfo ti,
Datum  val1,
Datum  val2 
)

Definition at line 2115 of file Analyzer.cpp.

References Datum::bigintval, Datum::boolval, Datum::doubleval, Datum::floatval, SQLTypeInfo::get_type(), SQLTypeInfo::get_type_name(), Datum::intval, kBIGINT, kBOOLEAN, kCHAR, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kLINESTRING, kMULTIPOLYGON, kNUMERIC, kPOINT, kPOLYGON, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, Datum::smallintval, Datum::stringval, Datum::tinyintval, and UNREACHABLE.

Referenced by Analyzer::Constant::operator==().

2115  {
2116  switch (ti.get_type()) {
2117  case kBOOLEAN:
2118  return val1.boolval == val2.boolval;
2119  case kCHAR:
2120  case kVARCHAR:
2121  case kTEXT:
2122  return *val1.stringval == *val2.stringval;
2123  case kNUMERIC:
2124  case kDECIMAL:
2125  case kBIGINT:
2126  return val1.bigintval == val2.bigintval;
2127  case kINT:
2128  return val1.intval == val2.intval;
2129  case kSMALLINT:
2130  return val1.smallintval == val2.smallintval;
2131  case kTINYINT:
2132  return val1.tinyintval == val2.tinyintval;
2133  case kFLOAT:
2134  return val1.floatval == val2.floatval;
2135  case kDOUBLE:
2136  return val1.doubleval == val2.doubleval;
2137  case kTIME:
2138  case kTIMESTAMP:
2139  case kDATE:
2140  case kINTERVAL_DAY_TIME:
2141  case kINTERVAL_YEAR_MONTH:
2142  return val1.bigintval == val2.bigintval;
2143  case kPOINT:
2144  case kLINESTRING:
2145  case kPOLYGON:
2146  case kMULTIPOLYGON:
2147  return *val1.stringval == *val2.stringval;
2148  default:
2149  throw std::runtime_error("Unrecognized type for Constant Datum equality: " +
2150  ti.get_type_name());
2151  }
2152  UNREACHABLE();
2153  return false;
2154 }
int8_t tinyintval
Definition: sqltypes.h:206
Definition: sqltypes.h:48
bool boolval
Definition: sqltypes.h:205
#define UNREACHABLE()
Definition: Logger.h:247
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:314
int32_t intval
Definition: sqltypes.h:208
float floatval
Definition: sqltypes.h:210
int64_t bigintval
Definition: sqltypes.h:209
int16_t smallintval
Definition: sqltypes.h:207
std::string * stringval
Definition: sqltypes.h:214
Definition: sqltypes.h:51
Definition: sqltypes.h:52
std::string get_type_name() const
Definition: sqltypes.h:417
Definition: sqltypes.h:40
Definition: sqltypes.h:44
double doubleval
Definition: sqltypes.h:211

+ Here is the call graph for this function:

+ Here is the caller graph for this function: