OmniSciDB  8fa3bf436f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros 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, 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 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_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
 
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_bytes () 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_dict_encoded_type () 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
 
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
 

Static Private Attributes

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

Detailed Description

Definition at line 264 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 266 of file sqltypes.h.

267  : type(t)
268  , subtype(st)
269  , dimension(d)
270  , scale(s)
271  , notnull(n)
272  , compression(c)
273  , comp_param(p)
274  , size(get_storage_size()) {}
tuple d
Definition: test_fsi.py:9
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:759
char * t
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
int  d,
int  s,
bool  n 
)
inline

Definition at line 275 of file sqltypes.h.

276  : type(t)
277  , subtype(kNULLT)
278  , dimension(d)
279  , scale(s)
280  , notnull(n)
282  , comp_param(0)
283  , size(get_storage_size()) {}
tuple d
Definition: test_fsi.py:9
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:759
char * t
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
int  d,
int  s 
)
inline

Definition at line 284 of file sqltypes.h.

284 : SQLTypeInfo(t, d, s, false) {}
tuple d
Definition: test_fsi.py:9
char * t
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
bool  n 
)
inline

Definition at line 285 of file sqltypes.h.

286  : type(t)
287  , subtype(kNULLT)
288  , dimension(0)
289  , scale(0)
290  , notnull(n)
292  , comp_param(0)
293  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:759
char * t
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t)
inline

Definition at line 294 of file sqltypes.h.

294 : SQLTypeInfo(t, false) {}
char * t
SQLTypeInfo::SQLTypeInfo ( SQLTypes  t,
bool  n,
EncodingType  c 
)
inline

Definition at line 295 of file sqltypes.h.

296  : type(t)
297  , subtype(kNULLT)
298  , dimension(0)
299  , scale(0)
300  , notnull(n)
301  , compression(c)
302  , comp_param(0)
303  , size(get_storage_size()) {}
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:759
char * t
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748
SQLTypeInfo::SQLTypeInfo ( )
inline

Definition at line 304 of file sqltypes.h.

Referenced by get_array_type(), and get_elem_type().

305  : type(kNULLT)
306  , subtype(kNULLT)
307  , dimension(0)
308  , scale(0)
309  , notnull(false)
311  , comp_param(0)
312  , size(0) {}
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

Member Function Documentation

int SQLTypeInfo::get_array_context_logical_size ( ) const
inline

Definition at line 552 of file sqltypes.h.

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

Referenced by ResultSet::makeVarlenTargetValue().

552  {
553  if (is_string()) {
554  auto comp_type(get_compression());
555  if (comp_type == kENCODING_DICT || comp_type == kENCODING_FIXED ||
556  comp_type == kENCODING_NONE) {
557  return sizeof(int32_t);
558  }
559  }
560  return get_logical_size();
561  }
int get_logical_size() const
Definition: sqltypes.h:325
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
bool is_string() const
Definition: sqltypes.h:489

+ 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 717 of file sqltypes.h.

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

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

717  {
719  }
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
SQLTypes type
Definition: sqltypes.h:746
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ 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 478 of file sqltypes.h.

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

478  {
479  if (is_array())
480  return "Array";
481  if (is_bytes())
482  return "Bytes";
483  if (is_column())
484  return "Column";
485  assert(false);
486  return "";
487  }
bool is_column() const
Definition: sqltypes.h:502
bool is_bytes() const
Definition: sqltypes.h:504
bool is_array() const
Definition: sqltypes.h:497

+ Here is the call graph for this function:

HOST DEVICE int SQLTypeInfo::get_comp_param ( ) const
inline

