OmniSciDB  ca0c39ec8f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SQLTypeInfo Class Reference

#include <sqltypes.h>

Public Member Functions

 SQLTypeInfo (SQLTypes t, int d, int s, bool n, EncodingType c, int p, SQLTypes st)
 
 SQLTypeInfo (SQLTypes t, int d, int s, bool n)
 
 SQLTypeInfo (SQLTypes t, EncodingType c, int p, SQLTypes st)
 
 SQLTypeInfo (SQLTypes t, int d, int s)
 
 SQLTypeInfo (SQLTypes t, bool n)
 
 SQLTypeInfo (SQLTypes t)
 
 SQLTypeInfo (SQLTypes t, bool n, EncodingType c)
 
 SQLTypeInfo ()
 
HOST DEVICE SQLTypes get_type () const
 
HOST DEVICE SQLTypes get_subtype () const
 
HOST DEVICE int get_dimension () const
 
int get_precision () const
 
HOST DEVICE int get_input_srid () const
 
HOST DEVICE int get_scale () const
 
HOST DEVICE int get_output_srid () const
 
HOST DEVICE bool get_notnull () const
 
HOST DEVICE EncodingType get_compression () const
 
HOST DEVICE int get_comp_param () const
 
HOST DEVICE int get_size () const
 
int is_logical_geo_type () const
 
int get_logical_size () const
 
int get_physical_cols () const
 
int get_physical_coord_cols () const
 
bool has_bounds () const
 
bool has_render_group () const
 
HOST DEVICE void set_type (SQLTypes t)
 
HOST DEVICE void set_subtype (SQLTypes st)
 
void set_dimension (int d)
 
void set_precision (int d)
 
void set_input_srid (int d)
 
void set_scale (int s)
 
void set_output_srid (int s)
 
void set_notnull (bool n)
 
void set_size (int s)
 
void set_fixed_size ()
 
void set_dict_intersection ()
 
void set_compression (EncodingType c)
 
void set_comp_param (int p)
 
std::string get_type_name () const
 
std::string get_compression_name () const
 
std::string toString () const
 
std::string to_string () const
 
std::string get_buffer_name () const
 
template<typename... Types>
bool is_any (Types...types) const
 
bool is_string () const
 
bool is_string_array () const
 
bool is_integer () const
 
bool is_decimal () const
 
bool is_fp () const
 
bool is_number () const
 
bool is_time () const
 
bool is_boolean () const
 
bool is_array () const
 
bool is_varlen_array () const
 
bool is_fixlen_array () const
 
bool is_timeinterval () const
 
bool is_geometry () const
 
bool is_column () const
 
bool is_column_list () const
 
bool is_column_array () const
 
bool is_column_list_array () const
 
bool is_bytes () const
 
bool is_text_encoding_dict () const
 
bool is_text_encoding_dict_array () const
 
bool is_buffer () const
 
bool transforms () const
 
bool is_varlen () const
 
bool is_varlen_indeed () const
 
bool is_dict_encoded_string () const
 
bool is_none_encoded_string () const
 
bool is_subtype_dict_encoded_string () const
 
bool is_dict_encoded_type () const
 
bool is_dict_intersection () const
 
bool has_same_itemtype (const SQLTypeInfo &other) const
 
HOST DEVICE bool operator!= (const SQLTypeInfo &rhs) const
 
HOST DEVICE bool operator== (const SQLTypeInfo &rhs) const
 
int get_array_context_logical_size () const
 
HOST DEVICE void operator= (const SQLTypeInfo &rhs)
 
bool is_castable (const SQLTypeInfo &new_type_info) const
 
bool is_numeric_scalar_auto_castable (const SQLTypeInfo &new_type_info) const
 returns true if the sql_type can be cast to the type specified by new_type_info with no loss of precision. Currently only used in ExtensionFunctionsBindings to determine legal function matches, but we should consider whether we need to rationalize implicit casting behavior more broadly in QueryEngine. More...
 
int32_t get_numeric_scalar_scale () const
 returns integer between 1 and 8 indicating what is roughly equivalent to the logical byte size of a scalar numeric type (including boolean + time types), but with decimals and numerics mapped to the byte size of their dimension (which may vary from the type width), and timestamps, dates and times handled in a relative fashion. Note: this function only takes the scalar numeric types above, and will throw a check for other types. More...
 
HOST DEVICE bool is_null (const Datum &d) const
 
HOST DEVICE bool is_null (const int8_t *val) const
 
HOST DEVICE bool is_null_fixlen_array (const int8_t *val, int array_size) const
 
HOST DEVICE bool is_null_point_coord_array (const int8_t *val, int array_size) const
 
SQLTypeInfo get_elem_type () const
 
SQLTypeInfo get_array_type () const
 
bool is_date_in_days () const
 
bool is_date () const
 
bool is_high_precision_timestamp () const
 
bool is_timestamp () const
 

Private Member Functions

HOST DEVICE int get_storage_size () const
 

Private Attributes

SQLTypes type
 
SQLTypes subtype
 
int dimension
 
int scale
 
bool notnull
 
EncodingType compression
 
int comp_param
 
int size
 
bool dict_intersection {false}
 

Static Private Attributes

static std::string type_name [kSQLTYPE_LAST]
 
static std::string comp_name [kENCODING_LAST]
 

Detailed Description

Definition at line 320 of file sqltypes.h.

Constructor & Destructor Documentation

SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
int  d,
int  s,
bool  n,
EncodingType  c,
int  p,
SQLTypes  st 
)
inline

Definition at line 322 of file sqltypes.h.

323  : type(t)
324  , subtype(st)
325  , dimension(d)
326  , scale(s)
327  , notnull(n)
328  , compression(c)
329  , comp_param(p)
330  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012
SQLTypes type
Definition: sqltypes.h:998
constexpr double n
Definition: Utm.h:38
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
int  d,
int  s,
bool  n 
)
inline

Definition at line 331 of file sqltypes.h.

332  : type(t)
333  , subtype(kNULLT)
334  , dimension(d)
335  , scale(s)
336  , notnull(n)
338  , comp_param(0)
339  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012
SQLTypes type
Definition: sqltypes.h:998
constexpr double n
Definition: Utm.h:38
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
EncodingType  c,
int  p,
SQLTypes  st 
)
inline

Definition at line 340 of file sqltypes.h.

341  : type(t)
342  , subtype(st)
343  , dimension(0)
344  , scale(0)
345  , notnull(false)
346  , compression(c)
347  , comp_param(p)
348  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012
SQLTypes type
Definition: sqltypes.h:998
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
int  d,
int  s 
)
inline

Definition at line 349 of file sqltypes.h.

349 : SQLTypeInfo(t, d, s, false) {}
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
bool  n 
)
inline

Definition at line 350 of file sqltypes.h.

351  : type(t)
352  , subtype(kNULLT)
353  , dimension(0)
354  , scale(0)
355  , notnull(n)
357  , comp_param(0)
358  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012
SQLTypes type
Definition: sqltypes.h:998
constexpr double n
Definition: Utm.h:38
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t)
inline

Definition at line 359 of file sqltypes.h.

359 : SQLTypeInfo(t, false) {}
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
bool  n,
EncodingType  c 
)
inline

Definition at line 360 of file sqltypes.h.

361  : type(t)
362  , subtype(kNULLT)
363  , dimension(0)
364  , scale(0)
365  , notnull(n)
366  , compression(c)
367  , comp_param(0)
368  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012
SQLTypes type
Definition: sqltypes.h:998
constexpr double n
Definition: Utm.h:38
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000
SQLTypeInfo::SQLTypeInfo ( )
inline

Definition at line 369 of file sqltypes.h.

Referenced by get_array_type(), and get_elem_type().

370  : type(kNULLT)
371  , subtype(kNULLT)
372  , dimension(0)
373  , scale(0)
374  , notnull(false)
376  , comp_param(0)
377  , size(0) {}
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
SQLTypes type
Definition: sqltypes.h:998
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the caller graph for this function:

Member Function Documentation

int SQLTypeInfo::get_array_context_logical_size ( ) const
inline

Definition at line 673 of file sqltypes.h.

References get_compression(), get_logical_size(), is_string(), kENCODING_DICT, kENCODING_FIXED, and kENCODING_NONE.

Referenced by ResultSet::makeVarlenTargetValue().

673  {
674  if (is_string()) {
675  auto comp_type(get_compression());
676  if (comp_type == kENCODING_DICT || comp_type == kENCODING_FIXED ||
677  comp_type == kENCODING_NONE) {
678  return sizeof(int32_t);
679  }
680  }
681  return get_logical_size();
682  }
int get_logical_size() const
Definition: sqltypes.h:399
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
bool is_string() const
Definition: sqltypes.h:575

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

SQLTypeInfo SQLTypeInfo::get_array_type ( ) const
inline

Definition at line 969 of file sqltypes.h.

References comp_param, compression, dimension, kARRAY, notnull, scale, SQLTypeInfo(), and type.

Referenced by Parser::OperExpr::normalize().

969  {
971  }
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
SQLTypes type
Definition: sqltypes.h:998
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string SQLTypeInfo::get_buffer_name ( ) const
inline

Definition at line 555 of file sqltypes.h.

References is_array(), is_bytes(), and is_column().

555  {
556  if (is_array()) {
557  return "Array";
558  }
559  if (is_bytes()) {
560  return "Bytes";
561  }
562 
563  if (is_column()) {
564  return "Column";
565  }
566 
567  assert(false);
568  return "";
569  }
bool is_column() const
Definition: sqltypes.h:588
bool is_bytes() const
Definition: sqltypes.h:598
bool is_array() const
Definition: sqltypes.h:583

+ Here is the call graph for this function:

HOST DEVICE int SQLTypeInfo::get_comp_param ( ) const
inline

Definition at line 388 of file sqltypes.h.

References comp_param.

