OmniSciDB  bf83d84833
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ThriftSerializers Namespace Reference

Functions

TResultSetLayout::type layout_to_thrift (const QueryDescriptionType layout)
 
QueryDescriptionType layout_from_thrift (const TResultSetLayout::type layout)
 
TAggKind::type agg_kind_to_thrift (const SQLAgg agg)
 
SQLAgg agg_kind_from_thrift (const TAggKind::type agg)
 
AggregatedColRange column_ranges_from_thrift (const std::vector< TColumnRange > &thrift_column_ranges)
 
StringDictionaryGenerations string_dictionary_generations_from_thrift (const std::vector< TDictionaryGeneration > &thrift_string_dictionary_generations)
 
TTypeInfo type_info_to_thrift (const SQLTypeInfo &ti)
 
bool takes_arg (const TargetInfo &target_info)
 
std::vector< TargetMetaInfotarget_meta_infos_from_thrift (const TRowDescriptor &row_desc)
 
void fixup_geo_column_descriptor (TColumnType &col_type, const SQLTypes subtype, const int output_srid)
 
TColumnType target_meta_info_to_thrift (const TargetMetaInfo &target, const size_t idx)
 
TRowDescriptor target_meta_infos_to_thrift (const std::vector< TargetMetaInfo > &targets)
 
TTargetInfo target_info_to_thrift (const TargetInfo &target_info)
 
TargetInfo target_info_from_thrift (const TTargetInfo &thrift_target_info)
 
std::vector< TTargetInfo > target_infos_to_thrift (const std::vector< TargetInfo > &targets)
 
std::vector< TargetInfotarget_infos_from_thrift (const std::vector< TTargetInfo > &thrift_targets)
 
TCountDistinctImplType::type count_distinct_impl_type_to_thrift (const CountDistinctImplType impl_type)
 
TCountDistinctDescriptor count_distinct_descriptor_to_thrift (const CountDistinctDescriptor &count_distinct_descriptor)
 
CountDistinctImplType count_distinct_impl_type_from_thrift (const TCountDistinctImplType::type impl_type)
 
CountDistinctDescriptor count_distinct_descriptor_from_thrift (const TCountDistinctDescriptor &thrift_count_distinct_descriptor)
 

Function Documentation

SQLAgg ThriftSerializers::agg_kind_from_thrift ( const TAggKind::type  agg)
inline

Definition at line 101 of file ThriftSerializers.h.

References AVG, CHECK, COUNT, MAX, MIN, SUM, and UNTHRIFT_AGGKIND_CASE.

Referenced by target_info_from_thrift().

101  {
102  switch (agg) {
104  UNTHRIFT_AGGKIND_CASE(COUNT)
108  UNTHRIFT_AGGKIND_CASE(APPROX_COUNT_DISTINCT)
109  UNTHRIFT_AGGKIND_CASE(SAMPLE)
110  UNTHRIFT_AGGKIND_CASE(SINGLE_VALUE)
111  default:
112  CHECK(false) << static_cast<int>(agg);
113  }
114  abort();
115 }
#define UNTHRIFT_AGGKIND_CASE(kind)
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197

+ Here is the caller graph for this function:

TAggKind::type ThriftSerializers::agg_kind_to_thrift ( const SQLAgg  agg)
inline

Definition at line 79 of file ThriftSerializers.h.

References AVG, CHECK, COUNT, MAX, MIN, SUM, and THRIFT_AGGKIND_CASE.

Referenced by target_info_to_thrift().

79  {
80  switch (agg) {
82  THRIFT_AGGKIND_CASE(COUNT)
86  THRIFT_AGGKIND_CASE(APPROX_COUNT_DISTINCT)
87  THRIFT_AGGKIND_CASE(SAMPLE)
88  THRIFT_AGGKIND_CASE(SINGLE_VALUE)
89  default:
90  CHECK(false) << static_cast<int>(agg);
91  }
92  abort();
93 }
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197
#define THRIFT_AGGKIND_CASE(kind)

+ Here is the caller graph for this function:

AggregatedColRange ThriftSerializers::column_ranges_from_thrift ( const std::vector< TColumnRange > &  thrift_column_ranges)
inline

Definition at line 119 of file ThriftSerializers.h.

References CHECK, PhysicalInput::col_id, ExpressionRange::makeDoubleRange(), ExpressionRange::makeFloatRange(), ExpressionRange::makeIntRange(), ExpressionRange::makeInvalidRange(), and AggregatedColRange::setColRange().

120  {
121  AggregatedColRange column_ranges;
122  for (const auto& thrift_column_range : thrift_column_ranges) {
123  PhysicalInput phys_input{thrift_column_range.col_id, thrift_column_range.table_id};
124  switch (thrift_column_range.type) {
125  case TExpressionRangeType::INTEGER:
126  column_ranges.setColRange(
127  phys_input,
128  ExpressionRange::makeIntRange(thrift_column_range.int_min,
129  thrift_column_range.int_max,
130  thrift_column_range.bucket,
131  thrift_column_range.has_nulls));
132  break;
133  case TExpressionRangeType::FLOAT:
134  column_ranges.setColRange(
135  phys_input,
136  ExpressionRange::makeFloatRange(thrift_column_range.fp_min,
137  thrift_column_range.fp_max,
138  thrift_column_range.has_nulls));
139  break;
140  case TExpressionRangeType::DOUBLE:
141  column_ranges.setColRange(
142  phys_input,
143  ExpressionRange::makeDoubleRange(thrift_column_range.fp_min,
144  thrift_column_range.fp_max,
145  thrift_column_range.has_nulls));
146  break;
147  case TExpressionRangeType::INVALID:
148  column_ranges.setColRange(phys_input, ExpressionRange::makeInvalidRange());
149  break;
150  default:
151  CHECK(false);
152  }
153  }
154  return column_ranges;
155 }
static ExpressionRange makeFloatRange(const float fp_min, const float fp_max, const bool has_nulls)
static ExpressionRange makeIntRange(const int64_t int_min, const int64_t int_max, const int64_t bucket, const bool has_nulls)
static ExpressionRange makeDoubleRange(const double fp_min, const double fp_max, const bool has_nulls)
#define CHECK(condition)
Definition: Logger.h:197
void setColRange(const PhysicalInput &, const ExpressionRange &)
static ExpressionRange makeInvalidRange()

+ Here is the call graph for this function:

CountDistinctDescriptor ThriftSerializers::count_distinct_descriptor_from_thrift ( const TCountDistinctDescriptor &  thrift_count_distinct_descriptor)
inline

Definition at line 345 of file ThriftSerializers.h.

References CountDistinctDescriptor::approximate, CountDistinctDescriptor::bitmap_sz_bits, count_distinct_impl_type_from_thrift(), CPU, CountDistinctDescriptor::device_type, GPU, CountDistinctDescriptor::impl_type_, CountDistinctDescriptor::min_val, and CountDistinctDescriptor::sub_bitmap_count.

346  {
347  CountDistinctDescriptor count_distinct_descriptor;
348  count_distinct_descriptor.impl_type_ =
349  count_distinct_impl_type_from_thrift(thrift_count_distinct_descriptor.impl_type);
350  count_distinct_descriptor.min_val = thrift_count_distinct_descriptor.min_val;
351  count_distinct_descriptor.bitmap_sz_bits =
352  thrift_count_distinct_descriptor.bitmap_sz_bits;
353  count_distinct_descriptor.approximate = thrift_count_distinct_descriptor.approximate;
354  count_distinct_descriptor.device_type =
355  thrift_count_distinct_descriptor.device_type == TDeviceType::GPU
358  count_distinct_descriptor.sub_bitmap_count =
359  thrift_count_distinct_descriptor.sub_bitmap_count;
360  return count_distinct_descriptor;
361 }
CountDistinctImplType impl_type_
CountDistinctImplType count_distinct_impl_type_from_thrift(const TCountDistinctImplType::type impl_type)

+ Here is the call graph for this function:

TCountDistinctDescriptor ThriftSerializers::count_distinct_descriptor_to_thrift ( const CountDistinctDescriptor count_distinct_descriptor)
inline

Definition at line 310 of file ThriftSerializers.h.

References CountDistinctDescriptor::approximate, CountDistinctDescriptor::bitmap_sz_bits, count_distinct_impl_type_to_thrift(), CountDistinctDescriptor::device_type, GPU, CountDistinctDescriptor::impl_type_, CountDistinctDescriptor::min_val, and CountDistinctDescriptor::sub_bitmap_count.

