OmniSciDB  1dac507f6e
 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  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  GeoExpr
 
class  TargetEntry
 
class  Query
 
class  RangeTableEntry
 
class  Estimator
 
class  NDVEstimator
 

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 1973 of file Analyzer.cpp.

References Datum::bigintval, Datum::boolval, Datum::doubleval, Datum::floatval, SQLTypeInfoCore< TYPE_FACET_PACK >::get_type(), SQLTypeInfoCore< TYPE_FACET_PACK >::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==().

1973  {
1974  switch (ti.get_type()) {
1975  case kBOOLEAN:
1976  return val1.boolval == val2.boolval;
1977  case kCHAR:
1978  case kVARCHAR:
1979  case kTEXT:
1980  return *val1.stringval == *val2.stringval;
1981  case kNUMERIC:
1982  case kDECIMAL:
1983  case kBIGINT:
1984  return val1.bigintval == val2.bigintval;
1985  case kINT:
1986  return val1.intval == val2.intval;
1987  case kSMALLINT:
1988  return val1.smallintval == val2.smallintval;
1989  case kTINYINT:
1990  return val1.tinyintval == val2.tinyintval;
1991  case kFLOAT:
1992  return val1.floatval == val2.floatval;
1993  case kDOUBLE:
1994  return val1.doubleval == val2.doubleval;
1995  case kTIME:
1996  case kTIMESTAMP:
1997  case kDATE:
1998  case kINTERVAL_DAY_TIME:
1999  case kINTERVAL_YEAR_MONTH:
2000  return val1.bigintval == val2.bigintval;
2001  case kPOINT:
2002  case kLINESTRING:
2003  case kPOLYGON:
2004  case kMULTIPOLYGON:
2005  return *val1.stringval == *val2.stringval;
2006  default:
2007  throw std::runtime_error("Unrecognized type for Constant Datum equality: " +
2008  ti.get_type_name());
2009  }
2010  UNREACHABLE();
2011  return false;
2012 }
int8_t tinyintval
Definition: sqltypes.h:126
Definition: sqltypes.h:52
bool boolval
Definition: sqltypes.h:125
#define UNREACHABLE()
Definition: Logger.h:234
int32_t intval
Definition: sqltypes.h:128
std::string get_type_name() const
Definition: sqltypes.h:429
float floatval
Definition: sqltypes.h:130
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:326
int64_t bigintval
Definition: sqltypes.h:129
int16_t smallintval
Definition: sqltypes.h:127
std::string * stringval
Definition: sqltypes.h:134
Definition: sqltypes.h:55
Definition: sqltypes.h:56
Definition: sqltypes.h:44
Definition: sqltypes.h:48
double doubleval
Definition: sqltypes.h:131

+ Here is the call graph for this function:

+ Here is the caller graph for this function: