17 #ifndef THRIFT_TYPE_CONVERT_H
18 #define THRIFT_TYPE_CONVERT_H
20 #include "gen-cpp/heavy_types.h"
33 return TDatumType::BOOL;
35 return TDatumType::TINYINT;
37 return TDatumType::SMALLINT;
39 return TDatumType::INT;
41 return TDatumType::BIGINT;
43 return TDatumType::FLOAT;
46 return TDatumType::DECIMAL;
48 return TDatumType::DOUBLE;
52 return TDatumType::STR;
54 return TDatumType::TIME;
56 return TDatumType::TIMESTAMP;
58 return TDatumType::DATE;
60 return TDatumType::INTERVAL_DAY_TIME;
62 return TDatumType::INTERVAL_YEAR_MONTH;
64 return TDatumType::POINT;
66 return TDatumType::LINESTRING;
68 return TDatumType::POLYGON;
70 return TDatumType::MULTIPOLYGON;
72 return TDatumType::GEOMETRY;
74 return TDatumType::GEOGRAPHY;
83 case TDatumType::BOOL:
85 case TDatumType::TINYINT:
87 case TDatumType::SMALLINT:
91 case TDatumType::BIGINT:
93 case TDatumType::FLOAT:
95 case TDatumType::DECIMAL:
97 case TDatumType::DOUBLE:
101 case TDatumType::TIME:
103 case TDatumType::TIMESTAMP:
105 case TDatumType::DATE:
107 case TDatumType::INTERVAL_DAY_TIME:
109 case TDatumType::INTERVAL_YEAR_MONTH:
111 case TDatumType::POINT:
113 case TDatumType::LINESTRING:
115 case TDatumType::POLYGON:
117 case TDatumType::MULTIPOLYGON:
119 case TDatumType::GEOMETRY:
121 case TDatumType::GEOGRAPHY:
129 #define THRIFT_ENCODING_CASE(encoding) \
130 case kENCODING_##encoding: \
131 return TEncodingType::encoding;
133 #define UNTHRIFT_ENCODING_CASE(encoding) \
134 case TEncodingType::encoding: \
135 return kENCODING_##encoding;
156 switch (tEncodingType) {
180 ti.is_array ? type :
kNULLT);
182 internal_ti.set_precision(ti.precision);
183 internal_ti.set_scale(ti.scale);
185 internal_ti.set_precision(ti.precision);
188 internal_ti.set_subtype(static_cast<SQLTypes>(ti.precision));
189 internal_ti.set_input_srid(ti.scale);
190 internal_ti.set_output_srid(ti.scale);
192 internal_ti.set_size(ti.size);
193 return internal_ti.get_type_name();
205 ti.is_array ? type :
kNULLT);
206 return internal_ti.get_compression_name();
210 const bool strip_geo_encoding =
false) {
213 const auto base_type =
static_cast<SQLTypes>(thrift_ti.precision);
221 thrift_ti.comp_param,
224 if (thrift_ti.is_array) {
230 thrift_ti.comp_param,
232 ati.set_size(thrift_ti.size);
240 thrift_ti.comp_param,
244 #endif // THRIFT_TYPE_CONVERT_H
HOST DEVICE SQLTypes get_subtype() const
#define THRIFT_ENCODING_CASE(encoding)
TDatumType::type type_to_thrift(const SQLTypeInfo &type_info)
EncodingType thrift_to_encoding(const TEncodingType::type tEncodingType)
SQLTypes thrift_to_type(const TDatumType::type &type)
HOST DEVICE SQLTypes get_type() const
SQLTypeInfo type_info_from_thrift(const TTypeInfo &thrift_ti, const bool strip_geo_encoding=false)
std::string thrift_to_encoding_name(const TTypeInfo &ti)
std::string thrift_to_name(const TTypeInfo &ti)
HOST DEVICE EncodingType get_compression() const
#define UNTHRIFT_ENCODING_CASE(encoding)
TEncodingType::type encoding_to_thrift(const SQLTypeInfo &type_info)