311  {
312  TCountDistinctDescriptor thrift_count_distinct_descriptor;
313  thrift_count_distinct_descriptor.impl_type =
314  count_distinct_impl_type_to_thrift(count_distinct_descriptor.impl_type_);
315  thrift_count_distinct_descriptor.min_val = count_distinct_descriptor.min_val;
316  thrift_count_distinct_descriptor.bitmap_sz_bits =
317  count_distinct_descriptor.bitmap_sz_bits;
318  thrift_count_distinct_descriptor.approximate = count_distinct_descriptor.approximate;
319  thrift_count_distinct_descriptor.device_type =
320  count_distinct_descriptor.device_type == ExecutorDeviceType::GPU ? TDeviceType::GPU
321  : TDeviceType::CPU;
322  thrift_count_distinct_descriptor.sub_bitmap_count =
323  count_distinct_descriptor.sub_bitmap_count;
324  return thrift_count_distinct_descriptor;
325 }
TCountDistinctImplType::type count_distinct_impl_type_to_thrift(const CountDistinctImplType impl_type)
CountDistinctImplType impl_type_

+ Here is the call graph for this function:

CountDistinctImplType ThriftSerializers::count_distinct_impl_type_from_thrift ( const TCountDistinctImplType::type  impl_type)
inline

Definition at line 331 of file ThriftSerializers.h.

References Bitmap, CHECK, Invalid, StdSet, and UNTHRIFT_COUNTDESCRIPTORIMPL_CASE.

Referenced by count_distinct_descriptor_from_thrift().

332  {
333  switch (impl_type) {
337  default:
338  CHECK(false);
339  }
340  abort();
341 }
#define UNTHRIFT_COUNTDESCRIPTORIMPL_CASE(kind)
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197

+ Here is the caller graph for this function:

TCountDistinctImplType::type ThriftSerializers::count_distinct_impl_type_to_thrift ( const CountDistinctImplType  impl_type)
inline

Definition at line 296 of file ThriftSerializers.h.

References Bitmap, CHECK, Invalid, StdSet, and THRIFT_COUNTDESCRIPTORIMPL_CASE.

Referenced by count_distinct_descriptor_to_thrift().

297  {
298  switch (impl_type) {
302  default:
303  CHECK(false);
304  }
305  abort();
306 }
#define THRIFT_COUNTDESCRIPTORIMPL_CASE(kind)
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197

+ Here is the caller graph for this function:

void ThriftSerializers::fixup_geo_column_descriptor ( TColumnType &  col_type,
const SQLTypes  subtype,
const int  output_srid 
)
inline

Definition at line 201 of file ThriftSerializers.h.

Referenced by DBHandler::populateThriftColumnType(), and target_meta_info_to_thrift().

203  {
204  col_type.col_type.precision = static_cast<int>(subtype);
205  col_type.col_type.scale = output_srid;
206 }

+ Here is the caller graph for this function:

QueryDescriptionType ThriftSerializers::layout_from_thrift ( const TResultSetLayout::type  layout)
inline

Definition at line 61 of file ThriftSerializers.h.

References CHECK, GroupByBaselineHash, GroupByPerfectHash, NonGroupedAggregate, Projection, and UNTHRIFT_LAYOUT_CASE.

61  {
62  switch (layout) {
63  UNTHRIFT_LAYOUT_CASE(GroupByPerfectHash)
64  UNTHRIFT_LAYOUT_CASE(GroupByBaselineHash)
65  UNTHRIFT_LAYOUT_CASE(Projection)
66  UNTHRIFT_LAYOUT_CASE(NonGroupedAggregate)
67  default:
68  CHECK(false) << static_cast<int>(layout);
69  }
70  abort();
71 }
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197
#define UNTHRIFT_LAYOUT_CASE(layout)
TResultSetLayout::type ThriftSerializers::layout_to_thrift ( const QueryDescriptionType  layout)
inline

Definition at line 43 of file ThriftSerializers.h.

References CHECK, GroupByBaselineHash, GroupByPerfectHash, NonGroupedAggregate, Projection, and THRIFT_LAYOUT_CASE.

43  {
44  switch (layout) {
45  THRIFT_LAYOUT_CASE(GroupByPerfectHash)
46  THRIFT_LAYOUT_CASE(GroupByBaselineHash)
47  THRIFT_LAYOUT_CASE(Projection)
48  THRIFT_LAYOUT_CASE(NonGroupedAggregate)
49  default:
50  CHECK(false) << static_cast<int>(layout);
51  }
52  abort();
53 }
bool g_enable_watchdog false
Definition: Execute.cpp:76
#define CHECK(condition)
Definition: Logger.h:197
#define THRIFT_LAYOUT_CASE(layout)
StringDictionaryGenerations ThriftSerializers::string_dictionary_generations_from_thrift ( const std::vector< TDictionaryGeneration > &  thrift_string_dictionary_generations)
inline

Definition at line 157 of file ThriftSerializers.h.

References StringDictionaryGenerations::setGeneration().

158  {
159  StringDictionaryGenerations string_dictionary_generations;
160  for (const auto& thrift_string_dictionary_generation :
161  thrift_string_dictionary_generations) {
162  string_dictionary_generations.setGeneration(
163  thrift_string_dictionary_generation.dict_id,
164  thrift_string_dictionary_generation.entry_count);
165  }
166  return string_dictionary_generations;
167 }
void setGeneration(const uint32_t id, const uint64_t generation)

+ Here is the call graph for this function:

bool ThriftSerializers::takes_arg ( const TargetInfo target_info)
inline

Definition at line 187 of file ThriftSerializers.h.

References TargetInfo::agg_kind, TargetInfo::is_agg, is_distinct_target(), and kCOUNT.

Referenced by target_info_from_thrift(), target_info_to_thrift(), and RelAlgTranslator::translateAggregateRex().

187  {
188  return target_info.is_agg &&
189  (target_info.agg_kind != kCOUNT || is_distinct_target(target_info));
190 }
bool is_agg
Definition: TargetInfo.h:40
bool is_distinct_target(const TargetInfo &target_info)
Definition: TargetInfo.h:130
SQLAgg agg_kind
Definition: TargetInfo.h:41
Definition: sqldefs.h:76

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TargetInfo ThriftSerializers::target_info_from_thrift ( const TTargetInfo &  thrift_target_info)
inline

Definition at line 261 of file ThriftSerializers.h.

References TargetInfo::agg_arg_type, TargetInfo::agg_kind, agg_kind_from_thrift(), TargetInfo::is_agg, TargetInfo::is_distinct, kNULLT, TargetInfo::skip_null_val, TargetInfo::sql_type, takes_arg(), and type_info_from_thrift().

Referenced by target_infos_from_thrift().

261  {
262  TargetInfo target_info;
263  target_info.is_agg = thrift_target_info.is_agg;
264  target_info.agg_kind = agg_kind_from_thrift(thrift_target_info.kind);
265  target_info.sql_type = type_info_from_thrift(thrift_target_info.type);
266  target_info.is_distinct = thrift_target_info.is_distinct;
267  target_info.agg_arg_type = takes_arg(target_info)
268  ? type_info_from_thrift(thrift_target_info.arg_type)
270  target_info.skip_null_val = thrift_target_info.skip_nulls;
271  return target_info;
272 }
SQLTypeInfo sql_type
Definition: TargetInfo.h:42
bool skip_null_val
Definition: TargetInfo.h:44
SQLTypeInfo agg_arg_type
Definition: TargetInfo.h:43
bool is_agg
Definition: TargetInfo.h:40
SQLTypeInfo type_info_from_thrift(const TTypeInfo &thrift_ti, const bool strip_geo_encoding=false)
SQLAgg agg_kind_from_thrift(const TAggKind::type agg)
SQLAgg agg_kind
Definition: TargetInfo.h:41
bool takes_arg(const TargetInfo &target_info)
bool g_enable_watchdog false
Definition: Execute.cpp:76
bool is_distinct
Definition: TargetInfo.h:45

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TTargetInfo ThriftSerializers::target_info_to_thrift ( const TargetInfo target_info)
inline

Definition at line 248 of file ThriftSerializers.h.

References TargetInfo::agg_arg_type, TargetInfo::agg_kind, agg_kind_to_thrift(), TargetInfo::is_agg, TargetInfo::is_distinct, TargetInfo::skip_null_val, TargetInfo::sql_type, takes_arg(), and type_info_to_thrift().