Definition at line 323 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(), RelLogicalUnion::checkForMatchingMetaInfoTypes(), CodeGenerator::codegen(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCompression(), Analyzer::BinOper::common_string_type(), 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(), Parser::InsertValuesStmt::determineLeafIndex(), DictionaryValueConverter< TARGET_TYPE >::DictionaryValueConverter(), Catalog_Namespace::Catalog::doTruncateTable(), import_export::fill_missing_columns(), Catalog_Namespace::Catalog::gatherAdditionalInfo(), Analyzer::ColumnVar::get_comp_param(), Geospatial::get_compression_scheme(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), get_logical_type_info(), Catalog_Namespace::Catalog::getColumnDictDirectory(), Catalog_Namespace::Catalog::getDictionaryToColumnMapping(), ArrowResultSetConverter::initializeColumnBuilder(), 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::setColumnDictionary(), Catalog_Namespace::Catalog::setColumnSharedDictionary(), to_string(), Analyzer::UOper::toString(), 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(), and File_Namespace::FileBuffer::writeMetadata().

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

Definition at line 322 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(), Parser::InValues::analyze(), Parser::FunctionRef::analyze(), Parser::QuerySpec::analyze_group_by(), CodeGenerator::castArrayPointer(), ChunkIter_get_next(), ChunkIter_get_nth(), import_export::TypedImportBuffer::clear(), CodeGenerator::codegenCastFromString(), CodeGenerator::codegenCmp(), CodeGenerator::codegenCompression(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_string_type(), Geospatial::compress_coord(), Geospatial::compress_coords(), Geospatial::compress_null_point(), 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_from_datum(), import_export::fill_missing_columns(), ChunkMetadata::fillChunkStats(), anonymous_namespace{ColumnarResults.cpp}::fixed_encoding_nullable_val(), Catalog_Namespace::Catalog::gatherAdditionalInfo(), 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(), get_logical_type_info(), Chunk_NS::Chunk::getChunkBuffer(), Parser::LocalConnector::getColumnDescriptors(), Catalog_Namespace::Catalog::getColumnDictDirectory(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), import_export::Loader::getStringDict(), ResultSet::getTargetValueFromBufferRowwise(), Chunk_NS::Chunk::initEncoder(), inline_fixed_encoding_null_val(), inline_int_null_val(), CgenState::inlineIntNull(), anonymous_namespace{RelAlgExecutor.cpp}::int_value_from_numbers_ptr(), is_bytes(), is_date_in_days(), FixedLengthArrayNoneEncoder::is_null(), Geospatial::is_null_point(), is_real_str_or_array(), is_unsigned_type(), Fragmenter_Namespace::isStringVectorData(), 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(), anonymous_namespace{TableOptimizer.cpp}::set_metadata_from_results(), Fragmenter_Namespace::sizeOfRawColumn(), RelAlgTranslator::translateBinaryGeoFunction(), 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::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().

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

Definition at line 455 of file sqltypes.h.

References comp_name, and compression.

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

455 { return comp_name[(int)compression]; }
EncodingType compression
Definition: sqltypes.h:752
static std::string comp_name[kENCODING_LAST]
Definition: sqltypes.h:757

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_dimension ( ) const
inline

Definition at line 316 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::codgenAdjustFixedEncNull(), Analyzer::BinOper::common_numeric_type(), Analyzer::BinOper::common_string_type(), Catalog_Namespace::Catalog::createTable(), DatumToString(), Analyzer::Expr::decompress(), Analyzer::Constant::do_cast(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), anonymous_namespace{Execute.cpp}::get_hpt_overflow_underflow_safe_scaled_values(), get_logical_type_info(), 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(), operator!=(), operator=(), operator==(), parse_numeric(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), StringToDatum(), to_string(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_timestamp_mapping(), and File_Namespace::FileBuffer::writeMetadata().

316 { return dimension; }
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

SQLTypeInfo SQLTypeInfo::get_elem_type ( ) const
inline

Definition at line 713 of file sqltypes.h.

References comp_param, compression, dimension, kNULLT, notnull, scale, SQLTypeInfo(), and subtype.

Referenced by import_export::TypedImportBuffer::add_value(), Parser::FunctionRef::analyze(), anonymous_namespace{ResultSetIteration.cpp}::build_array_target_value(), CodeGenerator::codegenArrayBuff(), CodeGenerator::codegenFunctionOperCastArgs(), ArrayConverterFactory< ELEMENT_FACTORY >::create(), foreign_storage::ParquetEncoder::createMetadata(), DateDaysOverflowValidator::DateDaysOverflowValidator(), DecimalOverflowValidator::DecimalOverflowValidator(), Analyzer::Constant::do_cast(), ChunkMetadata::dump(), RelAlgExecutor::executeSimpleInsert(), get_bit_width(), anonymous_namespace{ExtensionsIR.cpp}::get_llvm_type_from_sql_array_type(), foreign_storage::Csv::get_placeholder_metadata(), foreign_storage::get_sub_type_column_descriptor(), get_type_name(), getLeafColumnRange(), foreign_storage::TypedParquetInPlaceEncoder< int64_t, int32_t >::getRowGroupMetadata(), 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()(), 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(), Analyzer::Constant::toString(), ThriftSerializers::type_info_to_thrift(), ExpressionRange::typeSupportsRange(), ddl_utils::validate_and_set_array_size(), DBHandler::value_to_thrift(), and DBHandler::value_to_thrift_column().

713  {
714  return SQLTypeInfo(
716  }
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_input_srid ( ) const
inline

Definition at line 318 of file sqltypes.h.

References dimension.

Referenced by Geospatial::GeoBase::transform(), transforms(), RelAlgTranslator::translateBinaryGeoFunction(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateTernaryGeoFunction(), and RelAlgTranslator::translateUnaryGeoFunction().

318 { return dimension; }
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

int SQLTypeInfo::get_logical_size ( ) const
inline

Definition at line 325 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(), Parser::InsertValuesStmt::determineLeafIndex(), get_agg_initial_val(), get_array_context_logical_size(), StorageIOFacility::getRsBufferNoPadding(), inline_int_null_val(), anonymous_namespace{RelAlgExecutor.cpp}::int_value_from_numbers_ptr(), anonymous_namespace{TypedDataAccessors.h}::is_null(), is_unsigned_type(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments(), numeric_type_name(), and Fragmenter_Namespace::sizeOfRawColumn().

325  {
328  return ti.get_size();
329  }
330  if (compression == kENCODING_DICT) {
331  return 4;
332  }
333  return get_size();
334  }
HOST DEVICE int get_size() const
Definition: sqltypes.h:324
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
SQLTypes type
Definition: sqltypes.h:746
int dimension
Definition: sqltypes.h:748

+ 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 321 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(), Parser::InsertValuesStmt::analyze(), Analyzer::BinOper::analyze_type_info(), anonymous_namespace{ResultSetIteration.cpp}::GeoTargetValueBuilder< GEO_SOURCE_TYPE, GeoTargetFetcher >::build(), ChunkIter_get_nth(), ChunkIter_get_nth_point_coords(), GroupByAndAggregate::codegenApproxMedian(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastBetweenIntTypesOverflowChecks(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenDateTruncHighPrecisionTimestamps(), CodeGenerator::codegenDiv(), CodeGenerator::codegenExtractHighPrecisionTimestamps(), Analyzer::BinOper::common_numeric_type(), Analyzer::BinOper::common_string_type(), Geospatial::compress_coords(), 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(), get_target_info(), Fragmenter_Namespace::get_var_len_null_array_indexes(), Analyzer::anonymous_namespace{Analyzer.cpp}::is_expr_nullable(), FixedLengthArrayNoneEncoder::is_null(), foreign_storage::csv_file_buffer_parser::is_null_datum(), Geospatial::is_null_point(), ResultSet::isNull(), ArrowResultSetConverter::makeField(), NullAwareValidator< INNER_VALIDATOR >::NullAwareValidator(), operator!=(), operator=(), operator==(), pair_to_double(), anonymous_namespace{Datum.cpp}::parseInteger(), DBHandler::populateThriftColumnType(), 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< kLINESTRING >::serialize(), GeoWktSerializer< kLINESTRING >::serialize(), GeoTargetValuePtrSerializer< kLINESTRING >::serialize(), GeoTargetValueSerializer< kPOLYGON >::serialize(), GeoWktSerializer< kPOLYGON >::serialize(), GeoTargetValuePtrSerializer< kPOLYGON >::serialize(), GeoTargetValueSerializer< kMULTIPOLYGON >::serialize(), GeoWktSerializer< kMULTIPOLYGON >::serialize(), GeoTargetValuePtrSerializer< kMULTIPOLYGON >::serialize(), 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().

321 { return notnull; }
bool notnull
Definition: sqltypes.h:751
int SQLTypeInfo::get_physical_cols ( ) const
inline

Definition at line 335 of file sqltypes.h.

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

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

335  {
336  switch (type) {
337  case kPOINT:
338  return 1; // coords
339  case kLINESTRING:
340  return 2; // coords, bounds
341  case kPOLYGON:
342  return 4; // coords, ring_sizes, bounds, render_group
343  case kMULTIPOLYGON:
344  return 5; // coords, ring_sizes, poly_rings, bounds, render_group
345  default:
346  break;
347  }
348  return 0;
349  }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

int SQLTypeInfo::get_physical_coord_cols ( ) const
inline

Definition at line 350 of file sqltypes.h.

References kLINESTRING, 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(), and RelAlgTranslator::translateGeoColumn().

350  {
351  // @TODO dmitri/simon rename this function?
352  // It needs to return the number of extra columns
353  // which need to go through the executor, as opposed
354  // to those which are only needed by CPU for poly
355  // cache building or what-not. For now, we just omit
356  // the Render Group column. If we add Bounding Box
357  // or something this may require rethinking. Perhaps
358  // these two functions need to return an array of
359  // offsets rather than just a number to loop over,
360  // so that executor and non-executor columns can
361  // be mixed.
362  // NOTE(adb): In binding to extension functions, we need to know some pretty specific
363  // type info about each of the physical coords cols for each geo type. I added checks
364  // there to ensure the physical coords col for the geo type match what we expect. If
365  // these values are ever changed, corresponding values in
366  // ExtensionFunctionsBinding.cpp::compute_narrowing_conv_scores and
367  // ExtensionFunctionsBinding.cpp::compute_widening_conv_scores will also need to be
368  // changed.
369  switch (type) {
370  case kPOINT:
371  return 1;
372  case kLINESTRING:
373  return 1; // omit bounds
374  case kPOLYGON:
375  return 2; // omit bounds, render group
376  case kMULTIPOLYGON:
377  return 3; // omit bounds, render group
378  default:
379  break;
380  }
381  return 0;
382  }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_scale ( ) const
inline

Definition at line 319 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::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(), operator!=(), operator=(), operator==(), pair_to_double(), parse_numeric(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), anonymous_namespace{ExpressionRange.cpp}::scale_up_interval_endpoint(), 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().

319 { return scale; }

+ Here is the caller graph for this function:

HOST DEVICE int SQLTypeInfo::get_size ( ) const
inline

Definition at line 324 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(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), CodeGenerator::codgenAdjustFixedEncNull(), 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(), Parser::InsertValuesStmt::determineLeafIndex(), RelAlgExecutor::executeSimpleInsert(), Fragmenter_Namespace::FixedLenArrayChunkConverter::FixedLenArrayChunkConverter(), ArrowForeignStorageBase::generateNullValues(), ArrowForeignStorageBase::generateSentinelValues(), 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{ArrowResultSetConverter.cpp}::get_physical_type(), foreign_storage::Csv::get_placeholder_metadata(), anonymous_namespace{TypedDataAccessors.h}::get_scalar(), getArrowImportType(), Parser::LocalConnector::getColumnDescriptors(), foreign_storage::TimestampBoundsValidator< T >::getMinMaxBoundsAsStrings(), foreign_storage::IntegralFixedLengthBoundsValidator< T >::getMinMaxBoundsAsStrings(), foreign_storage::DateInSecondsBoundsValidator< T >::getMinMaxBoundsAsStrings(), foreign_storage::FloatPointValidator< T >::getMinMaxBoundsAsStrings(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), StorageIOFacility::getRsBufferNoPadding(), import_export::TypedImportBuffer::getStringDictBuffer(), inline_fixed_encoding_null_val(), anonymous_namespace{RelAlgExecutor.cpp}::int_value_from_numbers_ptr(), 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(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::resize_values_buffer(), Fragmenter_Namespace::sizeOfRawColumn(), import_export::StringToArray(), import_export::TDatumToArrayDatum(), to_string(), 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(), foreign_storage::TimestampBoundsValidator< T >::valueWithinBounds(), foreign_storage::IntegralFixedLengthBoundsValidator< T >::valueWithinBounds(), foreign_storage::DateInSecondsBoundsValidator< T >::valueWithinBounds(), foreign_storage::FloatPointValidator< T >::valueWithinBounds(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

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

Definition at line 759 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_NONE, kENCODING_RL, kENCODING_SPARSE, kFLOAT, kINT, kINTERVAL_DAY_TIME, kINTERVAL_YEAR_MONTH, kLINESTRING, kMULTIPOLYGON, kNUMERIC, kPOINT, kPOLYGON, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, and type.

Referenced by set_fixed_size().

759  {
760  switch (type) {
761  case kBOOLEAN:
762  return sizeof(int8_t);
763  case kTINYINT:
764  return sizeof(int8_t);
765  case kSMALLINT:
766  switch (compression) {
767  case kENCODING_NONE:
768  return sizeof(int16_t);
769  case kENCODING_FIXED:
770  case kENCODING_SPARSE:
771  return comp_param / 8;
772  case kENCODING_RL:
773  case kENCODING_DIFF:
774  break;
775  default:
776  assert(false);
777  }
778  break;
779  case kINT:
780  switch (compression) {
781  case kENCODING_NONE:
782  return sizeof(int32_t);
783  case kENCODING_FIXED:
784  case kENCODING_SPARSE:
785  return comp_param / 8;
786  case kENCODING_RL:
787  case kENCODING_DIFF:
788  break;
789  default:
790  assert(false);
791  }
792  break;
793  case kBIGINT:
794  case kNUMERIC:
795  case kDECIMAL:
796  switch (compression) {
797  case kENCODING_NONE:
798  return sizeof(int64_t);
799  case kENCODING_FIXED:
800  case kENCODING_SPARSE:
801  return comp_param / 8;
802  case kENCODING_RL:
803  case kENCODING_DIFF:
804  break;
805  default:
806  assert(false);
807  }
808  break;
809  case kFLOAT:
810  switch (compression) {
811  case kENCODING_NONE:
812  return sizeof(float);
813  case kENCODING_FIXED:
814  case kENCODING_RL:
815  case kENCODING_DIFF:
816  case kENCODING_SPARSE:
817  assert(false);
818  break;
819  default:
820  assert(false);
821  }
822  break;
823  case kDOUBLE:
824  switch (compression) {
825  case kENCODING_NONE:
826  return sizeof(double);
827  case kENCODING_FIXED:
828  case kENCODING_RL:
829  case kENCODING_DIFF:
830  case kENCODING_SPARSE:
831  assert(false);
832  break;
833  default:
834  assert(false);
835  }
836  break;
837  case kTIMESTAMP:
838  case kTIME:
839  case kINTERVAL_DAY_TIME:
841  case kDATE:
842  switch (compression) {
843  case kENCODING_NONE:
844  return sizeof(int64_t);
845  case kENCODING_FIXED:
846  if (type == kTIMESTAMP && dimension > 0) {
847  assert(false); // disable compression for timestamp precisions
848  }
849  return comp_param / 8;
850  case kENCODING_RL:
851  case kENCODING_DIFF:
852  case kENCODING_SPARSE:
853  assert(false);
854  break;
856  switch (comp_param) {
857  case 0:
858  return 4; // Default date encoded in days is 32 bits
859  case 16:
860  case 32:
861  return comp_param / 8;
862  default:
863  assert(false);
864  break;
865  }
866  default:
867  assert(false);
868  }
869  break;
870  case kTEXT:
871  case kVARCHAR:
872  case kCHAR:
873  if (compression == kENCODING_DICT) {
874  return sizeof(int32_t); // @TODO(wei) must check DictDescriptor
875  }
876  break;
877  case kARRAY:
878  // TODO: return size for fixlen arrays?
879  break;
880  case kPOINT:
881  case kLINESTRING:
882  case kPOLYGON:
883  case kMULTIPOLYGON:
884  case kCOLUMN:
885  case kCOLUMN_LIST:
886  break;
887  default:
888  break;
889  }
890  return -1;
891  }
Definition: sqltypes.h:48
EncodingType compression
Definition: sqltypes.h:752
Definition: sqltypes.h:51
Definition: sqltypes.h:52
Definition: sqltypes.h:40
SQLTypes type
Definition: sqltypes.h:746
Definition: sqltypes.h:44
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

HOST DEVICE SQLTypes SQLTypeInfo::get_subtype ( ) const
inline

Definition at line 315 of file sqltypes.h.

References subtype.

Referenced by import_export::TypedImportBuffer::add_value(), import_export::TypedImportBuffer::add_values(), Catalog_Namespace::Catalog::addColumn(), Parser::InsertValuesStmt::analyze(), anonymous_namespace{CastIR.cpp}::byte_array_cast(), import_export::TypedImportBuffer::clear(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codgenAdjustFixedEncNull(), Encoder::Create(), Catalog_Namespace::Catalog::createTable(), Analyzer::Expr::decompress(), import_export::fill_missing_columns(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), get_logical_type_info(), import_export::Loader::getStringDict(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), FixedLengthArrayNoneEncoder::is_null(), operator!=(), operator=(), operator==(), import_export::TypedImportBuffer::pop_value(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), RelAlgTranslator::translateArrayFunction(), RelAlgTranslator::translateBinaryGeoFunction(), 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().

315 { return subtype; }
SQLTypes subtype
Definition: sqltypes.h:747

+ Here is the caller graph for this function:

HOST DEVICE SQLTypes SQLTypeInfo::get_type ( ) const
inline

Definition at line 314 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(), Parser::ArrayLiteral::analyze(), Parser::FunctionRef::analyze(), Parser::InsertValuesStmt::analyze(), Analyzer::BinOper::analyze_type_info(), appendDatum(), 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(), TargetExprCodegen::codegenAggregate(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFunctionOper(), CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenIsNullNumber(), Analyzer::BinOper::common_numeric_type(), Analyzer::BinOper::common_string_type(), Geospatial::compress_coords(), import_export::TypedImportBuffer::convert_arrow_val_to_import_buffer(), 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_from_datum(), anonymous_namespace{ExpressionRange.cpp}::extract_max_stat_double(), anonymous_namespace{ExpressionRange.cpp}::extract_min_stat_double(), anonymous_namespace{ResultSetIteration.cpp}::GeoLazyFetchHandler::fetch(), anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::fetch(), import_export::fill_missing_columns(), ChunkMetadata::fillChunkStats(), anonymous_namespace{WindowContext.cpp}::fp_comparator(), anonymous_namespace{ExpressionRange.cpp}::fpRangeFromDecimal(), ArrowForeignStorageBase::generateNullValues(), ArrowForeignStorageBase::generateSentinelValues(), 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{ArrowResultSetConverter.cpp}::get_physical_type(), anonymous_namespace{TypedDataAccessors.h}::get_scalar(), anonymous_namespace{WindowFunctionIR.cpp}::get_window_agg_name(), getArrowImportType(), import_export::TypedImportBuffer::getAsBytes(), Chunk_NS::Chunk::getChunkBuffer(), 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(), import_export::Importer::importDelimited(), import_export::Importer::importGDAL(), 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(), anonymous_namespace{RelAlgExecutor.cpp}::int_value_from_numbers_ptr(), is_castable(), Geospatial::is_null_point(), Analyzer::anonymous_namespace{Analyzer.cpp}::is_null_value(), 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{WindowExpressionRewrite.cpp}::matches_gt_bigint_zero(), need_patch_unnest_double(), Parser::CaseExpr::normalize(), null_val_bit_pattern(), import_export::NullArrayDatum(), import_export::NullDatum(), numeric_type_name(), operator!=(), operator=(), operator==(), pair_to_double(), foreign_storage::ParquetGeospatialEncoder::ParquetGeospatialEncoder(), import_export::TypedImportBuffer::pop_value(), populate_TColumn(), Parser::InsertIntoTableAsSelectStmt::populateData(), DBHandler::populateThriftColumnType(), foreign_storage::ParquetGeospatialEncoder::processGeoElement(), foreign_storage::ParquetGeospatialEncoder::processNullGeoElement(), anonymous_namespace{TypedDataAccessors.h}::put_null(), anonymous_namespace{TypedDataAccessors.h}::put_null_array(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), ArrowForeignStorageBase::read(), 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(), Fragmenter_Namespace::sizeOfRawColumn(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), StringToDatum(), takes_float_argument(), import_export::TDatumToDatum(), Analyzer::Constant::toString(), RelAlgTranslator::translateBinaryGeoFunction(), RelAlgTranslator::translateGeoBinaryConstructor(), 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(), 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::ParquetGeospatialEncoder::validateChunksAndMetadataSizing(), 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().

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

Definition at line 417 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(), 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(), ChunkMetadata::dump(), 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(), pair_to_double(), anonymous_namespace{Datum.cpp}::parseFloatAsInteger(), anonymous_namespace{Datum.cpp}::parseInteger(), Parser::InsertIntoTableAsSelectStmt::populateData(), Fragmenter_Namespace::sizeOfRawColumn(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::sql_type_info_to_ogr_field_type(), StringToDatum(), anonymous_namespace{ResultSetReductionJIT.cpp}::target_info_key(), 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().

417  {
418  if (IS_GEO(type)) {
419  std::string srid_string = "";
420  if (get_output_srid() > 0) {
421  srid_string = ", " + std::to_string(get_output_srid());
422  }
423  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
424  return type_name[static_cast<int>(subtype)] + "(" +
425  type_name[static_cast<int>(type)] + srid_string + ")";
426  }
427  std::string ps = "";
428  if (type == kDECIMAL || type == kNUMERIC) {
429  ps = "(" + std::to_string(dimension) + "," + std::to_string(scale) + ")";
430  } else if (type == kTIMESTAMP) {
431  ps = "(" + std::to_string(dimension) + ")";
432  }
433  if (type == kARRAY) {
434  auto elem_ti = get_elem_type();
435  auto num_elems = (size > 0) ? std::to_string(size / elem_ti.get_size()) : "";
436  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
437  return elem_ti.get_type_name() + ps + "[" + num_elems + "]";
438  }
439  if (type == kCOLUMN) {
440  auto elem_ti = get_elem_type();
441  auto num_elems =
442  (size > 0) ? "[" + std::to_string(size / elem_ti.get_size()) + "]" : "";
443  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
444  return "COLUMN<" + type_name[static_cast<int>(subtype)] + ps + ">" + num_elems;
445  }
446  if (type == kCOLUMN_LIST) {
447  auto elem_ti = get_elem_type();
448  auto num_elems =
449  (size > 0) ? "[" + std::to_string(size / elem_ti.get_size()) + "]" : "";
450  CHECK_LT(static_cast<int>(subtype), kSQLTYPE_LAST);
451  return "COLUMN_LIST<" + type_name[static_cast<int>(subtype)] + ps + ">" + num_elems;
452  }
453  return type_name[static_cast<int>(type)] + ps;
454  }
std::string to_string(char const *&&v)
static std::string type_name[kSQLTYPE_LAST]
Definition: sqltypes.h:756
SQLTypes subtype
Definition: sqltypes.h:747
#define CHECK_LT(x, y)
Definition: Logger.h:213
SQLTypes type
Definition: sqltypes.h:746
size_t num_elems
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:713
#define IS_GEO(T)
Definition: sqltypes.h:245
int dimension
Definition: sqltypes.h:748
HOST DEVICE int get_output_srid() const
Definition: sqltypes.h:320

+ 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 383 of file sqltypes.h.

References kLINESTRING, kMULTIPOLYGON, kPOLYGON, and type.

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

383  {
384  switch (type) {
385  case kLINESTRING:
386  case kPOLYGON:
387  case kMULTIPOLYGON:
388  return true;
389  default:
390  break;
391  }
392  return false;
393  }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::has_render_group ( ) const
inline

Definition at line 394 of file sqltypes.h.

References kMULTIPOLYGON, kPOLYGON, and type.

Referenced by RelAlgTranslator::translateGeoColumn().

394  {
395  switch (type) {
396  case kPOLYGON:
397  case kMULTIPOLYGON:
398  return true;
399  default:
400  break;
401  }
402  return false;
403  }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_array ( ) const
inline

Definition at line 497 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(), ChunkMetadata::dump(), get_buffer_name(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), foreign_storage::Csv::get_placeholder_metadata(), Parser::LocalConnector::getColumnDescriptors(), getLeafColumnRange(), foreign_storage::TypedParquetInPlaceEncoder< int64_t, int32_t >::getRowGroupMetadata(), ResultSet::getTargetValueFromBufferRowwise(), foreign_storage::TypedParquetInPlaceEncoder< int64_t, int32_t >::getUpdatedStats(), CodeGenerator::hashJoinLhs(), 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(), null_val_bit_pattern(), NullAwareValidator< INNER_VALIDATOR >::NullAwareValidator(), ChunkMetadata::operator==(), Analyzer::Constant::operator==(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Catalog_Namespace::Catalog::setColumnDictionary(), anonymous_namespace{LogicalIR.cpp}::should_defer_eval(), import_export::anonymous_namespace{QueryExporterCSV.cpp}::target_value_to_string(), 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().

497 { return type == kARRAY; } // rbc Array
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_buffer ( ) const
inline

Definition at line 507 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().

507  {
508  return is_array() || is_column() || is_column_list() || is_bytes();
509  }
bool is_column() const
Definition: sqltypes.h:502
bool is_bytes() const
Definition: sqltypes.h:504
bool is_column_list() const
Definition: sqltypes.h:503
bool is_array() const
Definition: sqltypes.h:497

+ 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 504 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(), and is_buffer().

504  {
505  return type == kTEXT && get_compression() == kENCODING_NONE;
506  } // rbc Bytes
Definition: sqltypes.h:51
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
SQLTypes type
Definition: sqltypes.h:746

+ 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 574 of file sqltypes.h.

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

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

574  {
575  // can always cast between the same type but different precision/scale/encodings
576  if (type == new_type_info.get_type()) {
577  return true;
578  // can always cast from or to string
579  } else if (is_string() || new_type_info.is_string()) {
580  return true;
581  // can cast between numbers
582  } else if (is_number() && new_type_info.is_number()) {
583  return true;
584  // can cast from timestamp or date to number (epoch)
585  } else if ((type == kTIMESTAMP || type == kDATE) && new_type_info.is_number()) {
586  return true;
587  // can cast from date to timestamp
588  } else if (type == kDATE && new_type_info.get_type() == kTIMESTAMP) {
589  return true;
590  } else if (type == kTIMESTAMP && new_type_info.get_type() == kDATE) {
591  return true;
592  } else if (type == kBOOLEAN && new_type_info.is_number()) {
593  return true;
594  } else if (type == kARRAY && new_type_info.get_type() == kARRAY) {
595  return get_elem_type().is_castable(new_type_info.get_elem_type());
596  } else if (type == kCOLUMN && new_type_info.get_type() == kCOLUMN) {
597  return get_elem_type().is_castable(new_type_info.get_elem_type());
598  } else if (type == kCOLUMN_LIST && new_type_info.get_type() == kCOLUMN_LIST) {
599  return get_elem_type().is_castable(new_type_info.get_elem_type());
600  } else {
601  return false;
602  }
603  }
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:314
bool is_number() const
Definition: sqltypes.h:494
bool is_castable(const SQLTypeInfo &new_type_info) const
Definition: sqltypes.h:574
Definition: sqltypes.h:52
SQLTypes type
Definition: sqltypes.h:746
bool is_string() const
Definition: sqltypes.h:489
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:713

+ 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 502 of file sqltypes.h.

References kCOLUMN, and type.

Referenced by get_buffer_name(), is_buffer(), and DBHandler::value_to_thrift_column().

502 { return type == kCOLUMN; } // rbc Column
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_column_list ( ) const
inline

Definition at line 503 of file sqltypes.h.

References kCOLUMN_LIST, and type.

Referenced by is_buffer().

503 { return type == kCOLUMN_LIST; } // rbc ColumnList
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_date_in_days ( ) const
inline

Definition at line 721 of file sqltypes.h.

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

Referenced by DateDaysEncoder< T, V >::appendData(), DateDaysOverflowValidator::DateDaysOverflowValidator(), get_join_column_type_kind(), Parser::LocalConnector::getColumnDescriptors(), ResultSet::makeTargetValue(), and DBHandler::populateThriftColumnType().

721  {
722  if (type == kDATE) {
723  const auto comp_type = get_compression();
724  if (comp_type == kENCODING_DATE_IN_DAYS) {
725  return true;
726  }
727  }
728  return false;
729  }
Definition: sqltypes.h:52
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
SQLTypes type
Definition: sqltypes.h:746

+ 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 492 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(), CodeGenerator::checkExpressionRanges(), CodeGenerator::codegenAdd(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFunctionOperWithCustomTypeHandling(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), DecimalOverflowValidator::DecimalOverflowValidator(), extract_from_datum(), get_bit_width(), inline_fixed_encoding_null_val(), import_export::NullArrayDatum(), import_export::NullDatum(), numeric_type_name(), pair_to_double(), import_export::TypedImportBuffer::pop_value(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), 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().

492 { return type == kDECIMAL || type == kNUMERIC; }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_dict_encoded_string ( ) const
inline
bool SQLTypeInfo::is_dict_encoded_type ( ) const
inline

Definition at line 530 of file sqltypes.h.

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

Referenced by foreign_storage::is_metadata_placeholder(), and foreign_storage::anonymous_namespace{CsvDataWrapper.cpp}::skip_metadata_scan().

530  {
531  return is_dict_encoded_string() ||
533  }
bool is_dict_encoded_string() const
Definition: sqltypes.h:526
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:713
bool is_array() const
Definition: sqltypes.h:497

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_fixlen_array ( ) const
inline

Definition at line 499 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 Executor::needLinearizeAllFragments().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_fp ( ) const
inline

Definition at line 493 of file sqltypes.h.

References kDOUBLE, kFLOAT, and type.

Referenced by Analyzer::Constant::add_cast(), Executor::castToFP(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCastToFp(), CodeGenerator::codegenDiv(), CodeGenerator::codegenFixedLengthColVarInWindow(), CodeGenerator::codegenIsNullNumber(), 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(), foreign_storage::FloatPointValidator< T >::getMinMaxBoundsAsStrings(), StorageIOFacility::getRsBufferNoPadding(), inline_fp_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), CgenState::inlineFpNull(), CgenState::inlineNull(), is_supported_type_for_extern_execution(), need_patch_unnest_double(), null_val_bit_pattern(), CodeGenerator::NullCheckCodegen::NullCheckCodegen(), numeric_type_name(), Executor::reduceResults(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumn(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_floating_point_mapping(), foreign_storage::ParquetFixedLengthEncoder< V, T >::validateIntegralOrFloatingPointValue(), and foreign_storage::FloatPointValidator< T >::valueWithinBounds().

493 { return type == kFLOAT || type == kDOUBLE; }
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_geometry ( ) const
inline

Definition at line 501 of file sqltypes.h.

References IS_GEO, and type.

Referenced by advance_slot(), advance_target_ptr_col_wise(), advance_target_ptr_row_wise(), Parser::InsertStmt::analyze(), Parser::InsertValuesStmt::analyze(), Catalog_Namespace::Catalog::buildMaps(), TargetExprCodegen::codegen(), GroupByAndAggregate::codegenAggArg(), CodeGenerator::codegenCmp(), CodeGenerator::codegenColVar(), Analyzer::Constant::deep_copy(), Analyzer::Constant::do_cast(), Parser::AddColumnStmt::execute(), import_export::fill_missing_columns(), 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::ParquetGeospatialEncoder::ParquetGeospatialEncoder(), 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_none_encoding(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_geospatial_mapping(), DBHandler::value_to_thrift_column(), and Analyzer::Constant::~Constant().

501 { return IS_GEO(type); }
SQLTypes type
Definition: sqltypes.h:746
#define IS_GEO(T)
Definition: sqltypes.h:245

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_high_precision_timestamp ( ) const
inline

Definition at line 733 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().

733  {
734  if (type == kTIMESTAMP) {
735  const auto dimension = get_dimension();
736  if (dimension > 0) {
737  return true;
738  }
739  }
740  return false;
741  }
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:316
SQLTypes type
Definition: sqltypes.h:746
int dimension
Definition: sqltypes.h:748

+ 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 491 of file sqltypes.h.

References IS_INTEGER, and type.

Referenced by Analyzer::Constant::add_cast(), Parser::FunctionRef::analyze(), Analyzer::BinOper::analyze_type_info(), CodeGenerator::castArrayPointer(), CodeGenerator::codegenAdd(), CodeGenerator::codegenCast(), CodeGenerator::codegenCastBetweenIntTypes(), CodeGenerator::codegenCastFromFp(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), CodeGenerator::codegenMod(), CodeGenerator::codegenMul(), CodeGenerator::codegenSub(), Analyzer::BinOper::common_numeric_type(), NumericConverterFactory< SOURCE_TYPE, TARGET_TYPE >::create(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), ArrowForeignStorageBase::generateNullValues(), ArrowForeignStorageBase::generateSentinelValues(), 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(), numeric_type_name(), pair_to_double(), Parser::InsertIntoTableAsSelectStmt::populateData(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), Executor::reduceResults(), anonymous_namespace{InputMetadata.cpp}::uses_int_meta(), foreign_storage::ParquetUnsignedFixedLengthEncoder< V, T, U >::validate(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_integral_mapping(), foreign_storage::ParquetFixedLengthEncoder< V, T >::validateIntegralOrFloatingPointValue(), and foreign_storage::IntegralFixedLengthBoundsValidator< T >::valueWithinBounds().

491 { return IS_INTEGER(type); }
#define IS_INTEGER(T)
Definition: sqltypes.h:239
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

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

Definition at line 605 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(), and decompress().

605  {
606  // assuming Datum is always uncompressed
607  switch (type) {
608  case kBOOLEAN:
609  return (int8_t)d.boolval == NULL_BOOLEAN;
610  case kTINYINT:
611  return d.tinyintval == NULL_TINYINT;
612  case kSMALLINT:
613  return d.smallintval == NULL_SMALLINT;
614  case kINT:
615  return d.intval == NULL_INT;
616  case kBIGINT:
617  case kNUMERIC:
618  case kDECIMAL:
619  return d.bigintval == NULL_BIGINT;
620  case kFLOAT:
621  return d.floatval == NULL_FLOAT;
622  case kDOUBLE:
623  return d.doubleval == NULL_DOUBLE;
624  case kTIME:
625  case kTIMESTAMP:
626  case kDATE:
627  return d.bigintval == NULL_BIGINT;
628  case kTEXT:
629  case kVARCHAR:
630  case kCHAR:
631  // @TODO handle null strings
632  break;
633  case kNULLT:
634  return true;
635  case kARRAY:
636  return d.arrayval == NULL || d.arrayval->is_null;
637  default:
638  break;
639  }
640  return false;
641  }
int8_t tinyintval
Definition: sqltypes.h:206
#define NULL_DOUBLE
Definition: sqltypes.h:48
#define NULL_FLOAT
bool is_null
Definition: sqltypes.h:147
#define NULL_BIGINT
bool boolval
Definition: sqltypes.h:205
VarlenDatum * arrayval
Definition: sqltypes.h:212
int32_t intval
Definition: sqltypes.h:208
#define NULL_INT
float floatval
Definition: sqltypes.h:210
int64_t bigintval
Definition: sqltypes.h:209
int16_t smallintval
Definition: sqltypes.h:207
#define NULL_BOOLEAN
Definition: sqltypes.h:51
Definition: sqltypes.h:52
Definition: sqltypes.h:40
#define NULL_TINYINT
SQLTypes type
Definition: sqltypes.h:746
#define NULL_SMALLINT
Definition: sqltypes.h:44
double doubleval
Definition: sqltypes.h:211

+ Here is the caller graph for this function:

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

Definition at line 642 of file sqltypes.h.

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

642  {
643  if (type == kFLOAT) {
644  return *(float*)val == NULL_FLOAT;
645  }
646  if (type == kDOUBLE) {
647  return *(double*)val == NULL_DOUBLE;
648  }
649  // val can be either compressed or uncompressed
650  switch (size) {
651  case 1:
652  return *val == NULL_TINYINT;
653  case 2:
654  return *(int16_t*)val == NULL_SMALLINT;
655  case 4:
656  return *(int32_t*)val == NULL_INT;
657  case 8:
658  return *(int64_t*)val == NULL_BIGINT;
659  case kNULLT:
660  return true;
661  default:
662  // @TODO(wei) handle null strings
663  break;
664  }
665  return false;
666  }
#define NULL_DOUBLE
#define NULL_FLOAT
#define NULL_BIGINT
#define NULL_INT
#define NULL_TINYINT
SQLTypes type
Definition: sqltypes.h:746
#define NULL_SMALLINT
HOST DEVICE bool SQLTypeInfo::is_null_fixlen_array ( const int8_t *  val,
int  array_size 
) const
inline

Definition at line 667 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().

667  {
668  // Check if fixed length array has a NULL_ARRAY sentinel as the first element
669  if (type == kARRAY && val && array_size > 0 && array_size == size) {
670  // Need to create element type to get the size, but can't call get_elem_type()
671  // since this is a HOST DEVICE function. Going through copy constructor instead.
672  auto elem_ti{*this};
673  elem_ti.set_type(subtype);
674  elem_ti.set_subtype(kNULLT);
675  auto elem_size = elem_ti.get_storage_size();
676  if (elem_size < 1) {
677  return false;
678  }
679  if (subtype == kFLOAT) {
680  return *(float*)val == NULL_ARRAY_FLOAT;
681  }
682  if (subtype == kDOUBLE) {
683  return *(double*)val == NULL_ARRAY_DOUBLE;
684  }
685  switch (elem_size) {
686  case 1:
687  return *val == NULL_ARRAY_TINYINT;
688  case 2:
689  return *(int16_t*)val == NULL_ARRAY_SMALLINT;
690  case 4:
691  return *(int32_t*)val == NULL_ARRAY_INT;
692  case 8:
693  return *(int64_t*)val == NULL_ARRAY_BIGINT;
694  default:
695  return false;
696  }
697  }
698  return false;
699  }
#define NULL_ARRAY_INT
#define NULL_ARRAY_SMALLINT
#define NULL_ARRAY_TINYINT
SQLTypes subtype
Definition: sqltypes.h:747
#define NULL_ARRAY_FLOAT
#define NULL_ARRAY_DOUBLE
SQLTypes type
Definition: sqltypes.h:746
#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 700 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().

701  {
702  if (type == kARRAY && subtype == kTINYINT && val && array_size > 0 &&
703  array_size == size) {
704  if (array_size == 2 * sizeof(double)) {
705  return *(double*)val == NULL_ARRAY_DOUBLE;
706  }
707  if (array_size == 2 * sizeof(int32_t)) {
708  return *(uint32_t*)val == NULL_ARRAY_COMPRESSED_32;
709  }
710  }
711  return false;
712  }
#define NULL_ARRAY_COMPRESSED_32
SQLTypes subtype
Definition: sqltypes.h:747
#define NULL_ARRAY_DOUBLE
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_string ( ) const
inline

Definition at line 489 of file sqltypes.h.

References IS_STRING, and type.

Referenced by Analyzer::Expr::add_cast(), Analyzer::UOper::add_cast(), Analyzer::CaseExpr::add_cast(), 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(), 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(), Parser::InsertValuesStmt::determineLeafIndex(), Analyzer::Constant::do_cast(), RelAlgExecutor::executeSimpleInsert(), import_export::fill_missing_columns(), get_agg_initial_val(), get_array_context_logical_size(), import_export::TypedImportBuffer::get_data_block_pointers(), anonymous_namespace{TargetExprBuilder.cpp}::get_initial_agg_val(), Catalog_Namespace::Catalog::getColumnDictDirectory(), 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(), foreign_storage::csv_file_buffer_parser::is_null_datum(), is_real_str_or_array(), is_supported_type_for_extern_execution(), Fragmenter_Namespace::isStringVectorData(), ResultSet::makeVarlenTargetValue(), Parser::CaseExpr::normalize(), null_val_bit_pattern(), import_export::NullArray(), 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(), StorageIOFacility::yieldUpdateCallback(), and Analyzer::Constant::~Constant().

489 { return IS_STRING(type); }
#define IS_STRING(T)
Definition: sqltypes.h:244
SQLTypes type
Definition: sqltypes.h:746
bool SQLTypeInfo::is_string_array ( ) const
inline

Definition at line 490 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(), 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().

490 { return (type == kARRAY) && IS_STRING(subtype); }
SQLTypes subtype
Definition: sqltypes.h:747
#define IS_STRING(T)
Definition: sqltypes.h:244
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_time ( ) const
inline

Definition at line 495 of file sqltypes.h.

References is_datetime(), and type.

Referenced by Analyzer::Constant::add_cast(), Analyzer::BinOper::analyze_type_info(), CodeGenerator::codegenCast(), CodeGenerator::codegenCmp(), CodeGenerator::codegenHoistedConstantsLoads(), anonymous_namespace{ArrowResultSetConverter.cpp}::create_or_append_validity(), Analyzer::Constant::do_cast(), inline_fixed_encoding_null_val(), anonymous_namespace{Execute.cpp}::inline_null_val(), anonymous_namespace{RelAlgTranslator.cpp}::is_agg_supported_for_type(), Fragmenter_Namespace::is_integral(), 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().

495 { return is_datetime(type); }
SQLTypes type
Definition: sqltypes.h:746
constexpr auto is_datetime(SQLTypes type)
Definition: sqltypes.h:257

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 514 of file sqltypes.h.

References compression, IS_GEO, IS_STRING, kARRAY, kENCODING_DICT, and type.

Referenced by Chunk_NS::Chunk::createChunkBuffer(), get_agg_type(), Chunk_NS::Chunk::getChunkBuffer(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), Chunk_NS::Chunk::initEncoder(), is_varlen_indeed(), Chunk_NS::Chunk::isChunkOnDevice(), anonymous_namespace{TypedDataAccessors.h}::put_scalar(), ResultSetReductionJIT::reduceOneSlot(), ResultSetStorage::reduceOneSlot(), ResultSetStorage::reduceOneSlotBaseline(), ResultSetStorage::reduceOneSlotSingleValue(), and foreign_storage::update_stats().

514  { // TODO: logically this should ignore fixlen arrays
515  return (IS_STRING(type) && compression != kENCODING_DICT) || type == kARRAY ||
516  IS_GEO(type);
517  }
EncodingType compression
Definition: sqltypes.h:752
#define IS_STRING(T)
Definition: sqltypes.h:244
SQLTypes type
Definition: sqltypes.h:746
#define IS_GEO(T)
Definition: sqltypes.h:245

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_varlen_array ( ) const
inline

Definition at line 498 of file sqltypes.h.

References kARRAY, size, and type.

Referenced by Fragmenter_Namespace::get_var_len_null_array_indexes().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_varlen_indeed ( ) const
inline

Definition at line 520 of file sqltypes.h.

References is_fixlen_array(), and is_varlen().

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

520  {
521  // SQLTypeInfo.is_varlen() is broken with fixedlen array now
522  // and seems left broken for some concern, so fix it locally
523  return is_varlen() && !is_fixlen_array();
524  }
bool is_varlen() const
Definition: sqltypes.h:514
bool is_fixlen_array() const
Definition: sqltypes.h:499

+ 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 535 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.

535  {
536  return type != rhs.get_type() || subtype != rhs.get_subtype() ||
537  dimension != rhs.get_dimension() || scale != rhs.get_scale() ||
538  compression != rhs.get_compression() ||
541  notnull != rhs.get_notnull();
542  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:315
HOST DEVICE int get_scale() const
Definition: sqltypes.h:319
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:314
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:316
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:323
SQLTypes type
Definition: sqltypes.h:746
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:254
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the call graph for this function:

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

Definition at line 563 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.

563  {
564  type = rhs.get_type();
565  subtype = rhs.get_subtype();
566  dimension = rhs.get_dimension();
567  scale = rhs.get_scale();
568  notnull = rhs.get_notnull();
570  comp_param = rhs.get_comp_param();
571  size = rhs.get_size();
572  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:315
HOST DEVICE int get_size() const
Definition: sqltypes.h:324
HOST DEVICE int get_scale() const
Definition: sqltypes.h:319
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:314
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:316
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:323
SQLTypes type
Definition: sqltypes.h:746
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the call graph for this function:

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

Definition at line 543 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.

543  {
544  return type == rhs.get_type() && subtype == rhs.get_subtype() &&
545  dimension == rhs.get_dimension() && scale == rhs.get_scale() &&
546  compression == rhs.get_compression() &&
549  notnull == rhs.get_notnull();
550  }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:315
HOST DEVICE int get_scale() const
Definition: sqltypes.h:319
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:314
SQLTypes subtype
Definition: sqltypes.h:747
bool notnull
Definition: sqltypes.h:751
EncodingType compression
Definition: sqltypes.h:752
HOST DEVICE EncodingType get_compression() const
Definition: sqltypes.h:322
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:316
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:323
SQLTypes type
Definition: sqltypes.h:746
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:254
int comp_param
Definition: sqltypes.h:753
int dimension
Definition: sqltypes.h:748

+ Here is the call graph for this function:

void SQLTypeInfo::set_dimension ( int  d)
inline

Definition at line 406 of file sqltypes.h.

References test_fsi::d, and dimension.

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

406 { dimension = d; }
tuple d
Definition: test_fsi.py:9
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

void SQLTypeInfo::set_fixed_size ( )
inline

Definition at line 413 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::gdalToColumnDescriptors(), Parser::OperExpr::normalize(), and ddl_utils::validate_and_set_array_size().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void SQLTypeInfo::set_input_srid ( int  d)
inline

Definition at line 408 of file sqltypes.h.

References test_fsi::d, and dimension.

Referenced by import_export::Importer::gdalToColumnDescriptors(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), and ddl_utils::validate_and_set_type().

408 { dimension = d; }
tuple d
Definition: test_fsi.py:9
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

void SQLTypeInfo::set_notnull ( bool  n)
inline
void SQLTypeInfo::set_output_srid ( int  s)
inline

Definition at line 410 of file sqltypes.h.

References scale.

Referenced by import_export::Importer::gdalToColumnDescriptors(), RelAlgTranslator::translateGeoBinaryConstructor(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), and ddl_utils::validate_and_set_type().

410 { scale = s; }

+ Here is the caller graph for this function:

void SQLTypeInfo::set_precision ( int  d)
inline

Definition at line 407 of file sqltypes.h.

References test_fsi::d, and dimension.

Referenced by Parser::FixedPtLiteral::analyzeValue(), anonymous_namespace{RelAlgTranslator.cpp}::build_type_info(), and anonymous_namespace{RelAlgDagBuilder.cpp}::parse_type().

407 { dimension = d; }
tuple d
Definition: test_fsi.py:9
int dimension
Definition: sqltypes.h:748

+ Here is the caller graph for this function:

void SQLTypeInfo::set_scale ( int  s)
inline

Definition at line 409 of file sqltypes.h.

References scale.

Referenced by Analyzer::BinOper::analyze_type_info(), Parser::FixedPtLiteral::analyzeValue(), anonymous_namespace{RelAlgTranslator.cpp}::build_type_info(), Catalog_Namespace::Catalog::buildMaps(), parse_numeric(), anonymous_namespace{RelAlgDagBuilder.cpp}::parse_type(), File_Namespace::FileBuffer::readMetadata(), and ddl_utils::validate_and_set_type().

409 { scale = s; }

+ Here is the caller graph for this function:

void SQLTypeInfo::set_size ( int  s)
inline
HOST DEVICE void SQLTypeInfo::set_subtype ( SQLTypes  st)
inline

Definition at line 405 of file sqltypes.h.

References subtype.

Referenced by Parser::ArrayLiteral::analyze(), Catalog_Namespace::Catalog::buildMaps(), Catalog_Namespace::Catalog::expandGeoColumn(), import_export::Importer::gdalToColumnDescriptors(), File_Namespace::FileBuffer::readMetadata(), RelAlgTranslator::translateGeoFunctionArg(), RelAlgTranslator::translateGeoLiteral(), and ddl_utils::validate_and_set_type().

405 { subtype = st; }
SQLTypes subtype
Definition: sqltypes.h:747

+ Here is the caller graph for this function:

HOST DEVICE void SQLTypeInfo::set_type ( SQLTypes  t)
inline

Definition at line 404 of file sqltypes.h.

References t, and type.

Referenced by Catalog_Namespace::Catalog::buildMaps(), import_export::Importer::gdalToColumnDescriptors(), Geospatial::GeoTypesFactory::getGeoColumnsImpl(), File_Namespace::FileBuffer::readMetadata(), RelAlgTranslator::translateGeoBinaryConstructor(), RelAlgTranslator::translateGeoFunctionArg(), and ddl_utils::validate_and_set_type().

404 { type = t; }
char * t
SQLTypes type
Definition: sqltypes.h:746

+ Here is the caller graph for this function:

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

Definition at line 457 of file sqltypes.h.

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

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

457  {
458  return concat("(type=",
459  type_name[static_cast<int>(type)],
460  ", dimension=",
461  get_dimension(),
462  ", scale=",
463  get_scale(),
464  ", null=",
465  get_notnull() ? "not nullable" : "nullable",
466  ", name=",
468  ", comp=",
469  get_comp_param(),
470  ", subtype=",
471  type_name[static_cast<int>(subtype)],
472  ", size=",
473  get_size(),
474  ", element_size=",
476  ")");
477  }
HOST DEVICE int get_size() const
Definition: sqltypes.h:324
HOST DEVICE int get_scale() const
Definition: sqltypes.h:319
std::string get_compression_name() const
Definition: sqltypes.h:455
std::string concat(Types &&...parms)
static std::string type_name[kSQLTYPE_LAST]
Definition: sqltypes.h:756
SQLTypes subtype
Definition: sqltypes.h:747
HOST DEVICE int get_dimension() const
Definition: sqltypes.h:316
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:323
SQLTypes type
Definition: sqltypes.h:746
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:713

+ 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 456 of file sqltypes.h.

References to_string().

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

+ Here is the call graph for this function:

bool SQLTypeInfo::transforms ( ) const
inline

Definition at line 510 of file sqltypes.h.

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

Referenced by CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), and import_export::importGeoFromLonLat().

510  {
511  return IS_GEO(type) && get_output_srid() != get_input_srid();
512  }
HOST DEVICE int get_input_srid() const
Definition: sqltypes.h:318
SQLTypes type
Definition: sqltypes.h:746
#define IS_GEO(T)
Definition: sqltypes.h:245
HOST DEVICE int get_output_srid() const
Definition: sqltypes.h:320

+ 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 757 of file sqltypes.h.

Referenced by get_compression_name().

int SQLTypeInfo::comp_param
private
bool SQLTypeInfo::notnull
private
std::string SQLTypeInfo::type_name
staticprivate
Initial value:
= {"NULL",
"BOOLEAN",
"CHAR",
"VARCHAR",
"NUMERIC",
"DECIMAL",
"INTEGER",
"SMALLINT",
"FLOAT",
"DOUBLE",
"TIME",
"TIMESTAMP",
"BIGINT",
"TEXT",
"DATE",
"ARRAY",
"INTERVAL_DAY_TIME",
"INTERVAL_YEAR_MONTH",
"POINT",
"LINESTRING",
"POLYGON",
"MULTIPOLYGON",
"TINYINT",
"GEOMETRY",
"GEOGRAPHY",
"EVAL_CONTEXT_TYPE",
"VOID",
"CURSOR",
"COLUMN",
"COLUMN_LIST"}

Definition at line 756 of file sqltypes.h.

Referenced by get_type_name(), and to_string().


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