22 #include <type_traits>
31 #if !(defined(__CUDACC__) || defined(NO_BOOST))
32 #include "../Shared/DateTimeParser.h"
36 #include "../Shared/InlineNullValues.h"
37 #include "../Shared/funcannotations.h"
43 #endif // #ifndef UDF_COMPILED
44 #endif // #ifndef __CUDACC__
48 #define EXTENSION_INLINE_HOST extern "C" RUNTIME_EXPORT ALWAYS_INLINE HOST
49 #define EXTENSION_NOINLINE_HOST extern "C" RUNTIME_EXPORT NEVER_INLINE HOST
51 #define EXTENSION_INLINE extern "C" RUNTIME_EXPORT ALWAYS_INLINE DEVICE
52 #define EXTENSION_NOINLINE extern "C" RUNTIME_EXPORT NEVER_INLINE DEVICE
53 #define TEMPLATE_INLINE ALWAYS_INLINE DEVICE
54 #define TEMPLATE_NOINLINE NEVER_INLINE DEVICE
57 int64_t element_size);
62 #define FUNC_NAME (std::string(__func__).substr(0, std::string(__func__).find("__")))
64 #define ERROR_STRING(MSG) \
65 (std::string(__FILE__).substr(std::string(__FILE__).rfind("/") + 1) + ":" + \
66 std::to_string(__LINE__) + " " + FUNC_NAME + ": " + MSG) \
68 #define TABLE_FUNCTION_ERROR(MSG) table_function_error(ERROR_STRING(MSG))
69 #define ERROR_MESSAGE(MSG) error_message(ERROR_STRING(MSG))
73 int64_t output_array_values_total_number);
78 int64_t output_array_values_total_number);
88 const uint8_t* raw_bytes,
89 const size_t num_bytes,
94 const uint8_t*& raw_bytes,
126 #define GET_DICT_DB_ID(mgr, arg_idx) (mgr.getDictDbId(__func__, arg_idx))
128 #define GET_DICT_ID(mgr, arg_idx) (mgr.getDictId(__func__, arg_idx))
137 const char* func_name,
141 const char* func_name,
158 operator int32_t()
const {
return value; }
166 return value == inline_int_null_value<int32_t>();
174 return value == other;
178 return value == other;
197 return value < other;
201 return value < other;
217 null_val.
value = inline_int_null_value<int32_t>();
222 template <
typename T>
238 ptr =
reinterpret_cast<T*
>(
246 if (index < static_cast<unsigned int>(
size)) {
271 for (int64_t i = 0; i <
size; i++) {
276 }
else if (i > 8 && i < size - 2) {
298 size_ = str.length();
305 ptr_ =
reinterpret_cast<char*
>(
310 operator std::string()
const {
return std::string(
ptr_,
size_); }
320 for (
int i = 0; i <
size_; i++) {
321 if (rhs[i] ==
'\0' ||
ptr_[i] != rhs[i]) {
325 return rhs[
size_] ==
'\0';
327 return strcmp(
ptr_, rhs) == 0;
350 #if !(defined(__CUDACC__) || defined(NO_BOOST))
352 time = dateTimeParse<kTIMESTAMP>(str, 9);
358 if (other.
time > 0) {
359 if (
time > (std::numeric_limits<int64_t>::max() - other.
time)) {
360 throw std::underflow_error(
"Underflow in Timestamp addition!");
363 if (
time < (std::numeric_limits<int64_t>::min() - other.
time)) {
364 throw std::overflow_error(
"Overflow in Timestamp addition!");
373 if (other.
time > 0) {
374 if (
time < (std::numeric_limits<int64_t>::min() + other.
time)) {
375 throw std::underflow_error(
"Underflow in Timestamp substraction!");
378 if (
time > (std::numeric_limits<int64_t>::max() + other.
time)) {
379 throw std::overflow_error(
"Overflow in Timestamp substraction!");
388 if (other.
time == 0) {
389 throw std::runtime_error(
"Timestamp division by zero!");
397 int64_t overflow_test =
static_cast<int64_t
>(
time) * static_cast<int64_t>(multiplier);
398 if (
time != 0 && overflow_test /
time != static_cast<int64_t>(multiplier)) {
399 throw std::overflow_error(
"Overflow in Timestamp multiplication!");
492 return Timestamp(inline_int_null_value<int64_t>());
521 throw std::runtime_error(
"Timestamp division by zero!");
526 (timeval < 0 && end.time > begin.
time)) {
535 throw std::overflow_error(
"Overflow in INTERVAL precision conversion!");
539 return diff / asNanoSecs;
568 (timeval < 0 && end.time > begin.
time)) {
581 return interval + *
this;
586 return interval + *
this;
719 template <
typename T>
720 static DEVICE __constant__
T Column_null_value;
723 template <
typename T>
734 :
ptr_(input_vec.data()),
num_rows_(static_cast<int64_t>(input_vec.size())) {}
741 throw std::runtime_error(
"column buffer index is out of range");
743 auto& null_value = Column_null_value<T>;
759 memcpy(
ptr_, &other[0], other.
size() *
sizeof(
T));
761 throw std::runtime_error(
"cannot copy assign columns with different sizes");
765 for (
unsigned int i = 0; i <
size(); i++) {
783 template <
typename T>
795 : flatbuffer_(flatbuffer),
num_rows_(num_rows) {}
802 auto status = m.getItem(index, size, ptr, is_null);
803 if (status == FlatBufferManager::Status::ItemUnspecifiedError) {
804 if (expected_numel < 0) {
806 throw std::runtime_error(
"getItem failed: " + ::
toString(status));
809 status = m.setItem(index,
811 expected_numel *
sizeof(
T),
813 if (status != FlatBufferManager::Status::Success) {
815 throw std::runtime_error(
"getItem failed[setItem]: " + ::
toString(status));
818 status = m.getItem(index, size, ptr, is_null);
820 if (status == FlatBufferManager::Status::Success) {
821 if (expected_numel >= 0 &&
822 expected_numel * static_cast<int64_t>(
sizeof(
T)) != size) {
824 throw std::runtime_error(
"getItem failed: unexpected size");
829 throw std::runtime_error(
"getItem failed: " + ::
toString(status));
837 return getItem(static_cast<int64_t>(index));
845 auto status = m.isNull(index, is_null);
847 if (status != FlatBufferManager::Status::Success) {
848 throw std::runtime_error(
"isNull failed: " + ::
toString(status));
856 auto status = m.
setNull(index);
858 if (status != FlatBufferManager::Status::Success) {
859 throw std::runtime_error(
"setNull failed: " + ::
toString(status));
870 status = m.setItem(index,
871 reinterpret_cast<const int8_t*>(&(other[0])),
875 if (status != FlatBufferManager::Status::Success) {
876 throw std::runtime_error(
"setItem failed: " + ::
toString(status));
887 status = m.concatItem(index,
888 reinterpret_cast<const int8_t*>(&(other[0])),
891 if (status != FlatBufferManager::Status::Success) {
892 throw std::runtime_error(
"concatItem failed: " + ::
toString(status));
919 , string_dict_proxy_(other.string_dict_proxy_) {}
921 const int64_t num_rows,
923 :
ptr_(ptr),
num_rows_(num_rows), string_dict_proxy_(string_dict_proxy) {}
925 :
ptr_(input_vec.data())
926 ,
num_rows_(static_cast<int64_t>(input_vec.size()))
927 , string_dict_proxy_(nullptr) {}
931 #endif // #ifndef UDF_COMPILED
935 #endif // #ifndef __CUDACC__
940 throw std::runtime_error(
"column buffer index is out of range");
960 return string_dict_proxy_->getDictKey().db_id;
963 return string_dict_proxy_->getDictKey().dict_id;
966 return isNull(index) ?
"" : string_dict_proxy_->getString(
ptr_[index].value);
972 auto [c_str, len] = string_dict_proxy_->getStringBytes(
ptr_[index].value);
976 return string_dict_proxy_->getOrAddTransient(str);
978 #endif // #ifndef UDF_COMPILED
979 #endif // #ifndef __CUDACC__
986 throw std::runtime_error(
"cannot copy assign columns with different sizes");
990 for (
unsigned int i = 0; i <
size(); i++) {
1000 #ifdef HAVE_TOSTRING
1010 return is_null(ptr_[index].time);
1026 template <
typename T>
1041 return {
nullptr, -1};
1044 #ifdef HAVE_TOSTRING
1047 std::string result =
::typeName(
this) +
"(ptrs=[";
1048 for (int64_t index = 0; index <
num_cols_; index++) {
1050 (index < num_cols_ - 1 ?
", " :
"");
1060 template <
typename T>
1069 int8_t* ptr = ((index >= 0 && index <
num_cols_) ?
ptrs_[index] :
nullptr);
1075 #ifdef HAVE_TOSTRING
1078 std::string result =
::typeName(
this) +
"(ptrs=[";
1079 for (int64_t index = 0; index <
num_cols_; index++) {
1081 (index < num_cols_ - 1 ?
", " :
"");
1097 #ifndef UDF_COMPILED
1100 const int64_t num_cols,
1101 const int64_t num_rows,
1106 , string_dict_proxies_(string_dict_proxies) {}
1108 DEVICE ColumnList(int8_t** ptrs,
const int64_t num_cols,
const int64_t num_rows)
1110 #endif // #ifndef UDF_COMPILED
1112 DEVICE ColumnList(int8_t** ptrs,
const int64_t num_cols,
const int64_t num_rows)
1114 #endif // #ifndef __CUDACC__
1123 #ifndef UDF_COMPILED
1125 string_dict_proxies_[index]
1134 #ifndef UDF_COMPILED
1144 #ifdef HAVE_TOSTRING
1147 std::string result =
::typeName(
this) +
"(ptrs=[";
1148 for (int64_t index = 0; index <
num_cols_; index++) {
1150 (index < num_cols_ - 1 ?
", " :
"");
1162 std::string
getString(int32_t db_id, int32_t dict_id, int32_t string_id) {
1164 reinterpret_cast<int8_t*>(
this), db_id, dict_id, string_id);
1169 reinterpret_cast<int8_t*>(
this), func_name, arg_idx);
1174 reinterpret_cast<int8_t*>(
this), func_name, arg_idx);
1179 reinterpret_cast<int8_t*>(
this), db_id, dict_id, str);
1193 template <
typename T>
1195 if constexpr (std::is_same<T, int8_t>::value) {
1197 }
else if constexpr (std::is_same<T, int16_t>::value) {
1199 }
else if constexpr (std::is_same<T, int32_t>::value) {
1201 }
else if constexpr (std::is_same<T, int64_t>::value) {
1203 }
else if constexpr (std::is_same<T, float>::value) {
1205 }
else if constexpr (std::is_same<T, double>::value) {
1207 }
else if constexpr (std::is_same<T, bool>::value) {
1210 throw std::runtime_error(
"Unsupported TableFunctionMetadataType");
1220 int64_t output_array_values_total_number) {
1222 reinterpret_cast<int8_t*>(
this), index, output_array_values_total_number);
1226 if (!output_allocations_disabled) {
1239 template <
typename T>
1243 reinterpret_cast<const uint8_t*
>(&value),
1245 get_metadata_type<T>());
1248 template <
typename T>
1250 const uint8_t* raw_data{};
1254 reinterpret_cast<int8_t*>(
this), key.c_str(), raw_data, num_bytes, value_type);
1255 if (
sizeof(
T) != num_bytes) {
1256 throw std::runtime_error(
"Size mismatch for Table Function Metadata '" + key +
"'");
1258 if (get_metadata_type<T>() != value_type) {
1259 throw std::runtime_error(
"Type mismatch for Table Function Metadata '" + key +
"'");
1261 std::memcpy(&value, raw_data, num_bytes);
1272 reinterpret_cast<int8_t*>(
this), db_id, dict_id));
1274 std::string
getString(int32_t db_id, int32_t dict_id, int32_t string_id) {
1276 reinterpret_cast<int8_t*>(
this), db_id, dict_id, string_id);
1278 const char*
getCString(int32_t db_id, int32_t dict_id, int32_t string_id) {
1280 reinterpret_cast<int8_t*>(
this), db_id, dict_id, string_id);
1284 reinterpret_cast<int8_t*>(
this), db_id, dict_id, str);
1287 #ifdef HAVE_TOSTRING
1291 result +=
"UNINITIALIZED";
1296 #endif // HAVE_TOSTRING
1297 bool output_allocations_disabled{
false};
1299 #endif // #ifndef __CUDACC__
1301 #endif // #ifndef UDF_COMPILED
DEVICE const std::string getString(int64_t index) const
int32_t getDTypeMetadataDictDbId() const
EXTENSION_NOINLINE_HOST int32_t RowFunctionManager_getDictDbId(int8_t *mgr_ptr, const char *func_name, size_t arg_idx)
void set_output_row_size(int64_t num_rows)
DEVICE int64_t size() const
std::string getString(int32_t db_id, int32_t dict_id, int32_t string_id)
DEVICE ALWAYS_INLINE Timestamp truncateToSeconds() const
DEVICE int32_t getDictDbId() const
DEVICE ALWAYS_INLINE Timestamp truncateToDay() const
DEVICE int32_t getCompression() const
void set_output_array_values_total_number(int32_t index, int64_t output_array_values_total_number)
int32_t getDTypeMetadataDictId() const
std::string DatumToString(Datum d, const SQLTypeInfo &ti)
EXTENSION_NOINLINE_HOST void set_output_array_values_total_number(int32_t index, int64_t output_array_values_total_number)
DEVICE Column(std::vector< T > &input_vec)
DEVICE ALWAYS_INLINE bool operator!=(const int64_t &other) const
DEVICE int32_t getInputSrid() const
DEVICE Array< T > getItem(const int64_t index, const int64_t expected_numel=-1) const
int64_t DateTruncate(DatetruncField field, const int64_t timeval)
EXTENSION_NOINLINE_HOST void set_output_row_size(int64_t num_rows)
#define EXTENSION_NOINLINE
DEVICE ALWAYS_INLINE const Timestamp operator+(const Timestamp &other) const
void get_metadata(const std::string &key, T &value)
EXTENSION_NOINLINE_HOST int32_t RowFunctionManager_getDictId(int8_t *mgr_ptr, const char *func_name, size_t arg_idx)
DEVICE int32_t getCoordsSize() const
DEVICE ALWAYS_INLINE bool operator==(const YearMonthTimeInterval &other) const
EXTENSION_NOINLINE_HOST int8_t * TableFunctionManager_get_singleton()
std::string getString() const
EXTENSION_NOINLINE_HOST int32_t TableFunctionManager_getNewDictDbId(int8_t *mgr_ptr)
DEVICE ALWAYS_INLINE bool operator<(const TextEncodingDict &other) const
int32_t getOrAddTransient(int32_t db_id, int32_t dict_id, std::string str)
Simplified core of GeoJSON Polygon coordinates definition.
DEVICE ALWAYS_INLINE int64_t getMicroseconds() const
DEVICE YearMonthTimeInterval(int64_t init)
TextEncodingDict operator=(const int32_t other)
DEVICE int64_t size() const
EXTENSION_NOINLINE_HOST int32_t RowFunctionManager_getOrAddTransient(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id, std::string str)
CONSTEXPR DEVICE void set_null< Timestamp >(Timestamp &t)
DEVICE void setNull(int64_t index)
DEVICE int64_t size() const
DEVICE Timestamp(std::string_view const str)
DEVICE int64_t numCols() const
DEVICE int8_t * getLineStringSizes()
DEVICE int8_t * getPolygonSizes()
DEVICE ALWAYS_INLINE int64_t getYear() const
int32_t getDictId(const char *func_name, size_t arg_idx)
DEVICE ColumnList(int8_t **ptrs, const int64_t num_cols, const int64_t num_rows)
DEVICE T * getPtr() const
const char * getCString() const
DEVICE Column< T > & operator=(const Column< T > &other)
DEVICE Column< T > operator[](const int index) const
DEVICE int8_t * getRingSizes()
DEVICE ALWAYS_INLINE bool operator!=(const DayTimeInterval &other) const
DEVICE int64_t size() const
RUNTIME_EXPORT DEVICE int64_t DateAddHighPrecisionNullable(const DateaddField field, const int64_t number, const int64_t timeval, const int32_t dim, const int64_t null_val)
DEVICE void setNull(int64_t index)
DEVICE ALWAYS_INLINE Timestamp truncateToHours() const
DEVICE ALWAYS_INLINE int64_t getDay() const
DEVICE ALWAYS_INLINE Timestamp operator+(const Timestamp &t) const
EXTENSION_NOINLINE_HOST void TableFunctionManager_get_metadata(int8_t *mgr_ptr, const char *key, const uint8_t *&raw_bytes, size_t &num_bytes, TableFunctionMetadataType &value_type)
DEVICE ALWAYS_INLINE bool operator==(const Timestamp &other) const
DEVICE ALWAYS_INLINE bool operator!=(const YearMonthTimeInterval &other) const
DEVICE void concatItem(int64_t index, const Array< T > &other)
DEVICE ALWAYS_INLINE int64_t size() const
Simplified core of GeoJSON MultiPolygon coordinates definition.
DEVICE int32_t getNumRings() const
DEVICE ALWAYS_INLINE Timestamp truncateToYear() const
int8_t * linestring_sizes
EXTENSION_NOINLINE_HOST int32_t TableFunctionManager_error_message(int8_t *mgr_ptr, const char *message)
DEVICE ALWAYS_INLINE bool operator==(const TextEncodingDict &other) const
EXTENSION_NOINLINE_HOST int8_t * TableFunctionManager_getStringDictionaryProxy(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id)
DEVICE int32_t getInputSrid() const
DEVICE int32_t getDictDbId() const
DEVICE int32_t getInputSrid() const
int32_t error_message(const char *message)
DEVICE Array< T > operator[](const unsigned int index) const
EXTENSION_NOINLINE int8_t * allocate_varlen_buffer(int64_t element_count, int64_t element_size)
DEVICE T & operator[](const unsigned int index) const
TableFunctionMetadataType get_metadata_type()
CONSTEXPR DEVICE bool is_null(const T &value)
std::string TableFunctionManager_getString(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id, int32_t string_id)
StringDictionaryProxy ** string_dict_proxies_
DEVICE Array(const int64_t size, const bool is_null=false)
DEVICE TextEncodingDict inline_null_value()
DEVICE ALWAYS_INLINE bool operator<(const int32_t &other) const
DEVICE Column< Array< T > > operator[](const int index) const
void init(LogOptions const &log_opts)
DEVICE int32_t getDictId() const
DEVICE ALWAYS_INLINE bool operator!=(const int32_t &other) const
DEVICE ALWAYS_INLINE Timestamp operator+(const Timestamp &t) const
DEVICE ALWAYS_INLINE bool isNull() const
DEVICE int32_t getCompression() const
DEVICE T operator()(const unsigned int index) const
DEVICE int32_t getCoordsSize() const
StringDictionaryProxy * string_dict_proxy_
CONSTEXPR DEVICE void set_null(T &value)
DEVICE ALWAYS_INLINE int64_t numStepsBetween(const Timestamp &begin, const Timestamp &end) const
DEVICE int32_t getNumPolygons() const
TextEncodingNone(const std::string &str)
const char * getCString(int32_t db_id, int32_t dict_id, int32_t string_id)
DEVICE int64_t getSize() const
#define EXTENSION_NOINLINE_HOST
DEVICE int32_t getCompression() const
DEVICE ALWAYS_INLINE bool operator==(const char *rhs) const
DEVICE ALWAYS_INLINE int64_t operator/(const Timestamp &other) const
DEVICE int32_t getCoordsSize() const
DEVICE int32_t getInputSrid() const
std::string toString(const ExecutorDeviceType &device_type)
DEVICE ALWAYS_INLINE DayTimeInterval operator*(const int64_t multiplier) const
DEVICE int32_t getInputSrid() const
DEVICE TextEncodingDict & operator[](const unsigned int index) const
DEVICE int32_t getOutputSrid() const
DEVICE ALWAYS_INLINE int64_t getMinutes() const
DEVICE ALWAYS_INLINE int64_t getSeconds() const
bool g_enable_smem_group_by true
DEVICE ALWAYS_INLINE bool operator!=(const TextEncodingDict &other) const
void disable_output_allocations()
DEVICE const T & operator[](const unsigned int index) const
DEVICE ALWAYS_INLINE const Timestamp operator-(const Timestamp &other) const
EXTENSION_NOINLINE_HOST int32_t table_function_error(const char *message)
DEVICE TextEncodingDict * getPtr() const
DEVICE int64_t numCols() const
DEVICE int32_t getNumRings() const
StringDictionaryProxy * getStringDictionaryProxy(int32_t db_id, int32_t dict_id)
DEVICE ALWAYS_INLINE Timestamp truncateToMilliseconds() const
TextEncodingDict(const int32_t other)
EXTENSION_NOINLINE_HOST const char * TableFunctionManager_getCString(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id, int32_t string_id)
DEVICE ALWAYS_INLINE bool operator!=(const Timestamp &other) const
Status setNull(int64_t index)
DEVICE int32_t getSize() const
DEVICE int32_t getCompression() const
DEVICE constexpr T null_value() const
DEVICE int32_t getOutputSrid() const
DEVICE Timestamp(int64_t timeval)
DEVICE ALWAYS_INLINE char & operator[](const unsigned int index)
EXTENSION_NOINLINE_HOST void TableFunctionManager_set_metadata(int8_t *mgr_ptr, const char *key, const uint8_t *raw_bytes, const size_t num_bytes, const TableFunctionMetadataType value_type)
DEVICE bool isNull(int64_t index) const
int32_t getOrAddTransient(int32_t db_id, int32_t dict_id, std::string str)
DEVICE int32_t getNumLineStrings() const
DEVICE ALWAYS_INLINE Timestamp truncateToMicroseconds() const
DEVICE void setNull(int64_t index)
DEVICE int32_t getDictId() const
DEVICE Column(const Column &other)
DEVICE int32_t getOutputSrid() const
DEVICE int32_t getInputSrid() const
DEVICE Column< TextEncodingDict > operator[](const int index) const
DEVICE ALWAYS_INLINE int64_t getMonth() const
DEVICE Column(TextEncodingDict *ptr, const int64_t num_rows, StringDictionaryProxy *string_dict_proxy)
DEVICE bool isNull(int64_t index) const
RUNTIME_EXPORT NEVER_INLINE HOST std::string RowFunctionManager_getString(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id, int32_t string_id)
DEVICE int8_t * getRingSizes()
std::string typeName(const T *v)
DEVICE int64_t getSize() const
DEVICE Column< TextEncodingDict > & operator=(const Column< TextEncodingDict > &other)
DEVICE void setSize(int64_t num_rows)
DEVICE ALWAYS_INLINE bool operator==(const DayTimeInterval &other) const
DEVICE ALWAYS_INLINE Timestamp operator+(const DayTimeInterval &interval) const
DEVICE ALWAYS_INLINE int64_t getHours() const
DEVICE ALWAYS_INLINE bool isNull() const
DEVICE int32_t getCompression() const
EXTENSION_NOINLINE_HOST void TableFunctionManager_set_output_row_size(int8_t *mgr_ptr, int64_t num_rows)
TextEncodingNone()=default
DEVICE int32_t getSize() const
void set_metadata(const std::string &key, const T &value)
DEVICE Array(T *ptr, const int64_t size, const bool is_null=false)
DEVICE ALWAYS_INLINE Timestamp truncateToMonth() const
DEVICE ALWAYS_INLINE bool operator<(const Timestamp &other) const
DEVICE int8_t * getCoords() const
DEVICE void setItem(int64_t index, const Array< T > &other)
std::string getString(int32_t db_id, int32_t dict_id, int32_t string_id)
DEVICE ALWAYS_INLINE int64_t numStepsBetween(const Timestamp &begin, const Timestamp &end) const
DEVICE bool isNull(int64_t index) const
DEVICE int64_t numCols() const
DEVICE ALWAYS_INLINE int64_t getMilliseconds() const
DEVICE T & operator[](const unsigned int index)
DEVICE int64_t size() const
EXTENSION_NOINLINE_HOST int32_t TableFunctionManager_getNewDictId(int8_t *mgr_ptr)
DEVICE int32_t getOutputSrid() const
DEVICE int64_t size() const
DEVICE Column(const Column &other)
DEVICE ALWAYS_INLINE const Timestamp operator*(const int64_t multiplier) const
DEVICE int32_t getOutputSrid() const
DEVICE ALWAYS_INLINE YearMonthTimeInterval operator*(const int64_t multiplier) const
DEVICE Column(T *ptr, const int64_t num_rows)
DEVICE const TextEncodingDict getOrAddTransient(const std::string &str)
DEVICE ColumnList(int8_t **ptrs, const int64_t num_cols, const int64_t num_rows, StringDictionaryProxy **string_dict_proxies)
DEVICE ALWAYS_INLINE int64_t getNanoseconds() const
DEVICE DayTimeInterval(int64_t init)
DEVICE ALWAYS_INLINE Timestamp truncateToMinutes() const
DEVICE bool isNull(const unsigned int index) const
void enable_output_allocations()
DEVICE ALWAYS_INLINE bool operator==(const int32_t &other) const
static TableFunctionManager * get_singleton()
EXTENSION_NOINLINE_HOST void TableFunctionManager_set_output_array_values_total_number(int8_t *mgr_ptr, int32_t index, int64_t output_array_values_total_number)
DEVICE bool isNull() const
DEVICE ALWAYS_INLINE bool operator<(const int64_t &other) const
DEVICE ALWAYS_INLINE bool operator!=(const char *rhs) const
DEVICE void setSize(int64_t num_rows)
int32_t getDictDbId(const char *func_name, size_t arg_idx)
DEVICE ALWAYS_INLINE bool operator==(const int64_t &other) const
EXTENSION_NOINLINE_HOST int32_t TableFunctionManager_getOrAddTransient(int8_t *mgr_ptr, int32_t db_id, int32_t dict_id, std::string str)
DEVICE int32_t getCompression() const
DEVICE const char * getCString(int64_t index) const
DEVICE Column(std::vector< TextEncodingDict > &input_vec)
DEVICE int32_t getOutputSrid() const