OmniSciDB  85c2d10cdc
 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 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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:758
char * t
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:758
char * t
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:758
char * t
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
HOST DEVICE int get_storage_size() const
Definition: sqltypes.h:758
char * t
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

+ Here is the caller graph for this function:

Member Function Documentation

int SQLTypeInfo::get_array_context_logical_size ( ) const
inline

Definition at line 551 of file sqltypes.h.

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

Referenced by ResultSet::makeVarlenTargetValue().

551  {
552  if (is_string()) {
553  auto comp_type(get_compression());
554  if (comp_type == kENCODING_DICT || comp_type == kENCODING_FIXED ||
555  comp_type == kENCODING_NONE) {
556  return sizeof(int32_t);
557  }
558  }
559  return get_logical_size();
560  }
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:488

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

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

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

716  {
718  }
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
SQLTypes type
Definition: sqltypes.h:745
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

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

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

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

+ 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:752
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:751
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:751
static std::string comp_name[kENCODING_LAST]
Definition: sqltypes.h:756

+ 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:747

+ Here is the caller graph for this function:

SQLTypeInfo SQLTypeInfo::get_elem_type ( ) const
inline

Definition at line 712 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(), datum_to_string(), 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::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().

712  {
713  return SQLTypeInfo(
715  }
SQLTypes subtype
Definition: sqltypes.h:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

+ 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:747

+ 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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
SQLTypes type
Definition: sqltypes.h:745
int dimension
Definition: sqltypes.h:747

+ 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:750
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:745

+ 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:745

+ 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(), Analyzer::anonymous_namespace{Analyzer.cpp}::decimal_to_int_frac(), 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 758 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().

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

+ 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_fixed_encoding(), File_Namespace::FileBuffer::writeMetadata(), and import_export::TypedImportBuffer::~TypedImportBuffer().

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

+ 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:745
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:755
SQLTypes subtype
Definition: sqltypes.h:746
#define CHECK_LT(x, y)
Definition: Logger.h:207
SQLTypes type
Definition: sqltypes.h:745
size_t num_elems
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:712
#define IS_GEO(T)
Definition: sqltypes.h:245
int dimension
Definition: sqltypes.h:747
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:745

+ 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:745

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_array ( ) const
inline

Definition at line 496 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(), datum_to_string(), DecimalOverflowValidator::DecimalOverflowValidator(), Analyzer::Constant::do_cast(), ChunkMetadata::dump(), get_buffer_name(), anonymous_namespace{TypedDataAccessors.h}::get_element_size(), foreign_storage::Csv::get_placeholder_metadata(), foreign_storage::get_var_length_data_block_size(), 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(), 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().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_buffer ( ) const
inline

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

506  {
507  return is_array() || is_column() || is_column_list() || is_bytes();
508  }
bool is_column() const
Definition: sqltypes.h:501
bool is_bytes() const
Definition: sqltypes.h:503
bool is_column_list() const
Definition: sqltypes.h:502
bool is_array() const
Definition: sqltypes.h:496

+ 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 503 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().

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

+ 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 573 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().

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

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

References kCOLUMN, and type.

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

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_column_list ( ) const
inline

Definition at line 502 of file sqltypes.h.

References kCOLUMN_LIST, and type.

Referenced by is_buffer().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_date_in_days ( ) const
inline

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

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

+ 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 491 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(), datum_to_string(), 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::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().

491 { return type == kDECIMAL || type == kNUMERIC; }
SQLTypes type
Definition: sqltypes.h:745

+ 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 529 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().

529  {
530  return is_dict_encoded_string() ||
532  }
bool is_dict_encoded_string() const
Definition: sqltypes.h:525
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:712
bool is_array() const
Definition: sqltypes.h:496

+ 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 498 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().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_fp ( ) const
inline

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

492 { return type == kFLOAT || type == kDOUBLE; }
SQLTypes type
Definition: sqltypes.h:745

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_geometry ( ) const
inline

Definition at line 500 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(), foreign_storage::get_var_length_data_block_size(), 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().

500 { return IS_GEO(type); }
SQLTypes type
Definition: sqltypes.h:745
#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 732 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().

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

+ 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 490 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().

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

+ Here is the caller graph for this function:

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

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

604  {
605  // assuming Datum is always uncompressed
606  switch (type) {
607  case kBOOLEAN:
608  return (int8_t)d.boolval == NULL_BOOLEAN;
609  case kTINYINT:
610  return d.tinyintval == NULL_TINYINT;
611  case kSMALLINT:
612  return d.smallintval == NULL_SMALLINT;
613  case kINT:
614  return d.intval == NULL_INT;
615  case kBIGINT:
616  case kNUMERIC:
617  case kDECIMAL:
618  return d.bigintval == NULL_BIGINT;
619  case kFLOAT:
620  return d.floatval == NULL_FLOAT;
621  case kDOUBLE:
622  return d.doubleval == NULL_DOUBLE;
623  case kTIME:
624  case kTIMESTAMP:
625  case kDATE:
626  return d.bigintval == NULL_BIGINT;
627  case kTEXT:
628  case kVARCHAR:
629  case kCHAR:
630  // @TODO handle null strings
631  break;
632  case kNULLT:
633  return true;
634  case kARRAY:
635  return d.arrayval == NULL || d.arrayval->is_null;
636  default:
637  break;
638  }
639  return false;
640  }
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:745
#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 641 of file sqltypes.h.

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

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

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

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

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_string ( ) const
inline

Definition at line 488 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(), foreign_storage::get_var_length_data_block_size(), 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().

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

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

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

+ Here is the caller graph for this function:

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

Definition at line 497 of file sqltypes.h.

References kARRAY, size, and type.

Referenced by Fragmenter_Namespace::get_var_len_null_array_indexes().

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

+ Here is the caller graph for this function:

bool SQLTypeInfo::is_varlen_indeed ( ) const
inline

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

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

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

534  {
535  return type != rhs.get_type() || subtype != rhs.get_subtype() ||
536  dimension != rhs.get_dimension() || scale != rhs.get_scale() ||
537  compression != rhs.get_compression() ||
540  notnull != rhs.get_notnull();
541  }
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
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:745
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:254
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

+ Here is the call graph for this function:

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

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

562  {
563  type = rhs.get_type();
564  subtype = rhs.get_subtype();
565  dimension = rhs.get_dimension();
566  scale = rhs.get_scale();
567  notnull = rhs.get_notnull();
569  comp_param = rhs.get_comp_param();
570  size = rhs.get_size();
571  }
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
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:745
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

+ Here is the call graph for this function:

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

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

542  {
543  return type == rhs.get_type() && subtype == rhs.get_subtype() &&
544  dimension == rhs.get_dimension() && scale == rhs.get_scale() &&
545  compression == rhs.get_compression() &&
548  notnull == rhs.get_notnull();
549  }
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:746
bool notnull
Definition: sqltypes.h:750
EncodingType compression
Definition: sqltypes.h:751
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:745
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
#define TRANSIENT_DICT(ID)
Definition: sqltypes.h:254
int comp_param
Definition: sqltypes.h:752
int dimension
Definition: sqltypes.h:747

+ 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:747

+ 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:758

+ 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:747

+ 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:747

+ Here is the caller graph for this function:

void SQLTypeInfo::set_scale ( int  s)
inline
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:746

+ 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:745

+ Here is the caller graph for this function:

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

Definition at line 456 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(), and RexOperator::toString().

456  {
457  return concat("(",
458  type_name[static_cast<int>(type)],
459  ", ",
460  get_dimension(),
461  ", ",
462  get_scale(),
463  ", ",
464  get_notnull() ? "not nullable" : "nullable",
465  ", ",
467  ", ",
468  get_comp_param(),
469  ", ",
470  type_name[static_cast<int>(subtype)],
471  ": ",
472  get_size(),
473  ": ",
475  ")");
476  }
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:755
SQLTypes subtype
Definition: sqltypes.h:746
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:745
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:321
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:712

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool SQLTypeInfo::transforms ( ) const
inline

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

509  {
510  return IS_GEO(type) && get_output_srid() != get_input_srid();
511  }
HOST DEVICE int get_input_srid() const
Definition: sqltypes.h:318
SQLTypes type
Definition: sqltypes.h:745
#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 756 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 755 of file sqltypes.h.

Referenced by get_type_name(), and to_string().


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