Referenced by target_infos_to_thrift().

248  {
249  TTargetInfo thrift_target_info;
250  thrift_target_info.is_agg = target_info.is_agg;
251  thrift_target_info.kind = agg_kind_to_thrift(target_info.agg_kind);
252  thrift_target_info.type = type_info_to_thrift(target_info.sql_type);
253  thrift_target_info.arg_type = takes_arg(target_info)
254  ? type_info_to_thrift(target_info.agg_arg_type)
255  : thrift_target_info.type;
256  thrift_target_info.skip_nulls = target_info.skip_null_val;
257  thrift_target_info.is_distinct = target_info.is_distinct;
258  return thrift_target_info;
259 }
SQLTypeInfo sql_type
Definition: TargetInfo.h:42
bool skip_null_val
Definition: TargetInfo.h:44
SQLTypeInfo agg_arg_type
Definition: TargetInfo.h:43
bool is_agg
Definition: TargetInfo.h:40
SQLAgg agg_kind
Definition: TargetInfo.h:41
bool takes_arg(const TargetInfo &target_info)
TAggKind::type agg_kind_to_thrift(const SQLAgg agg)
bool is_distinct
Definition: TargetInfo.h:45
TTypeInfo type_info_to_thrift(const SQLTypeInfo &ti)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector<TargetInfo> ThriftSerializers::target_infos_from_thrift ( const std::vector< TTargetInfo > &  thrift_targets)
inline

Definition at line 283 of file ThriftSerializers.h.

References target_info_from_thrift().

284  {
285  std::vector<TargetInfo> targets;
286  for (const auto& thrift_target_info : thrift_targets) {
287  targets.push_back(target_info_from_thrift(thrift_target_info));
288  }
289  return targets;
290 }
TargetInfo target_info_from_thrift(const TTargetInfo &thrift_target_info)

+ Here is the call graph for this function:

std::vector<TTargetInfo> ThriftSerializers::target_infos_to_thrift ( const std::vector< TargetInfo > &  targets)
inline

Definition at line 274 of file ThriftSerializers.h.

References target_info_to_thrift().

275  {
276  std::vector<TTargetInfo> thrift_targets;
277  for (const auto& target_info : targets) {
278  thrift_targets.push_back(target_info_to_thrift(target_info));
279  }
280  return thrift_targets;
281 }
TTargetInfo target_info_to_thrift(const TargetInfo &target_info)

+ Here is the call graph for this function:

TColumnType ThriftSerializers::target_meta_info_to_thrift ( const TargetMetaInfo target,
const size_t  idx 
)
inline

Definition at line 208 of file ThriftSerializers.h.

References encoding_to_thrift(), fixup_geo_column_descriptor(), TargetMetaInfo::get_resname(), TargetMetaInfo::get_type_info(), IS_GEO, kARRAY, kDATE, to_string(), SQLTypeInfo::type, and type_to_thrift().

Referenced by target_meta_infos_to_thrift().

209  {
210  TColumnType proj_info;
211  proj_info.col_name = target.get_resname();
212  if (proj_info.col_name.empty()) {
213  proj_info.col_name = "result_" + std::to_string(idx + 1);
214  }
215  const auto& target_ti = target.get_type_info();
216  proj_info.col_type.type = type_to_thrift(target_ti);
217  proj_info.col_type.encoding = encoding_to_thrift(target_ti);
218  proj_info.col_type.nullable = !target_ti.get_notnull();
219  proj_info.col_type.is_array = target_ti.get_type() == kARRAY;
220  if (IS_GEO(target_ti.get_type())) {
222  proj_info, target_ti.get_subtype(), target_ti.get_output_srid());
223  } else {
224  proj_info.col_type.precision = target_ti.get_precision();
225  proj_info.col_type.scale = target_ti.get_scale();
226  }
227  if (target_ti.get_type() == kDATE) {
228  proj_info.col_type.size = target_ti.get_size();
229  }
230  proj_info.col_type.comp_param =
231  (target_ti.is_date_in_days() && target_ti.get_comp_param() == 0)
232  ? 32
233  : target_ti.get_comp_param();
234  return proj_info;
235 }
TDatumType::type type_to_thrift(const SQLTypeInfo &type_info)
const SQLTypeInfo & get_type_info() const
std::string to_string(char const *&&v)
void fixup_geo_column_descriptor(TColumnType &col_type, const SQLTypes subtype, const int output_srid)
Definition: sqltypes.h:52
SQLTypes type
Definition: sqltypes.h:730
const std::string & get_resname() const
#define IS_GEO(T)
Definition: sqltypes.h:242
TEncodingType::type encoding_to_thrift(const SQLTypeInfo &type_info)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector<TargetMetaInfo> ThriftSerializers::target_meta_infos_from_thrift ( const TRowDescriptor &  row_desc)
inline