Referenced by Analyzer::Expr::add_cast(), Analyzer::UOper::add_cast(), Analyzer::CaseExpr::add_cast(), Catalog_Namespace::Catalog::addColumn(), Catalog_Namespace::Catalog::addReferenceToForeignDict(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCompression(), CodeGenerator::codegenPseudoStringOper(), Parser::common_string_type(), Analyzer::BinOper::common_string_type(), import_export::ImporterUtils::composeNullPointCoords(), Geospatial::compress_coord(), Geospatial::compress_coords(), Geospatial::compress_null_point(), DictionaryConverterFactory< TARGET_TYPE >::create(), Encoder::Create(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_decimal_encoder(), Catalog_Namespace::Catalog::createTable(), DateDaysOverflowValidator::DateDaysOverflowValidator(), decompress(), Catalog_Namespace::Catalog::delDictionary(), DictionaryValueConverter< TARGET_TYPE >::DictionaryValueConverter(), Catalog_Namespace::Catalog::doTruncateTable(), import_export::fill_missing_columns(), Catalog_Namespace::Catalog::gatherAdditionalInfo(), generate_column_type(), Analyzer::ColumnVar::get_comp_param(), Geospatial::get_compression_scheme(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), get_logical_type_info(), Parser::get_str_dict_cast_type(), Catalog_Namespace::Catalog::getColumnDictDirectory(), Catalog_Namespace::Catalog::getDictionaryToColumnMapping(), ArrowResultSetConverter::initializeColumnBuilder(), initializeVarlenArray(), inline_fixed_encoding_null_val(), anonymous_namespace{RelAlgExecutor.cpp}::insert_one_dict_str(), Geospatial::is_null_point(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), Parser::OperExpr::normalize(), operator!=(), TextConverterFactory::operator()(), operator=(), operator==(), anonymous_namespace{Datum.cpp}::parseInteger(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Catalog_Namespace::Catalog::removeTableFromMap(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), Catalog_Namespace::Catalog::setColumnDictionary(), Catalog_Namespace::Catalog::setColumnSharedDictionary(), to_string(), Analyzer::UOper::toString(), translate_dict_strings(), RelAlgTranslator::translateBinaryGeoFunction(), ThriftSerializers::type_info_to_thrift(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_date_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_time_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_timestamp_mapping(), TransientDictIdVisitor::visitCaseExpr(), TransientDictIdVisitor::visitStringOper(), TransientDictIdVisitor::visitUOper(), and File_Namespace::FileBuffer::writeMetadata().

388 { return comp_param; }
int comp_param
Definition: sqltypes.h:1005
HOST DEVICE EncodingType SQLTypeInfo::get_compression ( ) const
inline

Definition at line 387 of file sqltypes.h.

References compression.

Referenced by Analyzer::Expr::add_cast(), Analyzer::Constant::add_cast(), Analyzer::UOper::add_cast(), Analyzer::CaseExpr::add_cast(), Catalog_Namespace::Catalog::addColumn(), anonymous_namespace{TableFunctionCompilationContext.cpp}::alloc_column(), anonymous_namespace{TableFunctionCompilationContext.cpp}::alloc_column_list(), Parser::InValues::analyze(), Parser::FunctionRef::analyze(), Parser::QuerySpec::analyze_group_by(), CodeGenerator::castArrayPointer(), ChunkIter_get_next(), ChunkIter_get_nth(), import_export::TypedImportBuffer::clear(), spatial_type::NPoints::codegen(), TargetExprCodegen::codegenAggregate(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCmp(), CodeGenerator::codegenCompression(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_string_type(), import_export::ImporterUtils::composeNullPointCoords(), Geospatial::compress_coord(), Geospatial::compress_coords(), Geospatial::compress_null_point(), anonymous_namespace{RelAlgExecutor.cpp}::anonymous_namespace{RelAlgExecutor.cpp}::conditionally_change_arg_to_int_type(), Geospatial::convert_coords(), Encoder::Create(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_decimal_encoder(), Catalog_Namespace::Catalog::createTable(), DatumEqual(), decompress(), Analyzer::Expr::decompress(), Catalog_Namespace::Catalog::delDictionary(), Catalog_Namespace::Catalog::doTruncateTable(), encoding_to_thrift(), RelAlgExecutor::executeSimpleInsert(), extract_int_type_from_datum(), import_export::fill_missing_columns(), ChunkMetadata::fillChunkStats(), anonymous_namespace{ColumnarResults.cpp}::fixed_encoding_nullable_val(), Catalog_Namespace::Catalog::gatherAdditionalInfo(), generate_column_type(), get_array_context_logical_size(), Analyzer::ColumnVar::get_compression(), Geospatial::get_compression_scheme(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), anonymous_namespace{TargetExprBuilder.cpp}::get_initial_agg_val(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), get_logical_type_info(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size_with_encoding(), Parser::get_str_dict_cast_type(), Parser::LocalQueryConnector::getColumnDescriptors(), Catalog_Namespace::Catalog::getColumnDictDirectory(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), import_export::Loader::getStringDict(), ResultSet::getTargetValueFromBufferRowwise(), has_same_itemtype(), Chunk_NS::Chunk::initEncoder(), inline_fixed_encoding_null_val(), inline_int_null_val(), CgenState::inlineIntNull(), is_bytes(), is_column_array(), is_column_list_array(), is_date_in_days(), FixedLengthArrayNoneEncoder::is_null_ignore_not_null(), Geospatial::is_null_point(), is_real_str_or_array(), is_text_encoding_dict(), is_text_encoding_dict_array(), is_unsigned_type(), RangeJoinHashTable::isInnerColCompressed(), ChunkMetadata::isPlaceholder(), Fragmenter_Namespace::isStringVectorData(), ResultSet::makeGeoTargetValue(), ResultSet::makeVarlenTargetValue(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), Parser::OperExpr::normalize(), null_val_bit_pattern(), numeric_type_name(), operator!=(), TextConverterFactory::operator()(), operator=(), operator==(), anonymous_namespace{Datum.cpp}::parseInteger(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Catalog_Namespace::Catalog::removeTableFromMap(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), anonymous_namespace{TableOptimizer.cpp}::set_metadata_from_results(), Chunk_NS::Chunk::setChunkBuffer(), Fragmenter_Namespace::size_of_raw_column(), RelAlgTranslator::translateBinaryGeoFunction(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), import_export::TypedImportBuffer::TypedImportBuffer(), ExpressionRange::typeSupportsRange(), FixedLengthArrayNoneEncoder::update_elem_stats(), ArrayNoneEncoder::update_elem_stats(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), anonymous_namespace{InputMetadata.cpp}::uses_int_meta(), foreign_storage::ParquetDateInSecondsEncoder< NullType >::validate(), ddl_utils::validate_and_set_array_size(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_date_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_decimal_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_floating_point_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_integral_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_none_type_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_string_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_time_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_timestamp_mapping(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

387 { return compression; }
EncodingType compression
Definition: sqltypes.h:1004
std::string SQLTypeInfo::get_compression_name ( ) const
inline

Definition at line 541 of file sqltypes.h.

References comp_name, and compression.

Referenced by to_string(), and Analyzer::UOper::toString().

541 { return comp_name[(int)compression]; }
EncodingType compression
Definition: sqltypes.h:1004
static std::string comp_name[kENCODING_LAST]
Definition: sqltypes.h:1010

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_dimension ( ) const
inline

Definition at line 381 of file sqltypes.h.

References dimension.

Referenced by Catalog_Namespace::Catalog::addColumn(), Analyzer::BinOper::analyze_type_info(), Analyzer::Constant::cast_string(), Analyzer::Constant::cast_to_string(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenTimestamps(), CodeGenerator::codegenDateTruncHighPrecisionTimestamps(), CodeGenerator::codegenExtractHighPrecisionTimestamps(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_numeric_type(), Parser::common_string_type(), Analyzer::BinOper::common_string_type(), Catalog_Namespace::Catalog::createTable(), DatumToString(), Analyzer::Expr::decompress(), Analyzer::Constant::do_cast(), generate_column_type(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), anonymous_namespace{Execute.cpp}::get_hpt_overflow_underflow_safe_scaled_values(), get_logical_type_info(), get_numeric_scalar_scale(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), DateTimeTranslator::getDateTruncConstantValue(), DateTimeTranslator::getExtractFromTimeConstantValue(), is_high_precision_timestamp(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::is_microsecond_precision(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::is_millisecond_precision(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::is_nanosecond_precision(), is_numeric_scalar_auto_castable(), operator!=(), StringOps_Namespace::operator<<(), operator=(), operator==(), parse_numeric(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), StringToDatum(), to_string(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_timestamp_mapping(), and File_Namespace::FileBuffer::writeMetadata().

381 { return dimension; }
int dimension
Definition: sqltypes.h:1000

+ Here is the caller graph for this function:

SQLTypeInfo SQLTypeInfo::get_elem_type ( ) const
inline

Definition at line 956 of file sqltypes.h.

References comp_param, compression, dimension, kARRAY, kCOLUMN, kCOLUMN_LIST, kENCODING_ARRAY, kENCODING_ARRAY_DICT, kENCODING_DICT, kENCODING_NONE, kNULLT, notnull, scale, SQLTypeInfo(), subtype, and type.

Referenced by import_export::TypedImportBuffer::add_value(), import_export::TypedImportBuffer::add_values(), Parser::FunctionRef::analyze(), anonymous_namespace{ResultSetIteration.cpp}::build_array_target_value(), CodeGenerator::codegenArrayBuff(), CodeGenerator::codegenFunctionOperCastArgs(), spatial_type::NPoints::codegenLoads(), spatial_type::NRings::codegenLoads(), ArrayConverterFactory< ELEMENT_FACTORY >::create(), foreign_storage::ParquetEncoder::createMetadata(), DateDaysOverflowValidator::DateDaysOverflowValidator(), DecimalOverflowValidator::DecimalOverflowValidator(), Analyzer::Constant::do_cast(), RelAlgExecutor::executeSimpleInsert(), table_functions::anonymous_namespace{TableFunctionsFactory.cpp}::ext_arg_type_to_type_info_output(), get_bit_width(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), foreign_storage::get_placeholder_metadata(), foreign_storage::Csv::get_placeholder_metadata(), foreign_storage::get_sub_type_column_descriptor(), get_type_name(), getLeafColumnRange(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::getRowGroupMetadata(), getVarlenArrayBufferSize(), foreign_storage::ParquetArrayEncoder::initializeErrorTracking(), initializeVarlenArray(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), is_castable(), is_dict_encoded_type(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), ResultSet::makeVarlenTargetValue(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), import_export::NullArray(), NullAwareValidator< INNER_VALIDATOR >::NullAwareValidator(), ArraysConverterFactory::operator()(), operator<<(), ChunkMetadata::operator==(), Parser::InsertIntoTableAsSelectStmt::populateData(), ResultSetReductionJIT::reduceOneSlot(), ResultSetStorage::reduceOneSlot(), FixedLengthArrayNoneEncoder::resetChunkStats(), ArrayNoneEncoder::resetChunkStats(), foreign_storage::ParquetFixedLengthArrayEncoder::setNullFixedLengthArraySentinel(), import_export::StringToArray(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), import_export::TDatumToArrayDatum(), to_string(), anonymous_namespace{ColumnarResults.cpp}::toBuffer(), Analyzer::Constant::toString(), ThriftSerializers::type_info_to_thrift(), ExpressionRange::typeSupportsRange(), ddl_utils::validate_and_set_array_size(), ddl_utils::anonymous_namespace{DdlUtils.cpp}::validate_literal(), DBHandler::value_to_thrift(), and DBHandler::value_to_thrift_column().

956  {
957  if ((type == kCOLUMN || type == kCOLUMN_LIST) && compression == kENCODING_ARRAY) {
958  return SQLTypeInfo(
960  }
961  if ((type == kCOLUMN || type == kCOLUMN_LIST) &&
963  return SQLTypeInfo(
965  }
966  return SQLTypeInfo(
968  }
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
SQLTypes type
Definition: sqltypes.h:998
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

HOST DEVICE int SQLTypeInfo::get_input_srid ( ) const
inline
int SQLTypeInfo::get_logical_size ( ) const
inline

Definition at line 399 of file sqltypes.h.

References compression, dimension, get_size(), kENCODING_DATE_IN_DAYS, kENCODING_DICT, kENCODING_FIXED, kENCODING_NONE, notnull, scale, subtype, and type.

Referenced by CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastBetweenIntTypesOverflowChecks(), CodeGenerator::codgenAdjustFixedEncNull(), get_agg_initial_val(), get_array_context_logical_size(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size_with_encoding(), get_numeric_scalar_scale(), StorageIOFacility::getRsBufferNoPadding(), inline_int_null_val(), anonymous_namespace{TypedDataAccessors.h}::is_null(), is_numeric_scalar_auto_castable(), is_unsigned_type(), StringDictionaryTranslationMgr::mapSize(), numeric_type_name(), and Fragmenter_Namespace::size_of_raw_column().

399  {
402  return ti.get_size();
403  }
404  if (compression == kENCODING_DICT) {
405  return 4;
406  }
407  return get_size();
408  }
HOST DEVICE int get_size() const
Definition: sqltypes.h:389
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
SQLTypes type
Definition: sqltypes.h:998
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

HOST DEVICE bool SQLTypeInfo::get_notnull ( ) const
inline

Definition at line 386 of file sqltypes.h.

References notnull.

Referenced by import_export::TypedImportBuffer::add_arrow_values(), import_export::TypedImportBuffer::add_value(), import_export::TypedImportBuffer::add_values(), Catalog_Namespace::Catalog::addColumn(), import_export::TypedImportBuffer::addDefaultValues(), Analyzer::BinOper::analyze_type_info(), foreign_storage::OdbcGeospatialEncoder::appendData(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::appendDataTrackErrors(), anonymous_namespace{ResultSetIteration.cpp}::GeoTargetValueBuilder< GEO_SOURCE_TYPE, GeoTargetFetcher >::build(), anonymous_namespace{TableFunctionCompilationContext.cpp}::cast_value(), ChunkIter_get_nth(), ChunkIter_get_nth_point_coords(), StringDictionaryTranslationMgr::codegen(), GroupByAndAggregate::codegenApproxQuantile(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastBetweenIntTypesOverflowChecks(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenDateTruncHighPrecisionTimestamps(), CodeGenerator::codegenDiv(), CodeGenerator::codegenExtractHighPrecisionTimestamps(), CodeGenerator::codegenGeoArrayLoadAndNullcheck(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_numeric_type(), Analyzer::BinOper::common_string_type(), Geospatial::compress_coords(), anonymous_namespace{RelAlgExecutor.cpp}::anonymous_namespace{RelAlgExecutor.cpp}::conditionally_change_arg_to_int_type(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), Catalog_Namespace::Catalog::createTable(), Analyzer::Expr::decompress(), Analyzer::InIntegerSet::deep_copy(), Analyzer::Constant::do_cast(), anonymous_namespace{ResultSetIteration.cpp}::GeoLazyFetchHandler::fetch(), anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::fetch(), get_agg_initial_val(), get_logical_type_info(), get_null_check_suffix(), target_info::get_target_info_impl(), Fragmenter_Namespace::get_var_len_null_array_indexes(), spatial_type::NPoints::getOperand(), Analyzer::anonymous_namespace{Analyzer.cpp}::is_expr_nullable(), FixedLengthArrayNoneEncoder::is_null(), Geospatial::is_null_point(), ResultSet::isNull(), foreign_storage::TextFileBufferParser::isNullDatum(), ArrowResultSetConverter::makeField(), NullAwareValidator< INNER_VALIDATOR >::NullAwareValidator(), operator!=(), operator=(), operator==(), anonymous_namespace{Datum.cpp}::parseInteger(), DBHandler::populateThriftColumnType(), foreign_storage::ParquetArrayEncoder::processLastArray(), anonymous_namespace{TypedDataAccessors.h}::put_null(), anonymous_namespace{TypedDataAccessors.h}::put_null_array(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Executor::reduceResults(), GeoTargetValueSerializer< kPOINT >::serialize(), GeoWktSerializer< kPOINT >::serialize(), GeoTargetValuePtrSerializer< kPOINT >::serialize(), GeoTargetValueSerializer< kMULTIPOINT >::serialize(), GeoWktSerializer< kMULTIPOINT >::serialize(), GeoTargetValuePtrSerializer< kMULTIPOINT >::serialize(), GeoTargetValueSerializer< kLINESTRING >::serialize(), GeoWktSerializer< kLINESTRING >::serialize(), GeoTargetValuePtrSerializer< kLINESTRING >::serialize(), GeoTargetValueSerializer< kMULTILINESTRING >::serialize(), GeoWktSerializer< kMULTILINESTRING >::serialize(), GeoTargetValuePtrSerializer< kMULTILINESTRING >::serialize(), GeoTargetValueSerializer< kPOLYGON >::serialize(), GeoWktSerializer< kPOLYGON >::serialize(), GeoTargetValuePtrSerializer< kPOLYGON >::serialize(), GeoTargetValueSerializer< kMULTIPOLYGON >::serialize(), GeoWktSerializer< kMULTIPOLYGON >::serialize(), GeoTargetValuePtrSerializer< kMULTIPOLYGON >::serialize(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), Fragmenter_Namespace::set_chunk_stats(), anonymous_namespace{ResultSetReductionJIT.cpp}::target_info_key(), to_string(), ThriftSerializers::type_info_to_thrift(), Fragmenter_Namespace::anonymous_namespace{UpdelStorage.cpp}::update_metadata(), ddl_utils::validate_and_set_sparse_encoding(), foreign_storage::ParquetEncoder::validateNullCount(), DBHandler::value_to_thrift_column(), DeepCopyVisitor::visitInIntegerSet(), and File_Namespace::FileBuffer::writeMetadata().

386 { return notnull; }
bool notnull
Definition: sqltypes.h:1003
int32_t SQLTypeInfo::get_numeric_scalar_scale ( ) const
inline

returns integer between 1 and 8 indicating what is roughly equivalent to the logical byte size of a scalar numeric type (including boolean + time types), but with decimals and numerics mapped to the byte size of their dimension (which may vary from the type width), and timestamps, dates and times handled in a relative fashion. Note: this function only takes the scalar numeric types above, and will throw a check for other types.

Definition at line 804 of file sqltypes.h.

References CHECK, get_dimension(), get_logical_size(), kBIGINT, kBOOLEAN, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNUMERIC, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, type, and UNREACHABLE.

Referenced by anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_numeric_argument().

804  {
805  CHECK(type == kBOOLEAN || type == kTINYINT || type == kSMALLINT || type == kINT ||
806  type == kBIGINT || type == kFLOAT || type == kDOUBLE || type == kDECIMAL ||
807  type == kNUMERIC || type == kTIMESTAMP || type == kDATE || type == kTIME);
808  switch (type) {
809  case kBOOLEAN:
810  return 1;
811  case kTINYINT:
812  case kSMALLINT:
813  case kINT:
814  case kBIGINT:
815  case kFLOAT:
816  case kDOUBLE:
817  return get_logical_size();
818  case kDECIMAL:
819  case kNUMERIC:
820  if (get_dimension() > 7) {
821  return 8;
822  } else {
823  return 4;
824  }
825  case kTIMESTAMP:
826  switch (get_dimension()) {
827  case 9:
828  return 8;
829  case 6:
830  return 4;
831  case 3:
832  return 2;
833  case 0:
834  return 1;
835  default:
836  UNREACHABLE();
837  }
838  case kDATE:
839  return 1;
840  case kTIME:
841  return 1;
842  default:
843  UNREACHABLE();
844  return 0;
845  }
846  }
Definition: sqltypes.h:64
#define UNREACHABLE()
Definition: Logger.h:266
int get_logical_size() const
Definition: sqltypes.h:399
Definition: sqltypes.h:68
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
#define CHECK(condition)
Definition: Logger.h:222
SQLTypes type
Definition: sqltypes.h:998
Definition: sqltypes.h:60

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int SQLTypeInfo::get_physical_cols ( ) const
inline

Definition at line 410 of file sqltypes.h.

References kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kPOINT, kPOLYGON, and type.

Referenced by Catalog_Namespace::Catalog::buildColumnsMapUnlocked(), Parser::DropColumnStmt::execute(), import_export::fill_missing_columns(), Catalog_Namespace::Catalog::getAllColumnMetadataForTableImpl(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), and Catalog_Namespace::Catalog::renameColumn().

410  {
411  switch (type) {
412  case kPOINT:
413  return 1; // coords
414  case kMULTIPOINT:
415  return 2; // coords, bounds
416  case kLINESTRING:
417  return 2; // coords, bounds
418  case kMULTILINESTRING:
419  return 3; // coords, linestring_sizes, bounds
420  case kPOLYGON:
421  return 4; // coords, ring_sizes, bounds, render_group
422  case kMULTIPOLYGON:
423  return 5; // coords, ring_sizes, poly_rings, bounds, render_group
424  default:
425  break;
426  }
427  return 0;
428  }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

int SQLTypeInfo::get_physical_coord_cols ( ) const
inline

Definition at line 429 of file sqltypes.h.

References kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kPOINT, kPOLYGON, and type.

Referenced by advance_target_ptr_col_wise(), advance_target_ptr_row_wise(), TargetExprCodegen::codegen(), CodeGenerator::codegenFunctionOperNullArg(), CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), get_slots_for_geo_target(), Analyzer::GeoConstant::makePhysicalConstant(), Analyzer::GeoConstant::physicalCols(), and RelAlgTranslator::translateGeoColumn().

429  {
430  // @TODO dmitri/simon rename this function?
431  // It needs to return the number of extra columns
432  // which need to go through the executor, as opposed
433  // to those which are only needed by CPU for poly
434  // cache building or what-not. For now, we just omit
435  // the Render Group column. If we add Bounding Box
436  // or something this may require rethinking. Perhaps
437  // these two functions need to return an array of
438  // offsets rather than just a number to loop over,
439  // so that executor and non-executor columns can
440  // be mixed.
441  // NOTE(adb): In binding to extension functions, we need to know some pretty specific
442  // type info about each of the physical coords cols for each geo type. I added checks
443  // there to ensure the physical coords col for the geo type match what we expect. If
444  // these values are ever changed, corresponding values in
445  // ExtensionFunctionsBinding.cpp::compute_narrowing_conv_scores and
446  // ExtensionFunctionsBinding.cpp::compute_widening_conv_scores will also need to be
447  // changed.
448  switch (type) {
449  case kPOINT:
450  return 1;
451  case kMULTIPOINT:
452  return 1; // omit bounds
453  case kLINESTRING:
454  return 1; // omit bounds
455  case kMULTILINESTRING:
456  return 2; // omit bounds
457  case kPOLYGON:
458  return 2; // omit bounds, render group
459  case kMULTIPOLYGON:
460  return 3; // omit bounds, render group
461  default:
462  break;
463  }
464  return 0;
465  }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_scale ( ) const
inline

Definition at line 384 of file sqltypes.h.

References scale.

Referenced by Catalog_Namespace::Catalog::addColumn(), Analyzer::BinOper::analyze_type_info(), Analyzer::Constant::cast_number(), Executor::castToFP(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenCmpDecimalConst(), CodeGenerator::codegenDiv(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_numeric_type(), convert_decimal_value_to_scale(), Catalog_Namespace::Catalog::createTable(), DatumToString(), anonymous_namespace{TypedDataAccessors.h}::decimal_to_double(), DecimalOverflowValidator::DecimalOverflowValidator(), Analyzer::Expr::decompress(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_arrow_type(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), get_logical_type_info(), getArrowImportType(), anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), HashJoin::normalizeColumnPair(), operator!=(), StringOps_Namespace::operator<<(), operator=(), operator==(), pair_to_double(), parse_numeric(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), SegmentTree< INPUT_TYPE, AGG_TYPE >::query(), anonymous_namespace{ExpressionRange.cpp}::scale_up_interval_endpoint(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), to_string(), Analyzer::UOper::toString(), ThriftSerializers::type_info_to_thrift(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_decimal_mapping(), DBHandler::value_to_thrift(), DBHandler::value_to_thrift_column(), and File_Namespace::FileBuffer::writeMetadata().

384 { return scale; }

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_size ( ) const
inline

Definition at line 389 of file sqltypes.h.

References size.

Referenced by import_export::TypedImportBuffer::add_value(), Catalog_Namespace::Catalog::addColumn(), import_export::TypedImportBuffer::addDictEncodedString(), ArrayValueConverter< ELEMENT_CONVERTER >::ArrayValueConverter(), Chunk_NS::Chunk::begin_iterator(), anonymous_namespace{CastIR.cpp}::byte_array_cast(), CodeGenerator::castArrayPointer(), Executor::castToFP(), anonymous_namespace{QueryRewrite.cpp}::check_string_id_overflow(), import_export::TypedImportBuffer::clear(), CodeGenerator::codegenAdd(), CodeGenerator::codegenCast(), Executor::codegenFrameBoundExpr(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), CodeGenerator::codgenAdjustFixedEncNull(), WindowFunctionContext::computeNullRangeOfSortedPartition(), anonymous_namespace{RelAlgExecutor.cpp}::anonymous_namespace{RelAlgExecutor.cpp}::conditionally_change_arg_to_int_type(), GroupByAndAggregate::convertNullIfAny(), NumericConverterFactory< SOURCE_TYPE, TARGET_TYPE >::create(), ResultSetLogicalValuesBuilder::create(), DictionaryConverterFactory< TARGET_TYPE >::create(), Encoder::Create(), ArrowForeignStorageBase::createDecimalColumn(), Catalog_Namespace::Catalog::createTable(), decimal_to_int_type(), RelAlgExecutor::executeSimpleInsert(), Fragmenter_Namespace::FixedLenArrayChunkConverter::FixedLenArrayChunkConverter(), get_bit_width(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_dict_index_type(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), get_logical_size(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_physical_type(), foreign_storage::get_placeholder_metadata(), foreign_storage::Csv::get_placeholder_metadata(), anonymous_namespace{TypedDataAccessors.h}::get_scalar(), getArrowImportType(), Parser::LocalQueryConnector::getColumnDescriptors(), foreign_storage::TimestampBoundsValidator< T >::getMinMaxBoundsAsStrings(), foreign_storage::IntegralFixedLengthBoundsValidator< T >::getMinMaxBoundsAsStrings(), foreign_storage::BaseDateBoundsValidator< T, is_in_seconds >::getMinMaxBoundsAsStrings(), foreign_storage::FloatPointValidator< T >::getMinMaxBoundsAsStrings(), Executor::getNumBytesForFetchedRow(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), StorageIOFacility::getRsBufferNoPadding(), import_export::TypedImportBuffer::getStringDictBuffer(), getVarlenArrayBufferSize(), initializeVarlenArray(), inline_fixed_encoding_null_val(), is_unsigned_type(), ColumnFetcher::makeJoinColumn(), import_export::NullArray(), TextConverterFactory::operator()(), operator=(), foreign_storage::ParquetFixedLengthArrayEncoder::ParquetFixedLengthArrayEncoder(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_null(), anonymous_namespace{TypedDataAccessors.h}::put_null_array(), ArrowForeignStorageBase::replaceNullValues(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::resize_values_buffer(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), Fragmenter_Namespace::size_of_raw_column(), string_dict_to_int_type(), import_export::StringToArray(), import_export::TDatumToArrayDatum(), to_string(), anonymous_namespace{ColumnarResults.cpp}::toBuffer(), ThriftSerializers::type_info_to_thrift(), import_export::TypedImportBuffer::TypedImportBuffer(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumns(), ddl_utils::validate_and_set_array_size(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_integral_mapping(), ddl_utils::anonymous_namespace{DdlUtils.cpp}::validate_literal(), foreign_storage::TimestampBoundsValidator< T >::valueWithinBounds(), foreign_storage::IntegralFixedLengthBoundsValidator< T >::valueWithinBounds(), foreign_storage::BaseDateBoundsValidator< T, is_in_seconds >::valueWithinBounds(), foreign_storage::FloatPointValidator< T >::valueWithinBounds(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

389 { return size; }
HOST DEVICE int SQLTypeInfo::get_storage_size ( ) const
inlineprivate

Definition at line 1012 of file sqltypes.h.

References comp_param, compression, dimension, kARRAY, kBIGINT, kBOOLEAN, kCHAR, kCOLUMN, kCOLUMN_LIST, kDATE, kDECIMAL, kDOUBLE, kENCODING_DATE_IN_DAYS, kENCODING_DICT, kENCODING_DIFF, kENCODING_FIXED, kENCODING_GEOINT, kENCODING_NONE, kENCODING_RL, kENCODING_SPARSE, kFLOAT, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kNUMERIC, kPOINT, kPOLYGON, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, and type.

Referenced by set_fixed_size().

1012  {
1013  switch (type) {
1014  case kBOOLEAN:
1015  return sizeof(int8_t);
1016  case kTINYINT:
1017  return sizeof(int8_t);
1018  case kSMALLINT:
1019  switch (compression) {
1020  case kENCODING_NONE:
1021  return sizeof(int16_t);
1022  case kENCODING_FIXED:
1023  case kENCODING_SPARSE:
1024  return comp_param / 8;
1025  case kENCODING_RL:
1026  case kENCODING_DIFF:
1027  break;
1028  default:
1029  assert(false);
1030  }
1031  break;
1032  case kINT:
1033  switch (compression) {
1034  case kENCODING_NONE:
1035  return sizeof(int32_t);
1036  case kENCODING_FIXED:
1037  case kENCODING_SPARSE:
1038  case kENCODING_GEOINT:
1039  return comp_param / 8;
1040  case kENCODING_RL:
1041  case kENCODING_DIFF:
1042  break;
1043  default:
1044  assert(false);
1045  }
1046  break;
1047  case kBIGINT:
1048  case kNUMERIC:
1049  case kDECIMAL:
1050  switch (compression) {
1051  case kENCODING_NONE:
1052  return sizeof(int64_t);
1053  case kENCODING_FIXED:
1054  case kENCODING_SPARSE:
1055  return comp_param / 8;
1056  case kENCODING_RL:
1057  case kENCODING_DIFF:
1058  break;
1059  default:
1060  assert(false);
1061  }
1062  break;
1063  case kFLOAT:
1064  switch (compression) {
1065  case kENCODING_NONE:
1066  return sizeof(float);
1067  case kENCODING_FIXED:
1068  case kENCODING_RL:
1069  case kENCODING_DIFF:
1070  case kENCODING_SPARSE:
1071  assert(false);
1072  break;
1073  default:
1074  assert(false);
1075  }
1076  break;
1077  case kDOUBLE:
1078  switch (compression) {
1079  case kENCODING_NONE:
1080  return sizeof(double);
1081  case kENCODING_FIXED:
1082  case kENCODING_RL:
1083  case kENCODING_DIFF:
1084  case kENCODING_SPARSE:
1085  assert(false);
1086  break;
1087  default:
1088  assert(false);
1089  }
1090  break;
1091  case kTIMESTAMP:
1092  case kTIME:
1093  case kINTERVAL_DAY_TIME:
1094  case kINTERVAL_YEAR_MONTH:
1095  case kDATE:
1096  switch (compression) {
1097  case kENCODING_NONE:
1098  return sizeof(int64_t);
1099  case kENCODING_FIXED:
1100  if (type == kTIMESTAMP && dimension > 0) {
1101  assert(false); // disable compression for timestamp precisions
1102  }
1103  return comp_param / 8;
1104  case kENCODING_RL:
1105  case kENCODING_DIFF:
1106  case kENCODING_SPARSE:
1107  assert(false);
1108  break;
1110  switch (comp_param) {
1111  case 0:
1112  return 4; // Default date encoded in days is 32 bits
1113  case 16:
1114  case 32:
1115  return comp_param / 8;
1116  default:
1117  assert(false);
1118  break;
1119  }
1120  default:
1121  assert(false);
1122  }
1123  break;
1124  case kTEXT:
1125  case kVARCHAR:
1126  case kCHAR:
1127  if (compression == kENCODING_DICT) {
1128  return sizeof(int32_t); // @TODO(wei) must check DictDescriptor
1129  }
1130  break;
1131  case kARRAY:
1132  // TODO: return size for fixlen arrays?
1133  break;
1134  case kPOINT:
1135  case kMULTIPOINT:
1136  case kLINESTRING:
1137  case kMULTILINESTRING:
1138  case kPOLYGON:
1139  case kMULTIPOLYGON:
1140  case kCOLUMN:
1141  case kCOLUMN_LIST:
1142  break;
1143  default:
1144  break;
1145  }
1146  return -1;
1147  }
Definition: sqltypes.h:64
EncodingType compression
Definition: sqltypes.h:1004
Definition: sqltypes.h:67
Definition: sqltypes.h:68
Definition: sqltypes.h:56
SQLTypes type
Definition: sqltypes.h:998
Definition: sqltypes.h:60
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the caller graph for this function:

HOST DEVICE SQLTypes SQLTypeInfo::get_subtype ( ) const
inline

Definition at line 380 of file sqltypes.h.

References subtype.

Referenced by import_export::TypedImportBuffer::add_value(), import_export::TypedImportBuffer::add_values(), Catalog_Namespace::Catalog::addColumn(), anonymous_namespace{CastIR.cpp}::byte_array_cast(), import_export::TypedImportBuffer::clear(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), anonymous_namespace{TableFunctionCompilationContext.cpp}::columnTypeRequiresCasting(), Encoder::Create(), Catalog_Namespace::Catalog::createTable(), Analyzer::Expr::decompress(), import_export::fill_missing_columns(), generate_column_type(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_arrow_type(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), get_logical_type_info(), ColumnDescriptor::getDefaultValueLiteral(), import_export::Loader::getStringDict(), has_same_itemtype(), import_export::Importer::importGDALRaster(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), FixedLengthArrayNoneEncoder::is_null_ignore_not_null(), operator!=(), operator=(), operator==(), import_export::TypedImportBuffer::pop_value(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), foreign_storage::ParquetRowGroupReader::readAndValidateRowGroup(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), RelAlgTranslator::translateArrayFunction(), RelAlgTranslator::translateBinaryGeoFunction(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateTernaryGeoFunction(), RelAlgTranslator::translateUnaryGeoFunction(), ThriftSerializers::type_info_to_thrift(), type_to_thrift(), import_export::TypedImportBuffer::TypedImportBuffer(), FixedLengthArrayNoneEncoder::update_elem_stats(), ArrayNoneEncoder::update_elem_stats(), ddl_utils::validate_and_set_date_encoding(), ddl_utils::validate_and_set_fixed_encoding(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

380 { return subtype; }
SQLTypes subtype
Definition: sqltypes.h:999

+ Here is the caller graph for this function:

HOST DEVICE SQLTypes SQLTypeInfo::get_type ( ) const
inline

Definition at line 379 of file sqltypes.h.

References type.

Referenced by import_export::TypedImportBuffer::add_arrow_values(), import_export::TypedImportBuffer::add_value(), import_export::TypedImportBuffer::add_values(), Catalog_Namespace::Catalog::addColumn(), import_export::TypedImportBuffer::addDefaultValues(), Parser::ArrayLiteral::analyze(), Parser::FunctionRef::analyze(), Analyzer::BinOper::analyze_type_info(), append_datum(), bind_function(), WindowFunctionContext::buildAggregationTreeForPartition(), Executor::canSkipFragmentForFpQual(), Analyzer::Constant::cast_number(), Analyzer::Constant::cast_string(), Analyzer::Constant::cast_to_string(), CodeGenerator::castArrayPointer(), anonymous_namespace{IRCodegen.cpp}::check_valid_join_qual(), import_export::TypedImportBuffer::clear(), StringDictionaryTranslationMgr::codegen(), TargetExprCodegen::codegenAggregate(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFunctionOper(), CodeGenerator::codegenGeoArrayLoadAndNullcheck(), CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenIsNullNumber(), CodeGenerator::codegenPerRowStringOper(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_numeric_type(), Analyzer::BinOper::common_string_type(), Geospatial::compress_coords(), WindowFunctionContext::computeNullRangeOfSortedPartition(), anonymous_namespace{RelAlgExecutor.cpp}::anonymous_namespace{RelAlgExecutor.cpp}::conditionally_change_arg_to_int_type(), import_export::TypedImportBuffer::convert_arrow_val_to_import_buffer(), shared::convert_temporal_to_iso_format(), TargetValueConverterFactory::create(), Encoder::Create(), Catalog_Namespace::Catalog::createTable(), Analyzer::Datum_equal(), DatumEqual(), DatumToString(), decompress(), Analyzer::Expr::decompress(), Analyzer::Constant::deep_copy(), Analyzer::Constant::do_cast(), RelAlgExecutor::executeSimpleInsert(), Parser::anonymous_namespace{ParserNode.cpp}::expr_is_null(), extract_fp_type_from_datum(), extract_int_type_from_datum(), anonymous_namespace{ResultSetIteration.cpp}::GeoLazyFetchHandler::fetch(), anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::fetch(), import_export::fill_missing_columns(), ChunkMetadata::fillChunkStats(), DBHandler::fillGeoColumns(), anonymous_namespace{WindowContext.cpp}::fp_comparator(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), generate_column_type(), Analyzer::GeoConstant::GeoConstant(), get_bit_width(), anonymous_namespace{PerfectJoinHashTable.cpp}::get_bucketized_hash_entry_info(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_dict_index_type(), ExtensionFunctionsWhitelist::get_ext_funcs(), get_logical_type_info(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size_with_encoding(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_physical_type(), anonymous_namespace{TypedDataAccessors.h}::get_scalar(), import_export::anonymous_namespace{Importer.cpp}::get_type_for_datum(), anonymous_namespace{Datum.cpp}::get_type_for_datum(), anonymous_namespace{WindowFunctionIR.cpp}::get_window_agg_name(), getArrowImportType(), import_export::TypedImportBuffer::getAsBytes(), EmbeddedDatabase::CursorImpl::getColType(), import_export::TypedImportBuffer::getElementSize(), getExpressionRange(), Geospatial::GeoTypesFactory::getGeoColumns(), PerfectJoinHashTable::getHashJoinArgs(), Geospatial::GeoTypesFactory::getNullGeoColumns(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), StorageIOFacility::getRsBufferNoPadding(), import_export::Loader::getStringDict(), Analyzer::ColumnVar::group_predicates(), foreign_storage::GeospatialEncoder::hasBoundsColumn(), foreign_storage::GeospatialEncoder::hasPolyRingsColumn(), foreign_storage::GeospatialEncoder::hasRenderGroupColumn(), foreign_storage::GeospatialEncoder::hasRingSizesColumn(), import_export::Importer::importDelimited(), import_export::Importer::importGDALGeo(), import_export::Importer::importGDALRaster(), Chunk_NS::Chunk::initEncoder(), inline_fp_null_val(), inline_int_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), CgenState::inlineFpNull(), CgenState::inlineIntNull(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_geo_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_scalar_column(), is_castable(), Geospatial::is_null_point(), Analyzer::anonymous_namespace{Analyzer.cpp}::is_null_value(), is_numeric_scalar_auto_castable(), anonymous_namespace{TargetExprBuilder.cpp}::is_varlen_projection(), ChunkMetadata::isPlaceholder(), anonymous_namespace{ScalarCodeGenerator.cpp}::llvm_type_from_sql(), make_fp_constant(), ResultSet::makeGeoTargetValue(), anonymous_namespace{RelAlgTranslator.cpp}::makeNumericConstant(), ResultSet::makeVarlenTargetValue(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_numeric_argument(), anonymous_namespace{WindowExpressionRewrite.cpp}::matches_gt_bigint_zero(), need_patch_unnest_double(), Parser::CaseExpr::normalize(), HashJoin::normalizeColumnPair(), null_val_bit_pattern(), numeric_type_name(), operator!=(), StringOps_Namespace::operator<<(), operator=(), operator==(), pair_to_double(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), import_export::TypedImportBuffer::pop_value(), populate_TColumn(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), foreign_storage::GeospatialEncoder::processGeoElement(), foreign_storage::TextFileBufferParser::processInvalidGeoColumn(), foreign_storage::GeospatialEncoder::processNullGeoElement(), anonymous_namespace{TypedDataAccessors.h}::put_null(), anonymous_namespace{TypedDataAccessors.h}::put_null_array(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), ArrowForeignStorageBase::read(), ArrowForeignStorageBase::replaceNullValues(), Catalog_Namespace::Catalog::serializeTableJsonUnlocked(), ddl_utils::set_default_encoding(), import_export::Importer::set_geo_physical_import_buffer(), import_export::Importer::set_geo_physical_import_buffer_columnar(), anonymous_namespace{TableOptimizer.cpp}::set_metadata_from_results(), Analyzer::Constant::set_null_value(), Chunk_NS::Chunk::setChunkBuffer(), Fragmenter_Namespace::size_of_raw_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), StringToDatum(), takes_float_argument(), import_export::TDatumToDatum(), anonymous_namespace{ColumnarResults.cpp}::toBuffer(), Analyzer::Constant::toString(), RelAlgTranslator::translateBinaryGeoFunction(), RelAlgTranslator::translateGeoColumn(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), RelAlgTranslator::translateGeoOverlapsOper(), RelAlgTranslator::translateTernaryGeoFunction(), RelAlgTranslator::translateUnaryGeoFunction(), ArrowForeignStorageBase::tryZeroCopy(), ThriftSerializers::type_info_to_thrift(), type_to_thrift(), import_export::TypedImportBuffer::TypedImportBuffer(), ddl_utils::validate_and_set_date_encoding(), ddl_utils::validate_and_set_fixed_encoding(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_date_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_floating_point_mapping(), ddl_utils::anonymous_namespace{DdlUtils.cpp}::validate_literal(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_none_type_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_time_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_timestamp_mapping(), foreign_storage::GeospatialEncoder::validateChunksSizing(), foreign_storage::GeospatialEncoder::validateMetadataSizing(), DBHandler::value_to_thrift(), DBHandler::value_to_thrift_column(), anonymous_namespace{WindowExpressionRewrite.cpp}::window_sum_and_count_match(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

379 { return type; }
SQLTypes type
Definition: sqltypes.h:998
std::string SQLTypeInfo::get_type_name ( ) const
inline

Definition at line 503 of file sqltypes.h.

References CHECK_LT, dimension, get_elem_type(), get_output_srid(), IS_GEO, kARRAY, kCOLUMN, kCOLUMN_LIST, kDECIMAL, kNUMERIC, kSQLTYPE_LAST, kTIMESTAMP, scale, size, subtype, to_string(), type, and type_name.

Referenced by Analyzer::Expr::add_cast(), Analyzer::BinOper::analyze_type_info(), anonymous_namespace{TableFunctionCompilationContext.cpp}::cast_value(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCastToFp(), Analyzer::BinOper::common_numeric_type(), TargetValueConverterFactory::create(), anonymous_namespace{ExternalExecutor.cpp}::create_table_schema(), anonymous_namespace{ArrowImporter.h}::data_conversion_error(), Analyzer::Datum_equal(), DatumToString(), Analyzer::Constant::do_cast(), Analyzer::GeoConstant::GeoConstant(), get_agg_type(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_arrow_type(), getArrowImportType(), Data_Namespace::AbstractBuffer::initEncoder(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), ResultSet::makeGeoTargetValue(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), HashJoin::normalizeColumnPair(), operator<<(), pair_to_double(), anonymous_namespace{Datum.cpp}::parseFloatAsInteger(), anonymous_namespace{Datum.cpp}::parseInteger(), Parser::InsertIntoTableAsSelectStmt::populateData(), Fragmenter_Namespace::size_of_raw_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), StringToDatum(), anonymous_namespace{ResultSetReductionJIT.cpp}::target_info_key(), RexAgg::toHash(), anonymous_namespace{Datum.cpp}::toString(), Analyzer::ColumnVar::toString(), Analyzer::UOper::toString(), RexAgg::toString(), anonymous_namespace{ArrowImporter.h}::type_conversion_error(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_allowed_mapping(), and ScalarExprToSql::visitUOper().

503  {
504  if (IS_GEO(type)) {
505  std::string srid_string = "";
506  if (get_output_srid() > 0) {
507  srid_string = ", " + std::to_string(get_output_srid());
508  }
509  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
510  return type_name[static_cast<int>(subtype)] + "(" +
511  type_name[static_cast<int>(type)] + srid_string + ")";
512  }
513  std::string ps = "";
514  if (type == kDECIMAL || type == kNUMERIC) {
515  ps = "(" + std::to_string(dimension) + "," + std::to_string(scale) + ")";
516  } else if (type == kTIMESTAMP) {
517  ps = "(" + std::to_string(dimension) + ")";
518  }
519  if (type == kARRAY) {
520  auto elem_ti = get_elem_type();
521  auto num_elems = (size > 0) ? std::to_string(size / elem_ti.get_size()) : "";
522  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
523  return elem_ti.get_type_name() + ps + "[" + num_elems + "]";
524  }
525  if (type == kCOLUMN) {
526  auto elem_ti = get_elem_type();
527  auto num_elems =
528  (size > 0) ? "[" + std::to_string(size / elem_ti.get_size()) + "]" : "";
529  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
530  return "COLUMN<" + elem_ti.get_type_name() + ps + ">" + num_elems;
531  }
532  if (type == kCOLUMN_LIST) {
533  auto elem_ti = get_elem_type();
534  auto num_elems =
535  (size > 0) ? "[" + std::to_string(size / elem_ti.get_size()) + "]" : "";
536  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
537  return "COLUMN_LIST<" + elem_ti.get_type_name() + ps + ">" + num_elems;
538  }
539  return type_name[static_cast<int>(type)] + ps;
540  }
std::string to_string(char const *&&v)
static std::string type_name[kSQLTYPE_LAST]
Definition: sqltypes.h:1009
SQLTypes subtype
Definition: sqltypes.h:999
#define CHECK_LT(x, y)
Definition: Logger.h:232
SQLTypes type
Definition: sqltypes.h:998
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:956
#define IS_GEO(T)
Definition: sqltypes.h:298
int dimension
Definition: sqltypes.h:1000
HOST DEVICE int get_output_srid() const
Definition: sqltypes.h:385

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::has_bounds ( ) const
inline

Definition at line 466 of file sqltypes.h.

References kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kPOLYGON, and type.

Referenced by RelAlgTranslator::translateGeoColumn(), RelAlgTranslator::translateGeoLiteral(), and RelAlgTranslator::translateUnaryGeoFunction().

466  {
467  switch (type) {
468  case kMULTIPOINT:
469  case kLINESTRING:
470  case kMULTILINESTRING:
471  case kPOLYGON:
472  case kMULTIPOLYGON:
473  return true;
474  default:
475  break;
476  }
477  return false;
478  }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::has_render_group ( ) const
inline

Definition at line 479 of file sqltypes.h.

References kMULTIPOLYGON, kPOLYGON, and type.

Referenced by RelAlgTranslator::translateGeoColumn().

479  {
480  switch (type) {
481  case kPOLYGON:
482  case kMULTIPOLYGON:
483  return true;
484  default:
485  break;
486  }
487  return false;
488  }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::has_same_itemtype ( const SQLTypeInfo other) const
inline

Definition at line 646 of file sqltypes.h.

References compression, get_compression(), get_subtype(), is_column(), is_column_list(), kENCODING_ARRAY, kENCODING_ARRAY_DICT, and subtype.

646  {
647  if ((is_column() || is_column_list()) &&
648  (other.is_column() || other.is_column_list())) {
649  return subtype == other.get_subtype() &&
651  compression == other.get_compression());
652  }
653  return subtype == other.get_subtype();
654  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:380
SQLTypes subtype
Definition: sqltypes.h:999
EncodingType compression
Definition: sqltypes.h:1004
bool is_column() const
Definition: sqltypes.h:588
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
bool is_column_list() const
Definition: sqltypes.h:589

+ Here is the call graph for this function:

template<typename... Types>
bool SQLTypeInfo::is_any ( Types...  types) const
inline

Definition at line 572 of file sqltypes.h.

References type.

Referenced by Analyzer::Constant::do_cast(), and anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange().

572  {
573  return (... || (types == type));
574  }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_array ( ) const
inline

Definition at line 583 of file sqltypes.h.

References kARRAY, and type.

Referenced by anonymous_namespace{ResultSetIteration.cpp}::build_array_target_value(), anonymous_namespace{CastIR.cpp}::byte_array_cast(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenHoistedConstantsPlaceholders(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_array_encoder(), foreign_storage::ParquetEncoder::createMetadata(), Catalog_Namespace::Catalog::createTable(), DateDaysOverflowValidator::DateDaysOverflowValidator(), DecimalOverflowValidator::DecimalOverflowValidator(), Analyzer::Constant::do_cast(), get_buffer_name(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), foreign_storage::get_placeholder_metadata(), foreign_storage::Csv::get_placeholder_metadata(), Parser::LocalQueryConnector::getColumnDescriptors(), ColumnDescriptor::getDefaultValueLiteral(), getLeafColumnRange(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::getRowGroupMetadata(), ResultSet::getTargetValueFromBufferRowwise(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::getUpdatedStats(), getVarlenArrayBufferSize(), CodeGenerator::hashJoinLhs(), ArrowResultSetConverter::initializeColumnBuilder(), initializeVarlenArray(), is_buffer(), is_dict_encoded_type(), is_real_str_or_array(), Fragmenter_Namespace::isDatumVectorData(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), ResultSet::makeVarlenTargetValue(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), CodeGenerator::needCastForHashJoinLhs(), Executor::needLinearizeAllFragments(), null_val_bit_pattern(), NullAwareValidator< INNER_VALIDATOR >::NullAwareValidator(), operator<<(), ChunkMetadata::operator==(), Analyzer::Constant::operator==(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), foreign_storage::ParquetRowGroupReader::readAndValidateRowGroup(), Catalog_Namespace::Catalog::setColumnDictionary(), anonymous_namespace{LogicalIR.cpp}::should_defer_eval(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), anonymous_namespace{ColumnarResults.cpp}::toBuffer(), Analyzer::Constant::toString(), ThriftSerializers::type_info_to_thrift(), ExpressionRange::typeSupportsRange(), foreign_storage::update_stats(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_array_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_max_repetition_and_definition_level(), DBHandler::value_to_thrift(), and DBHandler::value_to_thrift_column().

583 { return type == kARRAY; } // Array
SQLTypes type
Definition: sqltypes.h:998
bool SQLTypeInfo::is_boolean ( ) const
inline

Definition at line 582 of file sqltypes.h.

References kBOOLEAN, and type.

Referenced by Analyzer::BinOper::analyze_type_info(), CodeGenerator::castArrayPointer(), CodeGenerator::codegenCast(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), Analyzer::BinOper::common_numeric_type(), WindowFunctionContext::computeNullRangeOfSortedPartition(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), Analyzer::Constant::do_cast(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), anonymous_namespace{Execute.cpp}::inline_null_val(), anonymous_namespace{RelAlgTranslator.cpp}::is_agg_supported_for_type(), Fragmenter_Namespace::is_integral(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::isIntegralType(), Parser::CaseExpr::normalize(), CodeGenerator::NullCheckCodegen::NullCheckCodegen(), numeric_type_name(), Executor::reduceResults(), ArrowForeignStorageBase::replaceNullValues(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), ExpressionRange::typeSupportsRange(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), and anonymous_namespace{InputMetadata.cpp}::uses_int_meta().

582 { return type == kBOOLEAN; }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_buffer ( ) const
inline

Definition at line 607 of file sqltypes.h.

References is_array(), is_bytes(), is_column(), and is_column_list().

Referenced by anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type().

607  {
608  return is_array() || is_column() || is_column_list() || is_bytes();
609  }
bool is_column() const
Definition: sqltypes.h:588
bool is_bytes() const
Definition: sqltypes.h:598
bool is_column_list() const
Definition: sqltypes.h:589
bool is_array() const
Definition: sqltypes.h:583

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_bytes ( ) const
inline

Definition at line 598 of file sqltypes.h.

References get_compression(), kENCODING_NONE, kTEXT, and type.

Referenced by get_buffer_name(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), and is_buffer().

598  {
599  return type == kTEXT && get_compression() == kENCODING_NONE;
600  }
Definition: sqltypes.h:67
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_castable ( const SQLTypeInfo new_type_info) const
inline

Definition at line 695 of file sqltypes.h.

References get_elem_type(), get_type(), is_castable(), is_number(), is_string(), is_time(), kARRAY, kBOOLEAN, kCOLUMN, kCOLUMN_LIST, kDATE, kTIME, kTIMESTAMP, and type.

Referenced by Analyzer::Expr::add_cast(), and is_castable().

695  {
696  // can always cast between the same type but different precision/scale/encodings
697  if (type == new_type_info.get_type()) {
698  return true;
699  // can always cast between strings
700  } else if (is_string() && new_type_info.is_string()) {
701  return true;
702  } else if (is_string() && !new_type_info.is_string()) {
703  return false;
704  } else if (!is_string() && new_type_info.is_string()) {
705  return false;
706  // can cast between numbers
707  } else if (is_number() && new_type_info.is_number()) {
708  return true;
709  // can cast from timestamp or date to number (epoch)
710  } else if ((type == kTIMESTAMP || type == kDATE) && new_type_info.is_number()) {
711  return true;
712  // can cast from number (epoch) to timestamp, date, or time
713  } else if (is_number() && new_type_info.is_time()) {
714  return true;
715  // can cast from date to timestamp
716  } else if (type == kDATE && new_type_info.get_type() == kTIMESTAMP) {
717  return true;
718  } else if (type == kTIMESTAMP && new_type_info.get_type() == kDATE) {
719  return true;
720  } else if (type == kTIMESTAMP && new_type_info.get_type() == kTIME) {
721  return true;
722  } else if (type == kBOOLEAN && new_type_info.is_number()) {
723  return true;
724  } else if (type == kARRAY && new_type_info.get_type() == kARRAY) {
725  return get_elem_type().is_castable(new_type_info.get_elem_type());
726  } else if (type == kCOLUMN && new_type_info.get_type() == kCOLUMN) {
727  return get_elem_type().is_castable(new_type_info.get_elem_type());
728  } else if (type == kCOLUMN_LIST && new_type_info.get_type() == kCOLUMN_LIST) {
729  return get_elem_type().is_castable(new_type_info.get_elem_type());
730  } else {
731  return false;
732  }
733  }
Definition: sqltypes.h:64
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:379
bool is_number() const
Definition: sqltypes.h:580
bool is_time() const
Definition: sqltypes.h:581
bool is_castable(const SQLTypeInfo &new_type_info) const
Definition: sqltypes.h:695
Definition: sqltypes.h:68
SQLTypes type
Definition: sqltypes.h:998
bool is_string() const
Definition: sqltypes.h:575
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:956

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_column ( ) const
inline

Definition at line 588 of file sqltypes.h.

References kCOLUMN, and type.

Referenced by anonymous_namespace{TableFunctionCompilationContext.cpp}::columnTypeRequiresCasting(), get_buffer_name(), has_same_itemtype(), is_buffer(), and DBHandler::value_to_thrift_column().

588 { return type == kCOLUMN; } // Column
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_column_array ( ) const
inline

Definition at line 590 of file sqltypes.h.

References get_compression(), kCOLUMN, kENCODING_ARRAY, kENCODING_ARRAY_DICT, and type.

590  {
591  const auto c = get_compression();
592  return type == kCOLUMN && (c == kENCODING_ARRAY || c == kENCODING_ARRAY_DICT);
593  } // ColumnArray
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

bool SQLTypeInfo::is_column_list ( ) const
inline

Definition at line 589 of file sqltypes.h.

References kCOLUMN_LIST, and type.

Referenced by has_same_itemtype(), and is_buffer().

589 { return type == kCOLUMN_LIST; } // ColumnList
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_column_list_array ( ) const
inline

Definition at line 594 of file sqltypes.h.

References get_compression(), kCOLUMN_LIST, kENCODING_ARRAY, kENCODING_ARRAY_DICT, and type.

594  {
595  const auto c = get_compression();
596  return type == kCOLUMN_LIST && (c == kENCODING_ARRAY || c == kENCODING_ARRAY_DICT);
597  } // ColumnList of ColumnArray
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

bool SQLTypeInfo::is_date_in_days ( ) const
inline

Definition at line 973 of file sqltypes.h.

References get_compression(), kDATE, kENCODING_DATE_IN_DAYS, and type.

Referenced by DateDaysOverflowValidator::DateDaysOverflowValidator(), get_join_column_type_kind(), Parser::LocalQueryConnector::getColumnDescriptors(), ResultSet::makeTargetValue(), and DBHandler::populateThriftColumnType().

973  {
974  if (type == kDATE) {
975  const auto comp_type = get_compression();
976  if (comp_type == kENCODING_DATE_IN_DAYS) {
977  return true;
978  }
979  }
980  return false;
981  }
Definition: sqltypes.h:68
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_decimal ( ) const
inline

Definition at line 578 of file sqltypes.h.

References kDECIMAL, kNUMERIC, and type.

Referenced by Analyzer::Constant::add_cast(), import_export::TypedImportBuffer::add_value(), Analyzer::BinOper::analyze_type_info(), anonymous_namespace{RelAlgTranslator.cpp}::build_type_info(), WindowFunctionContext::buildAggregationTreeForPartition(), CodeGenerator::checkExpressionRanges(), CodeGenerator::codegenAdd(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFunctionOperWithCustomTypeHandling(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), WindowFunctionContext::computeNullRangeOfSortedPartition(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), DecimalOverflowValidator::DecimalOverflowValidator(), extract_int_type_from_datum(), get_bit_width(), import_export::anonymous_namespace{Importer.cpp}::get_type_for_datum(), anonymous_namespace{Datum.cpp}::get_type_for_datum(), inline_fixed_encoding_null_val(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::isIntegralType(), ChunkMetadata::isPlaceholder(), HashJoin::normalizeColumnPair(), numeric_type_name(), pair_to_double(), import_export::TypedImportBuffer::pop_value(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), SegmentTree< INPUT_TYPE, AGG_TYPE >::query(), Executor::reduceResults(), ddl_utils::set_default_encoding(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), import_export::TDatumToDatum(), RelAlgTranslator::translateFunction(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumnMetadata(), anonymous_namespace{InputMetadata.cpp}::uses_int_meta(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_decimal_mapping(), DBHandler::value_to_thrift(), DBHandler::value_to_thrift_column(), and anonymous_namespace{ExpressionRewrite.cpp}::ConstantFoldingVisitor::visitBinOper().

578 { return type == kDECIMAL || type == kNUMERIC; }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_dict_encoded_string ( ) const
inline

Definition at line 627 of file sqltypes.h.

References compression, is_string(), and kENCODING_DICT.

Referenced by ArrowResultSetConverter::append(), append_datum(), RelLogicalUnion::checkForMatchingMetaInfoTypes(), Parser::common_string_type(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_arrow_type(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_dict_index_type(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size(), import_export::anonymous_namespace{Importer.cpp}::get_type_for_datum(), anonymous_namespace{Datum.cpp}::get_type_for_datum(), StorageIOFacility::getRsBufferNoPadding(), ArrowResultSetConverter::initializeColumnBuilder(), is_dict_encoded_type(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), CodeGenerator::NullCheckCodegen::NullCheckCodegen(), anonymous_namespace{ResultSet.cpp}::IsDictEncodedStr::operator()(), ArrowForeignStorageBase::read(), string_dict_to_int_type(), ArrowForeignStorageBase::tryZeroCopy(), and Fragmenter_Namespace::InsertOrderFragmenter::updateChunkStats().

627  {
628  return is_string() && compression == kENCODING_DICT;
629  }
EncodingType compression
Definition: sqltypes.h:1004
bool is_string() const
Definition: sqltypes.h:575

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_dict_encoded_type ( ) const
inline

Definition at line 639 of file sqltypes.h.

References get_elem_type(), is_array(), and is_dict_encoded_string().

Referenced by Catalog_Namespace::Catalog::addToColumnMap(), anonymous_namespace{ArrowResultSetConverter.cpp}::get_arrow_type(), ArrowResultSetConverter::initializeColumnBuilder(), Executor::needLinearizeAllFragments(), Catalog_Namespace::Catalog::removeFromColumnMap(), and foreign_storage::anonymous_namespace{AbstractTextFileDataWrapper.cpp}::skip_metadata_scan().

639  {
640  return is_dict_encoded_string() ||
642  }
bool is_dict_encoded_string() const
Definition: sqltypes.h:627
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:956
bool is_array() const
Definition: sqltypes.h:583

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_dict_intersection ( ) const
inline

Definition at line 644 of file sqltypes.h.

References dict_intersection.

Referenced by CodeGenerator::codegenCastFromString().

644 { return dict_intersection; }
bool dict_intersection
Definition: sqltypes.h:1007

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_fixlen_array ( ) const
inline

Definition at line 585 of file sqltypes.h.

References kARRAY, size, and type.

Referenced by foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_array_encoder(), Chunk_NS::Chunk::createChunkBuffer(), Chunk_NS::Chunk::getChunkBuffer(), Chunk_NS::Chunk::initEncoder(), is_varlen_indeed(), Chunk_NS::Chunk::isChunkOnDevice(), and Chunk_NS::Chunk::setChunkBuffer().

585 { return type == kARRAY && size > 0; }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_fp ( ) const
inline

Definition at line 579 of file sqltypes.h.

References kDOUBLE, kFLOAT, and type.

Referenced by Analyzer::Constant::add_cast(), WindowFunctionContext::buildAggregationTreeForPartition(), Executor::castToFP(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFixedLengthColVarInWindow(), CodeGenerator::codegenIsNullNumber(), WindowFunctionContext::computeNullRangeOfSortedPartition(), GroupByAndAggregate::convertNullIfAny(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), get_agg_initial_val(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size(), anonymous_namespace{WindowFunctionIR.cpp}::get_null_value_by_size_with_encoding(), foreign_storage::FloatPointValidator< T >::getMinMaxBoundsAsStrings(), StorageIOFacility::getRsBufferNoPadding(), inline_fp_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), CgenState::inlineFpNull(), CgenState::inlineNull(), is_numeric_scalar_auto_castable(), is_supported_type_for_extern_execution(), need_patch_unnest_double(), null_val_bit_pattern(), CodeGenerator::NullCheckCodegen::NullCheckCodegen(), numeric_type_name(), Executor::reduceResults(), ArrowForeignStorageBase::replaceNullValues(), anonymous_namespace{ColumnarResults.cpp}::toBuffer(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_floating_point_mapping(), foreign_storage::ParquetFixedLengthEncoder< V, T, NullType >::validateIntegralOrFloatingPointMetadata(), foreign_storage::ParquetFixedLengthEncoder< V, T, NullType >::validateIntegralOrFloatingPointValue(), and foreign_storage::FloatPointValidator< T >::valueWithinBounds().

579 { return type == kFLOAT || type == kDOUBLE; }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_geometry ( ) const
inline

Definition at line 587 of file sqltypes.h.

References IS_GEO, and type.

Referenced by Analyzer::GeoOperator::add_cast(), advance_slot(), advance_target_ptr_col_wise(), advance_target_ptr_row_wise(), Parser::InsertStmt::analyze(), Catalog_Namespace::Catalog::buildColumnsMapUnlocked(), TargetExprCodegen::codegen(), GroupByAndAggregate::codegenAggArg(), CodeGenerator::codegenCmp(), CodeGenerator::codegenColVar(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenHoistedConstantsPlaceholders(), Catalog_Namespace::Catalog::createTable(), Analyzer::Constant::deep_copy(), Analyzer::Constant::do_cast(), Parser::AddColumnStmt::execute(), import_export::fill_missing_columns(), ColumnDescriptor::getDefaultValueLiteral(), spatial_type::NPoints::getOperand(), ResultSet::getTargetValueFromBufferColwise(), ResultSet::getTargetValueFromBufferRowwise(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_geo_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_scalar_column(), isGeometry(), Fragmenter_Namespace::isStringVectorData(), foreign_storage::ParquetDataWrapper::loadBuffersUsingLazyParquetChunkLoader(), ResultSet::makeGeoTargetValue(), Parser::OperExpr::normalize(), null_val_bit_pattern(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), Analyzer::GeoConstant::physicalCols(), Parser::InsertIntoTableAsSelectStmt::populateData(), ResultSetReductionJIT::reduceOneSlot(), ResultSetStorage::reduceOneSlot(), ddl_utils::set_default_encoding(), anonymous_namespace{TargetExprBuilder.cpp}::target_has_geo(), ddl_utils::validate_and_set_compressed_encoding(), ddl_utils::validate_and_set_default_value(), ddl_utils::validate_and_set_none_encoding(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_geospatial_mapping(), DBHandler::value_to_thrift_column(), and Analyzer::Constant::~Constant().

587 { return IS_GEO(type); }
SQLTypes type
Definition: sqltypes.h:998
#define IS_GEO(T)
Definition: sqltypes.h:298

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_high_precision_timestamp ( ) const
inline

Definition at line 985 of file sqltypes.h.

References dimension, get_dimension(), kTIMESTAMP, and type.

Referenced by CodeGenerator::codegenDateTruncHighPrecisionTimestamps(), CodeGenerator::codegenExtractHighPrecisionTimestamps(), Analyzer::Constant::do_cast(), anonymous_namespace{ExpressionRange.cpp}::getDateTimePrecisionCastRange(), DateTimeTranslator::getDateTruncConstantValue(), DateTimeTranslator::getExtractFromTimeConstantValue(), and ddl_utils::validate_and_set_fixed_encoding().

985  {
986  if (type == kTIMESTAMP) {
987  const auto dimension = get_dimension();
988  if (dimension > 0) {
989  return true;
990  }
991  }
992  return false;
993  }
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
SQLTypes type
Definition: sqltypes.h:998
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_integer ( ) const
inline

Definition at line 577 of file sqltypes.h.

References IS_INTEGER, and type.

Referenced by Analyzer::Constant::add_cast(), Parser::FunctionRef::analyze(), Analyzer::BinOper::analyze_type_info(), WindowFunctionContext::buildAggregationTreeForPartition(), CodeGenerator::castArrayPointer(), CodeGenerator::codegenAdd(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenMod(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), Analyzer::WidthBucketExpr::compute_bucket(), WindowFunctionContext::computeNullRangeOfSortedPartition(), NumericConverterFactory< SOURCE_TYPE, TARGET_TYPE >::create(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), get_agg_type(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), foreign_storage::IntegralFixedLengthBoundsValidator< T >::getMinMaxBoundsAsStrings(), inline_fixed_encoding_null_val(), anonymous_namespace{QueryMemoryDescriptor.cpp}::is_int_and_no_bigger_than(), Fragmenter_Namespace::is_integral(), is_supported_type_for_extern_execution(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::isIntegralType(), HashJoin::normalizeColumnPair(), numeric_type_name(), pair_to_double(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Executor::reduceResults(), ArrowForeignStorageBase::replaceNullValues(), anonymous_namespace{InputMetadata.cpp}::uses_int_meta(), foreign_storage::ParquetUnsignedFixedLengthEncoder< V, T, U, NullType >::validate(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_integral_mapping(), foreign_storage::ParquetFixedLengthEncoder< V, T, NullType >::validateIntegralOrFloatingPointMetadata(), foreign_storage::ParquetFixedLengthEncoder< V, T, NullType >::validateIntegralOrFloatingPointValue(), and foreign_storage::IntegralFixedLengthBoundsValidator< T >::valueWithinBounds().

577 { return IS_INTEGER(type); }
#define IS_INTEGER(T)
Definition: sqltypes.h:292
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

int SQLTypeInfo::is_logical_geo_type ( ) const
inline

Definition at line 391 of file sqltypes.h.

References kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kPOINT, kPOLYGON, and type.

391  {
392  if (type == kPOINT || type == kLINESTRING || type == kMULTILINESTRING ||
393  type == kMULTIPOINT || type == kPOLYGON || type == kMULTIPOLYGON) {
394  return true;
395  }
396  return false;
397  }
SQLTypes type
Definition: sqltypes.h:998
bool SQLTypeInfo::is_none_encoded_string ( ) const
inline

Definition at line 631 of file sqltypes.h.

References compression, is_string(), and kENCODING_NONE.

Referenced by Parser::common_string_type().

631  {
632  return is_string() && compression == kENCODING_NONE;
633  }
EncodingType compression
Definition: sqltypes.h:1004
bool is_string() const
Definition: sqltypes.h:575

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

HOST DEVICE bool SQLTypeInfo::is_null ( const Datum d) const
inline

Definition at line 848 of file sqltypes.h.

References Datum::arrayval, Datum::bigintval, Datum::boolval, Datum::doubleval, Datum::floatval, Datum::intval, VarlenDatum::is_null, kARRAY, kBIGINT, kBOOLEAN, kCHAR, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNULLT, kNUMERIC, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, NULL_BIGINT, NULL_BOOLEAN, NULL_DOUBLE, NULL_FLOAT, NULL_INT, NULL_SMALLINT, NULL_TINYINT, Datum::smallintval, Datum::tinyintval, and type.

Referenced by ChunkIter_get_next(), ChunkIter_get_nth(), decompress(), and StringOps_Namespace::StringOpInfo::isLiteralArgNull().

848  {
849  // assuming Datum is always uncompressed
850  switch (type) {
851  case kBOOLEAN:
852  return (int8_t)d.boolval == NULL_BOOLEAN;
853  case kTINYINT:
854  return d.tinyintval == NULL_TINYINT;
855  case kSMALLINT:
856  return d.smallintval == NULL_SMALLINT;
857  case kINT:
858  return d.intval == NULL_INT;
859  case kBIGINT:
860  case kNUMERIC:
861  case kDECIMAL:
862  return d.bigintval == NULL_BIGINT;
863  case kFLOAT:
864  return d.floatval == NULL_FLOAT;
865  case kDOUBLE:
866  return d.doubleval == NULL_DOUBLE;
867  case kTIME:
868  case kTIMESTAMP:
869  case kDATE:
870  return d.bigintval == NULL_BIGINT;
871  case kTEXT:
872  case kVARCHAR:
873  case kCHAR:
874  // @TODO handle null strings
875  break;
876  case kNULLT:
877  return true;
878  case kARRAY:
879  return d.arrayval == NULL || d.arrayval->is_null;
880  default:
881  break;
882  }
883  return false;
884  }
int8_t tinyintval
Definition: Datum.h:46
#define NULL_DOUBLE
Definition: sqltypes.h:64
#define NULL_FLOAT
bool is_null
Definition: Datum.h:35
#define NULL_BIGINT
int8_t boolval
Definition: Datum.h:45
VarlenDatum * arrayval
Definition: Datum.h:52
int32_t intval
Definition: Datum.h:48
#define NULL_INT
float floatval
Definition: Datum.h:50
int64_t bigintval
Definition: Datum.h:49
int16_t smallintval
Definition: Datum.h:47
#define NULL_BOOLEAN
Definition: sqltypes.h:67
Definition: sqltypes.h:68
Definition: sqltypes.h:56
#define NULL_TINYINT
SQLTypes type
Definition: sqltypes.h:998
#define NULL_SMALLINT
Definition: sqltypes.h:60
double doubleval
Definition: Datum.h:51

+ Here is the caller graph for this function:

HOST DEVICE bool SQLTypeInfo::is_null ( const int8_t *  val) const
inline

Definition at line 885 of file sqltypes.h.

References kDOUBLE, kFLOAT, kNULLT, NULL_BIGINT, NULL_DOUBLE, NULL_FLOAT, NULL_INT, NULL_SMALLINT, NULL_TINYINT, size, and type.

885  {
886  if (type == kFLOAT) {
887  return *(float*)val == NULL_FLOAT;
888  }
889  if (type == kDOUBLE) {
890  return *(double*)val == NULL_DOUBLE;
891  }
892  // val can be either compressed or uncompressed
893  switch (size) {
894  case 1:
895  return *val == NULL_TINYINT;
896  case 2:
897  return *(int16_t*)val == NULL_SMALLINT;
898  case 4:
899  return *(int32_t*)val == NULL_INT;
900  case 8:
901  return *(int64_t*)val == NULL_BIGINT;
902  case kNULLT:
903  return true;
904  default:
905  // @TODO(wei) handle null strings
906  break;
907  }
908  return false;
909  }
#define NULL_DOUBLE
#define NULL_FLOAT
#define NULL_BIGINT
#define NULL_INT
#define NULL_TINYINT
SQLTypes type
Definition: sqltypes.h:998
#define NULL_SMALLINT
HOST DEVICE bool SQLTypeInfo::is_null_fixlen_array ( const int8_t *  val,
int  array_size 
) const
inline

Definition at line 910 of file sqltypes.h.

References kARRAY, kDOUBLE, kFLOAT, kNULLT, NULL_ARRAY_BIGINT, NULL_ARRAY_DOUBLE, NULL_ARRAY_FLOAT, NULL_ARRAY_INT, NULL_ARRAY_SMALLINT, NULL_ARRAY_TINYINT, size, subtype, and type.

Referenced by ChunkIter_get_nth().

910  {
911  // Check if fixed length array has a NULL_ARRAY sentinel as the first element
912  if (type == kARRAY && val && array_size > 0 && array_size == size) {
913  // Need to create element type to get the size, but can't call get_elem_type()
914  // since this is a HOST DEVICE function. Going through copy constructor instead.
915  auto elem_ti{*this};
916  elem_ti.set_type(subtype);
917  elem_ti.set_subtype(kNULLT);
918  auto elem_size = elem_ti.get_storage_size();
919  if (elem_size < 1) {
920  return false;
921  }
922  if (subtype == kFLOAT) {
923  return *(float*)val == NULL_ARRAY_FLOAT;
924  }
925  if (subtype == kDOUBLE) {
926  return *(double*)val == NULL_ARRAY_DOUBLE;
927  }
928  switch (elem_size) {
929  case 1:
930  return *val == NULL_ARRAY_TINYINT;
931  case 2:
932  return *(int16_t*)val == NULL_ARRAY_SMALLINT;
933  case 4:
934  return *(int32_t*)val == NULL_ARRAY_INT;
935  case 8:
936  return *(int64_t*)val == NULL_ARRAY_BIGINT;
937  default:
938  return false;
939  }
940  }
941  return false;
942  }
#define NULL_ARRAY_INT
#define NULL_ARRAY_SMALLINT
#define NULL_ARRAY_TINYINT
SQLTypes subtype
Definition: sqltypes.h:999
#define NULL_ARRAY_FLOAT
#define NULL_ARRAY_DOUBLE
SQLTypes type
Definition: sqltypes.h:998
#define NULL_ARRAY_BIGINT

+ Here is the caller graph for this function:

HOST DEVICE bool SQLTypeInfo::is_null_point_coord_array ( const int8_t *  val,
int  array_size 
) const
inline

Definition at line 943 of file sqltypes.h.

References kARRAY, kTINYINT, NULL_ARRAY_COMPRESSED_32, NULL_ARRAY_DOUBLE, size, subtype, and type.

Referenced by ChunkIter_get_nth_point_coords().

944  {
945  if (type == kARRAY && subtype == kTINYINT && val && array_size > 0 &&
946  array_size == size) {
947  if (array_size == 2 * sizeof(double)) {
948  return *(double*)val == NULL_ARRAY_DOUBLE;
949  }
950  if (array_size == 2 * sizeof(int32_t)) {
951  return *(uint32_t*)val == NULL_ARRAY_COMPRESSED_32;
952  }
953  }
954  return false;
955  }
#define NULL_ARRAY_COMPRESSED_32
SQLTypes subtype
Definition: sqltypes.h:999
#define NULL_ARRAY_DOUBLE
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_numeric_scalar_auto_castable ( const SQLTypeInfo new_type_info) const
inline

returns true if the sql_type can be cast to the type specified by new_type_info with no loss of precision. Currently only used in ExtensionFunctionsBindings to determine legal function matches, but we should consider whether we need to rationalize implicit casting behavior more broadly in QueryEngine.

Definition at line 743 of file sqltypes.h.

References get_dimension(), get_logical_size(), get_type(), is_fp(), is_number(), kBIGINT, kBOOLEAN, kDATE, kDECIMAL, kDOUBLE, kFLOAT, kINT, kNUMERIC, kSMALLINT, kTIME, kTIMESTAMP, kTINYINT, type, and UNREACHABLE.

Referenced by anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_numeric_argument().

743  {
744  const auto& new_type = new_type_info.get_type();
745  switch (type) {
746  case kBOOLEAN:
747  return new_type == kBOOLEAN;
748  case kTINYINT:
749  case kSMALLINT:
750  case kINT:
751  if (!new_type_info.is_number()) {
752  return false;
753  }
754  if (new_type_info.is_fp()) {
755  // We can lose precision here, but preserving existing behavior
756  return true;
757  }
758  return new_type_info.get_logical_size() >= get_logical_size();
759  case kBIGINT:
760  return new_type == kBIGINT || new_type == kDOUBLE || new_type == kFLOAT;
761  case kFLOAT:
762  case kDOUBLE:
763  if (!new_type_info.is_fp()) {
764  return false;
765  }
766  return (new_type_info.get_logical_size() >= get_logical_size());
767  case kDECIMAL:
768  case kNUMERIC:
769  switch (new_type) {
770  case kDECIMAL:
771  case kNUMERIC:
772  return new_type_info.get_dimension() >= get_dimension();
773  case kDOUBLE:
774  return true;
775  case kFLOAT:
776  return get_dimension() <= 7;
777  default:
778  return false;
779  }
780  case kTIMESTAMP:
781  if (new_type != kTIMESTAMP) {
782  return false;
783  }
784  return new_type_info.get_dimension() >= get_dimension();
785  case kDATE:
786  return new_type == kDATE;
787  case kTIME:
788  return new_type == kTIME;
789  default:
790  UNREACHABLE();
791  return false;
792  }
793  }
Definition: sqltypes.h:64
bool is_fp() const
Definition: sqltypes.h:579
#define UNREACHABLE()
Definition: Logger.h:266
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:379
bool is_number() const
Definition: sqltypes.h:580
int get_logical_size() const
Definition: sqltypes.h:399
Definition: sqltypes.h:68
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
SQLTypes type
Definition: sqltypes.h:998
Definition: sqltypes.h:60

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_string ( ) const
inline

Definition at line 575 of file sqltypes.h.

References IS_STRING, and type.

Referenced by Analyzer::Expr::add_cast(), Analyzer::UOper::add_cast(), Analyzer::CaseExpr::add_cast(), anonymous_namespace{TableFunctionCompilationContext.cpp}::alloc_column(), anonymous_namespace{TableFunctionCompilationContext.cpp}::alloc_column_list(), Parser::InValues::analyze(), Parser::FunctionRef::analyze(), Parser::QuerySpec::analyze_group_by(), Analyzer::BinOper::analyze_type_info(), CodeGenerator::castArrayPointer(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenHoistedConstantsPlaceholders(), Parser::common_string_type(), Analyzer::BinOper::common_string_type(), Encoder::Create(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_none_type_encoder(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_string_encoder(), CodeGenerator::createInValuesBitmap(), Analyzer::Constant::deep_copy(), Catalog_Namespace::Catalog::delDictionary(), Analyzer::Constant::do_cast(), RelAlgExecutor::executeSimpleInsert(), get_agg_initial_val(), get_array_context_logical_size(), import_export::TypedImportBuffer::get_data_block_pointers(), anonymous_namespace{TargetExprBuilder.cpp}::get_initial_agg_val(), anonymous_namespace{TableFunctionCompilationContext.cpp}::get_llvm_type_from_sql_column_type(), Parser::get_str_dict_cast_type(), PerfectJoinHashTable::getAlternativeCacheKey(), Catalog_Namespace::Catalog::getColumnDictDirectory(), ColumnDescriptor::getDefaultValueLiteral(), import_export::Loader::getStringDict(), ResultSet::getTargetValueFromBufferRowwise(), CodeGenerator::hashJoinLhs(), inline_fixed_encoding_null_val(), inline_int_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), CgenState::inlineIntNull(), is_castable(), is_dict_encoded_string(), is_none_encoded_string(), is_real_str_or_array(), is_supported_type_for_extern_execution(), foreign_storage::TextFileBufferParser::isNullDatum(), Fragmenter_Namespace::isStringVectorData(), ResultSet::makeVarlenTargetValue(), CodeGenerator::needCastForHashJoinLhs(), Executor::needLinearizeAllFragments(), Parser::CaseExpr::normalize(), HashJoin::normalizeColumnPair(), null_val_bit_pattern(), numeric_type_name(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), ResultSetReductionJIT::reduceOneSlot(), ResultSetStorage::reduceOneSlot(), ddl_utils::set_default_encoding(), import_export::StringToArray(), import_export::TDatumToArrayDatum(), ExpressionRange::typeSupportsRange(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumns(), anonymous_namespace{InputMetadata.cpp}::uses_int_meta(), ddl_utils::validate_and_set_dictionary_encoding(), ddl_utils::validate_and_set_none_encoding(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_string_mapping(), TransientStringLiteralsVisitor::visitConstant(), TransientStringLiteralsVisitor::visitStringOper(), StorageIOFacility::yieldUpdateCallback(), and Analyzer::Constant::~Constant().

575 { return IS_STRING(type); }
#define IS_STRING(T)
Definition: sqltypes.h:297
SQLTypes type
Definition: sqltypes.h:998
bool SQLTypeInfo::is_string_array ( ) const
inline

Definition at line 576 of file sqltypes.h.

References IS_STRING, kARRAY, subtype, and type.

Referenced by Catalog_Namespace::Catalog::delDictionary(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), Catalog_Namespace::Catalog::getColumnDictDirectory(), ColumnDescriptor::getDefaultValueLiteral(), ddl_utils::set_default_encoding(), ddl_utils::validate_and_set_array_size(), ddl_utils::validate_and_set_dictionary_encoding(), and ddl_utils::validate_and_set_none_encoding().

576 { return (type == kARRAY) && IS_STRING(subtype); }
SQLTypes subtype
Definition: sqltypes.h:999
#define IS_STRING(T)
Definition: sqltypes.h:297
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_subtype_dict_encoded_string ( ) const
inline

Definition at line 635 of file sqltypes.h.

References compression, IS_STRING, kENCODING_DICT, and subtype.

635  {
637  }
SQLTypes subtype
Definition: sqltypes.h:999
EncodingType compression
Definition: sqltypes.h:1004
#define IS_STRING(T)
Definition: sqltypes.h:297
bool SQLTypeInfo::is_text_encoding_dict ( ) const
inline

Definition at line 601 of file sqltypes.h.

References get_compression(), kENCODING_DICT, kTEXT, and type.

601  {
602  return type == kTEXT && get_compression() == kENCODING_DICT;
603  }
Definition: sqltypes.h:67
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

bool SQLTypeInfo::is_text_encoding_dict_array ( ) const
inline

Definition at line 604 of file sqltypes.h.

References get_compression(), kARRAY, kENCODING_DICT, kTEXT, subtype, and type.

Referenced by getVarlenArrayBufferSize(), and initializeVarlenArray().

604  {
605  return type == kARRAY && subtype == kTEXT && get_compression() == kENCODING_DICT;
606  }
SQLTypes subtype
Definition: sqltypes.h:999
Definition: sqltypes.h:67
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
SQLTypes type
Definition: sqltypes.h:998

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_time ( ) const
inline

Definition at line 581 of file sqltypes.h.

References is_datetime(), and type.

Referenced by Analyzer::Expr::add_cast(), Analyzer::Constant::add_cast(), Analyzer::BinOper::analyze_type_info(), CodeGenerator::codegenCast(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), WindowFunctionContext::computeNullRangeOfSortedPartition(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), Analyzer::Constant::do_cast(), ColumnDescriptor::getDefaultValueLiteral(), inline_fixed_encoding_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_scalar_column(), anonymous_namespace{RelAlgTranslator.cpp}::is_agg_supported_for_type(), is_castable(), Fragmenter_Namespace::is_integral(), foreign_storage::TypedParquetInPlaceEncoder< V, V >::isIntegralType(), HashJoin::normalizeColumnPair(), CodeGenerator::NullCheckCodegen::NullCheckCodegen(), numeric_type_name(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Executor::reduceResults(), import_export::StringToArray(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), ExpressionRange::typeSupportsRange(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), and anonymous_namespace{InputMetadata.cpp}::uses_int_meta().

581 { return is_datetime(type); }
SQLTypes type
Definition: sqltypes.h:998
constexpr auto is_datetime(SQLTypes type)
Definition: sqltypes.h:313

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_varlen ( ) const
inline
bool SQLTypeInfo::is_varlen_array ( ) const
inline

Definition at line 584 of file sqltypes.h.

References kARRAY, size, and type.

Referenced by Fragmenter_Namespace::get_var_len_null_array_indexes().

584 { return type == kARRAY && size <= 0; }
SQLTypes type
Definition: sqltypes.h:998

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_varlen_indeed ( ) const
inline

Definition at line 621 of file sqltypes.h.

References is_fixlen_array(), and is_varlen().

Referenced by foreign_storage::anonymous_namespace{AbstractTextFileDataWrapper.cpp}::add_placeholder_metadata(), foreign_storage::cache_blocks(), foreign_storage::get_placeholder_metadata(), and foreign_storage::Csv::get_placeholder_metadata().

621  {
622  // SQLTypeInfo.is_varlen() is broken with fixedlen array now
623  // and seems left broken for some concern, so fix it locally
624  return is_varlen() && !is_fixlen_array();
625  }
bool is_varlen() const
Definition: sqltypes.h:615
bool is_fixlen_array() const
Definition: sqltypes.h:585

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

HOST DEVICE bool SQLTypeInfo::operator!= ( const SQLTypeInfo rhs) const
inline

Definition at line 656 of file sqltypes.h.

References comp_param, compression, dimension, get_comp_param(), get_compression(), get_dimension(), get_notnull(), get_scale(), get_subtype(), get_type(), kENCODING_NONE, notnull, scale, subtype, TRANSIENT_DICT, and type.

656  {
657  return type != rhs.get_type() || subtype != rhs.get_subtype() ||
658  dimension != rhs.get_dimension() || scale != rhs.get_scale() ||
659  compression != rhs.get_compression() ||
662  notnull != rhs.get_notnull();
663  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:380
HOST DEVICE int get_scale() const
Definition: sqltypes.h:384
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:379
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:388
SQLTypes type
Definition: sqltypes.h:998
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:386
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:310
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

HOST DEVICE void SQLTypeInfo::operator= ( const SQLTypeInfo rhs)
inline

Definition at line 684 of file sqltypes.h.

References comp_param, compression, dimension, get_comp_param(), get_compression(), get_dimension(), get_notnull(), get_scale(), get_size(), get_subtype(), get_type(), notnull, scale, size, subtype, and type.

684  {
685  type = rhs.get_type();
686  subtype = rhs.get_subtype();
687  dimension = rhs.get_dimension();
688  scale = rhs.get_scale();
689  notnull = rhs.get_notnull();
691  comp_param = rhs.get_comp_param();
692  size = rhs.get_size();
693  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:380
HOST DEVICE int get_size() const
Definition: sqltypes.h:389
HOST DEVICE int get_scale() const
Definition: sqltypes.h:384
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:379
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:388
SQLTypes type
Definition: sqltypes.h:998
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:386
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

HOST DEVICE bool SQLTypeInfo::operator== ( const SQLTypeInfo rhs) const
inline

Definition at line 664 of file sqltypes.h.

References comp_param, compression, dimension, get_comp_param(), get_compression(), get_dimension(), get_notnull(), get_scale(), get_subtype(), get_type(), kENCODING_NONE, notnull, scale, subtype, TRANSIENT_DICT, and type.

664  {
665  return type == rhs.get_type() && subtype == rhs.get_subtype() &&
666  dimension == rhs.get_dimension() && scale == rhs.get_scale() &&
667  compression == rhs.get_compression() &&
670  notnull == rhs.get_notnull();
671  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:380
HOST DEVICE int get_scale() const
Definition: sqltypes.h:384
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:379
SQLTypes subtype
Definition: sqltypes.h:999
bool notnull
Definition: sqltypes.h:1003
EncodingType compression
Definition: sqltypes.h:1004
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:387
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:388
SQLTypes type
Definition: sqltypes.h:998
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:386
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:310
int comp_param
Definition: sqltypes.h:1005
int dimension
Definition: sqltypes.h:1000

+ Here is the call graph for this function:

void SQLTypeInfo::set_comp_param ( int  p)
inline

Definition at line 501 of file sqltypes.h.

References comp_param.

Referenced by Analyzer::CaseExpr::add_cast(), Parser::QuerySpec::analyze_group_by(), Catalog_Namespace::Catalog::buildColumnsMapUnlocked(), Geospatial::convert_coords(), Catalog_Namespace::Catalog::createTable(), import_export::Importer::gdalToColumnDescriptorsGeo(), import_export::Importer::gdalToColumnDescriptorsRaster(), Parser::LocalQueryConnector::getColumnDescriptors(), Parser::OperExpr::normalize(), import_export::parse_add_metadata_columns(), File_Namespace::FileBuffer::readMetadata(), ddl_utils::set_default_encoding(), Catalog_Namespace::Catalog::setColumnDictionary(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_string_mapping(), RelAlgTranslator::translateBinaryGeoConstructor(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), RelAlgTranslator::translateStringOper(), RelAlgTranslator::translateUnaryGeoConstructor(), RelAlgTranslator::translateUoper(), ddl_utils::validate_and_set_compressed_encoding(), ddl_utils::validate_and_set_date_encoding(), ddl_utils::validate_and_set_dictionary_encoding(), ddl_utils::validate_and_set_encoding(), ddl_utils::validate_and_set_fixed_encoding(), ddl_utils::validate_and_set_none_encoding(), and ddl_utils::validate_and_set_sparse_encoding().

501 { comp_param = p; }
int comp_param
Definition: sqltypes.h:1005

+ Here is the caller graph for this function:

void SQLTypeInfo::set_compression ( EncodingType  c)
inline

Definition at line 500 of file sqltypes.h.

References compression.

Referenced by Analyzer::Constant::add_cast(), Parser::QuerySpec::analyze_group_by(), Catalog_Namespace::Catalog::buildColumnsMapUnlocked(), Geospatial::convert_coords(), import_export::Importer::gdalToColumnDescriptorsGeo(), import_export::Importer::gdalToColumnDescriptorsRaster(), Parser::LocalQueryConnector::getColumnDescriptors(), Parser::OperExpr::normalize(), import_export::parse_add_metadata_columns(), File_Namespace::FileBuffer::readMetadata(), ddl_utils::set_default_encoding(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_boolean_type_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_decimal_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_floating_point_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_integral_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_string_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_timestamp_mapping(), RelAlgTranslator::translateBinaryGeoConstructor(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), RelAlgTranslator::translateStringOper(), RelAlgTranslator::translateUnaryGeoConstructor(), RelAlgTranslator::translateUoper(), ddl_utils::validate_and_set_compressed_encoding(), ddl_utils::validate_and_set_date_encoding(), ddl_utils::validate_and_set_dictionary_encoding(), ddl_utils::validate_and_set_encoding(), ddl_utils::validate_and_set_fixed_encoding(), ddl_utils::validate_and_set_none_encoding(), and ddl_utils::validate_and_set_sparse_encoding().

500 { compression = c; }
EncodingType compression
Definition: sqltypes.h:1004

+ Here is the caller graph for this function:

void SQLTypeInfo::set_dict_intersection ( )
inline

Definition at line 499 of file sqltypes.h.

References dict_intersection.

Referenced by Parser::OperExpr::normalize().

499 { dict_intersection = true; }
bool dict_intersection
Definition: sqltypes.h:1007

+ Here is the caller graph for this function:

void SQLTypeInfo::set_dimension ( int  d)
inline

Definition at line 491 of file sqltypes.h.

References dimension.

Referenced by Analyzer::BinOper::analyze_type_info(), Catalog_Namespace::Catalog::buildColumnsMapUnlocked(), Parser::common_string_type(), parse_numeric(), File_Namespace::FileBuffer::readMetadata(), and ddl_utils::validate_and_set_type().

491 { dimension = d; }
int dimension
Definition: sqltypes.h:1000

+ Here is the caller graph for this function:

void SQLTypeInfo::set_fixed_size ( )
inline

Definition at line 498 of file sqltypes.h.

References get_storage_size(), and size.

Referenced by Parser::QuerySpec::analyze_group_by(), Analyzer::BinOper::common_numeric_type(), import_export::Importer::gdalToColumnDescriptorsGeo(), import_export::Importer::gdalToColumnDescriptorsRaster(), Parser::OperExpr::normalize(), import_export::parse_add_metadata_columns(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_boolean_type_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_decimal_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_floating_point_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_integral_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_string_mapping(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::suggest_timestamp_mapping(), RelAlgTranslator::translateStringOper(), RelAlgTranslator::translateUoper(), and ddl_utils::validate_and_set_array_size().

498 { size = get_storage_size(); }
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:1012

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void SQLTypeInfo::set_input_srid ( int  d)
inline
void SQLTypeInfo::set_output_srid ( int  s)
inline

Definition at line 495 of file sqltypes.h.

References scale.

Referenced by import_export::Importer::gdalToColumnDescriptorsGeo(), import_export::Importer::gdalToColumnDescriptorsRaster(), RelAlgTranslator::translateBinaryGeoConstructor(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), RelAlgTranslator::translateUnaryGeoConstructor(), and ddl_utils::validate_and_set_type().

495 { scale = s; }

+ Here is the caller graph for this function:

void SQLTypeInfo::set_precision ( int  d)
inline
std::string SQLTypeInfo::to_string ( ) const
inline

Definition at line 543 of file sqltypes.h.

References get_comp_param(), get_compression_name(), get_dimension(), get_elem_type(), get_notnull(), get_scale(), get_size(), subtype, type, and type_name.

Referenced by bind_function(), RelLogicalUnion::checkForMatchingMetaInfoTypes(), CodeGenerator::codegenHoistedConstantsLoads(), DatumToString(), operator<<(), TargetMetaInfo::toString(), TargetInfo::toString(), RexOperator::toString(), and toString().

543  {
544  std::ostringstream oss;
545  oss << "(type=" << type_name[static_cast<int>(type)]
546  << ", dimension=" << get_dimension() << ", scale=" << get_scale()
547  << ", null=" << (get_notnull() ? "not nullable" : "nullable")
548  << ", compression_name=" << get_compression_name()
549  << ", comp_param=" << get_comp_param()
550  << ", subtype=" << type_name[static_cast<int>(subtype)] << ", size=" << get_size()
551  << ", element_size=" << get_elem_type().get_size() << ")";
552  return oss.str();
553  }
HOST DEVICE int get_size() const
Definition: sqltypes.h:389
HOST DEVICE int get_scale() const
Definition: sqltypes.h:384
std::string get_compression_name() const
Definition: sqltypes.h:541
static std::string type_name[kSQLTYPE_LAST]
Definition: sqltypes.h:1009
SQLTypes subtype
Definition: sqltypes.h:999
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:381
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:388
SQLTypes type
Definition: sqltypes.h:998
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:386
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:956

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string SQLTypeInfo::toString ( ) const
inline

Definition at line 542 of file sqltypes.h.

References to_string().

Referenced by shared::convert_temporal_to_iso_format().

542 { return to_string(); } // for PRINT macro
std::string to_string() const
Definition: sqltypes.h:543

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::transforms ( ) const
inline

Definition at line 610 of file sqltypes.h.

References get_input_srid(), get_output_srid(), IS_GEO, and type.

Referenced by CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), import_export::importGeoFromLonLat(), and foreign_storage::anonymous_namespace{TextFileBufferParser.cpp}::set_coordinates_from_separate_lon_lat_columns().

610  {
611  return IS_GEO(type) && get_input_srid() > 0 && get_output_srid() > 0 &&
613  }
HOST DEVICE int get_input_srid() const
Definition: sqltypes.h:383
SQLTypes type
Definition: sqltypes.h:998
#define IS_GEO(T)
Definition: sqltypes.h:298
HOST DEVICE int get_output_srid() const
Definition: sqltypes.h:385

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

std::string SQLTypeInfo::comp_name
staticprivate
Initial value:
=
{"NONE", "FIXED", "RL", "DIFF", "DICT", "SPARSE", "COMPRESSED", "DAYS"}

Definition at line 1010 of file sqltypes.h.

Referenced by get_compression_name().

int SQLTypeInfo::comp_param
private
bool SQLTypeInfo::dict_intersection {false}
private

Definition at line 1007 of file sqltypes.h.

Referenced by is_dict_intersection(), and set_dict_intersection().

bool SQLTypeInfo::notnull
private
std::string SQLTypeInfo::type_name
staticprivate

Definition at line 1009 of file sqltypes.h.

Referenced by get_type_name(), and to_string().


The documentation for this class was generated from the following files: