23 #ifndef QUERYENGINE_SQLTYPESLAYOUT_H
24 #define QUERYENGINE_SQLTYPESLAYOUT_H
41 const auto agg_type = target.
agg_kind;
54 auto modified_target_type = target.
sql_type;
56 return modified_target_type;
62 const auto agg_type = target.
agg_kind;
81 return inline_int_null_value<int8_t>();
83 return inline_int_null_value<int8_t>();
85 return inline_int_null_value<int16_t>();
87 return inline_int_null_value<int32_t>();
89 return inline_int_null_value<int64_t>();
98 return inline_int_null_value<int64_t>();
101 return inline_int_null_value<int64_t>();
115 return inline_int_null_value<int32_t>();
117 return inline_int_null_value<int16_t>();
120 CHECK(
false) <<
"Unknown encoding width for date in days: "
131 return inline_int_null_value<uint8_t>();
133 return inline_int_null_value<uint16_t>();
135 return inline_int_null_value<int32_t>();
138 CHECK(
false) <<
"Unknown size for dictionary encoded type: " << ti.
get_size();
165 for (
unsigned i = 0; i < exp; ++i) {
175 throw std::runtime_error(
176 "Untyped NULL values are not supported. Please CAST any NULL "
177 "constants to a type.");
197 return sizeof(time_t) * 8;
204 throw std::runtime_error(
"Projecting on unsized array column not supported.");
223 UNREACHABLE() <<
"Unhandled int_type: " << int_type;
232 #endif // QUERYENGINE_SQLTYPESLAYOUT_H
void set_compact_type(TargetInfo &target, const SQLTypeInfo &new_type)
const Analyzer::Expr * agg_arg(const Analyzer::Expr *expr)
HOST DEVICE int get_size() const
HOST DEVICE SQLTypes get_type() const
double inline_fp_null_val(const SQL_TYPE_INFO &ti)
const SQLTypeInfo get_compact_type(const TargetInfo &target)
size_t get_bit_width(const SQLTypeInfo &ti)
int get_logical_size() const
HOST DEVICE EncodingType get_compression() const
constexpr float inline_fp_null_value< float >()
constexpr double inline_fp_null_value< double >()
HOST DEVICE int get_comp_param() const
uint64_t exp_to_scale(const unsigned exp)
int64_t inline_int_null_val(const SQL_TYPE_INFO &ti)
int64_t inline_fixed_encoding_null_val(const SQL_TYPE_INFO &ti)
SQLTypeInfo get_elem_type() const
bool is_unsigned_type(const SQLTypeInfo &ti)
bool is_agg_domain_range_equivalent(const SQLAgg &agg_kind)