Definition at line 192 of file ThriftSerializers.h.

References type_info_from_thrift().

193  {
194  std::vector<TargetMetaInfo> target_meta_infos;
195  for (const auto& col : row_desc) {
196  target_meta_infos.emplace_back(col.col_name, type_info_from_thrift(col.col_type));
197  }
198  return target_meta_infos;
199 }
SQLTypeInfo type_info_from_thrift(const TTypeInfo &thrift_ti, const bool strip_geo_encoding=false)

+ Here is the call graph for this function:

TRowDescriptor ThriftSerializers::target_meta_infos_to_thrift ( const std::vector< TargetMetaInfo > &  targets)
inline

Definition at line 237 of file ThriftSerializers.h.

References target_meta_info_to_thrift().

Referenced by DBHandler::convert_rows().

238  {
239  TRowDescriptor row_desc;
240  size_t i = 0;
241  for (const auto& target : targets) {
242  row_desc.push_back(target_meta_info_to_thrift(target, i));
243  ++i;
244  }
245  return row_desc;
246 }
TColumnType target_meta_info_to_thrift(const TargetMetaInfo &target, const size_t idx)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TTypeInfo ThriftSerializers::type_info_to_thrift ( const SQLTypeInfo ti)
inline

Definition at line 169 of file ThriftSerializers.h.

References encoding_to_thrift(), SQLTypeInfo::get_comp_param(), SQLTypeInfo::get_elem_type(), SQLTypeInfo::get_notnull(), SQLTypeInfo::get_precision(), SQLTypeInfo::get_scale(), SQLTypeInfo::get_size(), SQLTypeInfo::get_subtype(), SQLTypeInfo::get_type(), SQLTypeInfo::is_array(), IS_GEO, and type_to_thrift().

Referenced by DBHandler::get_tables_meta_impl(), and target_info_to_thrift().

169  {
170  TTypeInfo thrift_ti;
171  thrift_ti.type =
173  thrift_ti.encoding = encoding_to_thrift(ti);
174  thrift_ti.nullable = !ti.get_notnull();
175  thrift_ti.is_array = ti.is_array();
176  // TODO: Properly serialize geospatial subtype. For now, the value in precision is the
177  // same as the value in scale; overload the precision field with the subtype of the
178  // geospatial type (currently kGEOMETRY or kGEOGRAPHY)
179  thrift_ti.precision =
180  IS_GEO(ti.get_type()) ? static_cast<int32_t>(ti.get_subtype()) : ti.get_precision();
181  thrift_ti.scale = ti.get_scale();
182  thrift_ti.comp_param = ti.get_comp_param();
183  thrift_ti.size = ti.get_size();
184  return thrift_ti;
185 }
HOST DEVICE SQLTypes get_subtype() const
Definition: sqltypes.h:312
HOST DEVICE int get_size() const
Definition: sqltypes.h:321
TDatumType::type type_to_thrift(const SQLTypeInfo &type_info)
HOST DEVICE int get_scale() const
Definition: sqltypes.h:316
HOST DEVICE SQLTypes get_type() const
Definition: sqltypes.h:311
int get_precision() const
Definition: sqltypes.h:314
HOST DEVICE int get_comp_param() const
Definition: sqltypes.h:320
HOST DEVICE bool get_notnull() const
Definition: sqltypes.h:318
SQLTypeInfo get_elem_type() const
Definition: sqltypes.h:697
#define IS_GEO(T)
Definition: sqltypes.h:242
bool is_array() const
Definition: sqltypes.h:486
TEncodingType::type encoding_to_thrift(const SQLTypeInfo &type_info)

+ Here is the call graph for this function:

+ Here is the caller graph for this function: