19 #include "../../QueryEngine/TableFunctions/SystemFunctions/os/Shared/TableFunctionsCommon.hpp"
20 #include "../../QueryEngine/heavydbTypes.h"
27 #define CPU_DEVICE_CODE 0x637075; // 'cpu' in hex
28 #define GPU_DEVICE_CODE 0x677075; // 'gpu' in hex
59 #endif // #ifndef __CUDACC__
77 #endif // #ifndef __CUDACC__
86 #undef CPU_DEVICE_CODE
87 #undef GPU_DEVICE_CODE
203 const int32_t multiplier,
205 out[0] = 1000 + 19 + multiplier;
210 const int32_t multiplier,
212 out[0] = 1000 + 119 + multiplier;
218 const int32_t multiplier,
220 out[0] = 1000 + 1119 + multiplier;
226 const int32_t multiplier,
228 out[0] = 1000 + 2119 + multiplier;
234 const int32_t multiplier,
236 out[0] = 1000 + 2219 + multiplier;
242 const int32_t multiplier,
244 out[0] = 1000 + 2129 + multiplier;
249 const int32_t multiplier,
251 out[0] = 1000 + 139 + multiplier;
256 const int32_t multiplier,
258 out[0] = 1000 + 329 + multiplier;
263 const int32_t multiplier,
265 out[0] = 1000 + 349 + multiplier;
271 const int32_t multiplier,
273 out[0] = 1000 + 2429 + multiplier;
280 out[0] = 1000 + 91 + multiplier;
284 const int32_t multiplier,
285 const int32_t input2,
287 out[0] = 1000 + 196 + multiplier + 10 * input2;
292 const int32_t multiplier,
293 const int32_t input2,
295 out[0] = 1000 + 396 + multiplier + 10 * input2;
300 const int32_t input2,
301 const int32_t multiplier,
303 out[0] = 1000 + 369 + multiplier + 10 * input2;
307 const int32_t input2,
308 const int32_t multiplier,
310 out[0] = 1000 + 169 + multiplier + 10 * input2;
314 #endif // #ifndef __CUDACC__
340 const int32_t multiplier,
342 out[0] = 1000 + 1 + 10 * multiplier;
348 const int32_t multiplier,
350 out[0] = 1000 + 2 + 11 * multiplier;
357 const int32_t multiplier,
361 out[0] = 1000 + 101 + 10 * multiplier + x;
369 out[0] = 1000 + 99 + 10 * multiplier + x;
375 const int32_t multiplier,
377 out[0] = 1000 + 98 + multiplier + 10 * x;
382 const int32_t multiplier,
385 out[0] = 1000 + 2 + multiplier;
390 const int32_t multiplier,
393 out[0] = 1000 + 99 + multiplier + 11 * x;
398 const int32_t multiplier,
401 out[0] = 1000 + 98 + 100 * multiplier + x;
408 const int32_t multiplier,
410 out[0] = 1000 + 99 + 100 * multiplier + x;
415 const int32_t multiplier,
419 out[0] = 1000 + 99 + 10 * multiplier + x;
427 out[0] = 1000 + 99 + 9 * multiplier + x;
431 #endif // #ifndef __CUDACC__
448 const int32_t multiplier,
450 for (int64_t i = 0; i < input.
size(); i++) {
453 return multiplier * input.
size();
462 for (int64_t i = 0; i < input1.
size(); i++) {
466 return input1.
size();
475 for (int64_t i = 0; i < input1.
size(); i++) {
479 return input1.
size();
485 int64_t sz = input[0].
size();
487 for (int64_t i = 0; i < sz; i++) {
488 out[i] = input[0][i];
496 int64_t sz = input[1].
size();
498 for (int64_t i = 0; i < sz; i++) {
499 out[i] = input[1][i];
508 int64_t sz = input[0].
size();
510 for (int64_t i = 0; i < sz; i++) {
511 out0[i] = input[0][i];
512 out1[i] = input[1][i];
517 #endif // #ifndef __CUDACC__
529 template <
typename T>
533 for (int64_t i = 0; i < input.
size(); i++) {
539 #endif // #ifndef __CUDACC__
552 template <
typename T>
557 if constexpr (std::is_same<T, int32_t>::value) {
559 }
else if constexpr (std::is_same<T, float>::value) {
561 }
else if constexpr (std::is_same<T, TextEncodingDict>::value) {
569 #endif // #ifndef __CUDACC__
580 template <
typename T>
584 if constexpr (std::is_same<T, int32_t>::value) {
592 #endif // #ifndef __CUDACC__
605 template <
typename T>
609 const int64_t num_rows = input.
size();
611 for (int64_t r = 0; r < num_rows; ++r) {
613 out[r] = input[r] * multiplier;
630 const int64_t num_rows = input_str.
size();
632 for (int64_t i = 0; i < num_rows; i++) {
633 out_str[i] = input_str[i];
634 const std::string str = input_str.
getString(i);
635 out_size[i] = str.
size();
649 const int64_t num_rows = input_strings.
size();
650 const int64_t num_cols = input_strings.
numCols();
652 for (int64_t r = 0; r < num_rows; r++) {
653 bool are_equal =
true;
655 std::string first_str = input_strings[0].getString(r);
656 for (int64_t c = 1; c != num_cols; ++c) {
657 if (input_strings[c].getString(r) != first_str) {
662 strings_are_equal[r] = are_equal;
663 if (are_equal && num_cols > 0) {
664 string_if_equal[r] = input_strings[0][r];
685 const int64_t num_rows = input_str.
size();
687 for (int64_t row_idx = 0; row_idx < num_rows; row_idx++) {
688 const std::string input_string{input_str.
getString(row_idx)};
689 const std::string
substring = input_string.substr(pos[row_idx], len[row_idx]);
691 output_substr[row_idx] = substr_id;
706 const int64_t num_rows = input_strings.
size();
707 const int64_t num_cols = input_strings.
numCols();
708 const std::string separator_str{separator.
getString()};
710 for (int64_t row_idx = 0; row_idx < num_rows; row_idx++) {
712 std::string concatted_output{input_strings[0].getString(row_idx)};
713 for (int64_t col_idx = 1; col_idx < num_cols; ++col_idx) {
714 concatted_output += separator_str;
715 concatted_output += input_strings[col_idx].getString(row_idx);
719 concatted_string[row_idx] = concatted_str_id;
721 concatted_string.
setNull(row_idx);
734 const int64_t num_strings,
737 for (int32_t s = 0; s < num_strings; ++s) {
740 new_dict_col[s] = string_id;
745 #endif // #ifndef __CUDACC__
751 template <
typename T>
757 return nulls_last ? std::numeric_limits<T>::max() : std::numeric_limits<T>::lowest();
767 template <
typename T>
773 return nulls_last ? std::numeric_limits<T>::lowest() : std::numeric_limits<T>::max();
796 template <
typename T>
799 const bool sort_ascending,
800 const bool nulls_last,
802 const int64_t num_rows = input.
size();
805 if (sort_ascending) {
810 if (limit < 0 || limit > num_rows) {
827 template <
typename T,
typename U,
typename K>
831 if constexpr (std::is_same<T, TextEncodingDict>::value &&
832 std::is_same<U, TextEncodingDict>::value) {
834 for (int64_t i = 0; i < input1.
size(); i++) {
837 return input1.
size();
841 if constexpr (std::is_same<T, int32_t>::value && std::is_same<U, double>::value) {
843 }
else if constexpr (std::is_same<T, double>::value && std::is_same<U, double>::value) {
845 }
else if constexpr (std::is_same<T, int32_t>::value &&
846 std::is_same<U, int32_t>::value) {
848 }
else if constexpr (std::is_same<T, double>::value &&
849 std::is_same<U, int32_t>::value) {
855 #endif // #ifndef __CUDACC__
868 template <
typename T>
873 for (int64_t i = 0; i < input.
size(); i++) {
880 template <
typename T>
883 T acc1 = 0, acc2 = 0;
884 for (int64_t i = 0; i < input.
size(); i++) {
896 template <
typename T>
900 for (int64_t i = 0; i < c; i++) {
903 for (int64_t i = 0; i < input.
size(); i++) {
904 out[i % c] += input[i];
909 template <
typename T>
913 for (int64_t j = 0; j < m; j++) {
914 for (int64_t i = 0; i < input.
size(); i++) {
915 out[j * input.
size() + i] += input[i];
918 return m * input.
size();
921 #endif // #ifndef __CUDACC__
931 template <
typename T>
938 #endif // #ifndef __CUDACC__
948 int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
949 int32_t stop =
static_cast<int32_t
>(42);
950 int32_t step = blockDim.x * gridDim.x;
956 for (
auto i = start; i < stop; i += step) {
970 template <
typename T>
976 while (quotient >= 1) {
977 answer[counter++] = quotient;
983 #endif // #ifndef __CUDACC__
996 int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
997 int32_t stop =
static_cast<int32_t
>(5);
998 int32_t step = blockDim.x * gridDim.x;
1004 for (
auto i = start; i < stop; i += step) {
1005 answer1[i] = num1 + i * num2;
1006 answer2[i] = num1 - i * num2;
1023 for (int32_t i = 0; i < c; i++) {
1024 output[i] = input_num;
1029 #endif // #ifndef __CUDACC__
1039 template <
typename T>
1044 for (int32_t i = 0; i < c; i++) {
1045 output[i] = input_num;
1050 #endif // #ifndef __CUDACC__
1061 ct_no_cursor_user_constant_sizer__gpu_(
const int32_t input_num,
1064 int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
1065 int32_t step = blockDim.x * gridDim.x;
1067 for (int32_t i = start; i < c; i += step) {
1068 output[i] = input_num;
1079 template <
typename T>
1081 ct_templated_no_cursor_user_constant_sizer__gpu_template(
const T input_num,
1084 int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
1085 int32_t step = blockDim.x * gridDim.x;
1087 for (int32_t i = start; i < c; i += step) {
1088 output[i] = input_num;
1095 template <
typename T>
1098 if (y > (std::numeric_limits<T>::max() - x)) {
1099 throw std::overflow_error(
"Addition overflow detected");
1102 if (y < (std::numeric_limits<T>::min() - x)) {
1103 throw std::underflow_error(
"Addition underflow detected");
1117 template <
typename T>
1120 int32_t output_num_rows = input.
numCols();
1122 for (
int i = 0; i < output_num_rows; i++) {
1123 auto col = input[i];
1125 for (
int j = 0; j < col.size(); j++) {
1128 }
catch (
const std::exception& e) {
1136 return output_num_rows;
1139 #endif // #ifndef __CUDACC__
1161 const int32_t str_len = str1.
size() <= str2.
size() ? str1.
size() : str2.
size();
1164 const int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
1165 const int32_t step = blockDim.x * gridDim.x;
1166 int32_t* output_ptr = hamming_distance.
ptr_;
1168 const int32_t start = 0;
1169 const int32_t step = 1;
1172 int32_t num_chars_unequal = 0;
1173 for (int32_t i = start; i < str_len; i += step) {
1174 num_chars_unequal += (str1[i] != str2[i]) ? 1 : 0;
1177 atomicAdd(output_ptr, num_chars_unequal);
1179 hamming_distance[0] = num_chars_unequal;
1189 template <
typename T>
1192 const int32_t multiplier,
1195 const int32_t str_len = str.
size();
1198 if (multiplier != 1) {
1201 const int32_t num_input_rows = indices.
size();
1202 const int32_t num_output_rows = num_input_rows * multiplier;
1205 const int32_t start = threadIdx.x + blockDim.x * blockIdx.x;
1206 const int32_t step = blockDim.x * gridDim.x;
1208 const int32_t start = 0;
1209 const int32_t step = 1;
1212 for (int32_t i = start; i < num_output_rows; i += step) {
1213 idx[i] = indices[i % num_output_rows];
1214 char_bytes[i] = str[i % str_len];
1216 return num_output_rows;
1233 const std::string str{input.
getString()};
1234 const int64_t str_size(str.size());
1236 for (int32_t i = 0; i < str_size; ++i) {
1238 char_bytes[i] = str[i];
1277 output[0] = std::chrono::duration_cast<std::chrono::milliseconds>(
1278 std::chrono::system_clock::now().time_since_epoch())
1282 output[2] = std::hash<std::thread::id>()(std::this_thread::get_id()) & 0xffff;
1284 std::this_thread::sleep_for(std::chrono::seconds(seconds));
1286 output[1] = std::chrono::duration_cast<std::chrono::milliseconds>(
1287 std::chrono::system_clock::now().time_since_epoch())
1303 mgr->set_output_row_size(3);
1313 if (output.
size() == 0) {
1336 mgr0->set_output_row_size(3);
1337 }
catch (std::exception& e) {
1338 return mgr.ERROR_MESSAGE(e.what());
1343 return mgr.ERROR_MESSAGE(
"unexpected mode");
1345 if (output.
size() == 0) {
1346 return mgr.ERROR_MESSAGE(
"unspecified output columns row size");
1357 template <
typename T>
1361 int64_t num_rows = input.
size();
1363 for (int64_t r = 0; r < num_rows; ++r) {
1364 if (input[r] > 100) {
1365 return mgr.ERROR_MESSAGE(
"Values greater than 100 not allowed");
1367 output[r] = input[r];
1397 for (int32_t i = 0; i < input.
size(); i++) {
1398 output[i] = input[i] + input.
size();
1400 return output.
size();
1409 auto size = input1.
size();
1411 for (int32_t i = 0; i < size; i++) {
1412 output1[i] = input1[i] + size;
1413 output2[i] = input2[i] * alpha;
1435 std::set<int32_t, std::less<int32_t>> x12;
1437 std::map<int32_t, int32_t, std::less<int32_t>> i1, i2;
1439 for (int32_t i = 0; i < x1.
size(); i++) {
1443 for (int32_t i = 0; i < x2.
size(); i++) {
1447 auto size = x12.size();
1451 for (
auto x_ : x12) {
1453 auto i1_ = i1.find(x_);
1454 auto i2_ = i2.find(x_);
1455 if (i1_ != i1.end()) {
1456 if (i2_ != i2.end()) {
1457 d[k] = d1[i1_->second] + d2[i2_->second];
1459 d[k] = d1[i1_->second] + f2;
1461 }
else if (i2_ != i2.end()) {
1462 d[k] = f1 + d2[i2_->second];
1472 #endif // #ifndef __CUDACC__
1476 template <
typename T>
1480 return input_min_max.first;
1482 return input_min_max.second;
1485 template <
typename T>
1492 return input1_min_max.first < input2_min_max.first ? input1_min_max.first
1493 : input2_min_max.first;
1495 return input1_min_max.second > input2_min_max.second ? input1_min_max.second
1496 : input2_min_max.second;
1507 template <
typename K,
typename T,
typename Z>
1520 const std::string agg_type_str = agg_type.
getString();
1523 output_row_count[0] = input_id.
size();
1531 #endif // #ifndef __CUDACC__
1541 template <
typename K,
typename T,
typename Z>
1551 const int64_t input_size = input_id.
size();
1553 for (int64_t input_idx = 0; input_idx < input_size; ++input_idx) {
1554 output_id[input_idx] = input_id[input_idx];
1555 output_x[input_idx] = input_x[input_idx];
1556 output_y[input_idx] = input_y[input_idx];
1557 output_z[input_idx] = input_z[input_idx];
1562 #endif // #ifndef __CUDACC__
1572 template <
typename K,
typename T,
typename Z>
1592 const std::string agg_type_str = agg_type.
getString();
1594 output_row_count[0] = input1_id.
size() + input2_id.
size();
1599 if (input2_w.
size() > 0) {
1601 output_w[0] = agg_type_str ==
"MIN" ? w_min_max.first : w_min_max.second;
1608 #endif // #ifndef __CUDACC__
1618 template <
typename K,
typename T,
typename Z>
1635 const int64_t input1_size = input1_id.
size();
1636 const int64_t input2_size = input2_id.
size();
1637 int64_t output_size = input1_size + input2_size;
1639 for (int64_t input1_idx = 0; input1_idx < input1_size; ++input1_idx) {
1640 output_id[input1_idx] = input1_id[input1_idx];
1641 output_x[input1_idx] = input1_x[input1_idx];
1642 output_y[input1_idx] = input1_y[input1_idx];
1643 output_z[input1_idx] = input1_z[input1_idx];
1646 for (int64_t input2_idx = 0; input2_idx < input2_size; ++input2_idx) {
1647 output_id[input1_size + input2_idx] = input2_id[input2_idx];
1648 output_x[input1_size + input2_idx] = input2_x[input2_idx];
1649 output_y[input1_size + input2_idx] = input2_y[input2_idx];
1650 output_z[input1_size + input2_idx] = input2_z[input2_idx];
1651 output_w[input1_size + input2_idx] = input2_w[input2_idx];
1656 #endif // #ifndef __CUDACC__
1698 template <
typename T,
typename K>
1703 if constexpr (std::is_same<T, int32_t>::value) {
1705 }
else if constexpr (std::is_same<T, double>::value) {
1744 #endif // #ifndef __CUDACC__
1757 out[0] = (i > 0 ? 12345 : 54321);
1768 ct_cuda_enumerate_threads__gpu_(
const int32_t output_size,
1772 int32_t local_thread_id = threadIdx.x;
1773 int32_t block_id = blockIdx.x;
1774 int32_t global_thread_id = threadIdx.x + blockDim.x * blockIdx.x;
1775 out_local_thread_id[global_thread_id] = local_thread_id;
1776 out_block_id[global_thread_id] = block_id;
1777 out_global_thread_id[global_thread_id] = global_thread_id;
1792 for (
int i = 0; i < input.
size(); i++) {
1799 return input.
size();
1845 for (
int i = 0; i < lst.
numCols(); i++) {
1846 out[i + 1] = lst[i][0];
1869 for (
int i = 0; i < lst.
numCols(); i++) {
1870 out[i + 1] = lst[i][1];
1899 const Column<int32_t>& input_arg2,
const int32_t arg1,
const int32_t arg2,
1901 const int32_t num_rows = input_arg1.
size();
1903 for (int32_t r = 0; r < num_rows; ++r) {
1904 out1[r] = input_arg1[r] + arg1;
1905 out2[r] = input_arg2[r] + arg2;
1938 int size = input.
size();
1940 for (
int i = 0; i < size; ++i) {
1952 ns[i] = input[i].getNanoseconds();
1953 us[i] = input[i].getMicroseconds();
1954 ms[i] = input[i].getMilliseconds();
1955 s[i] = input[i].getSeconds();
1956 m[i] = input[i].getMinutes();
1957 h[i] = input[i].getHours();
1958 d[i] = input[i].getDay();
1959 mo[i] = input[i].getMonth();
1960 y[i] = input[i].getYear();
1971 int size = input.
size();
1973 for (
int i = 0; i < size; ++i) {
1977 out[i] = input[i] + offset;
1986 const int64_t dummy,
1987 const int32_t multiplier,
1990 int size = input.
size();
1991 for (
int i = 0; i < size; ++i) {
1995 out[i] = input[i] + input2[i] +
Timestamp(dummy);
2022 int size = input.
size();
2024 for (
int i = 0; i < size; ++i) {
2025 y[i] = input[i].truncateToYear();
2026 mo[i] = input[i].truncateToMonth();
2027 d[i] = input[i].truncateToDay();
2028 h[i] = input[i].truncateToHours();
2029 m[i] = input[i].truncateToMinutes();
2030 s[i] = input[i].truncateToSeconds();
2031 ms[i] = input[i].truncateToMilliseconds();
2032 us[i] = input[i].truncateToMicroseconds();
2038 template <
typename T>
2044 int size = input.
size();
2046 for (
int i = 0; i < size; ++i) {
2047 out[i] = inter + input[i];
2058 template <
typename T>
2061 int size = input.size();
2062 for (
int i = 0; i < size; i++) {
2067 if constexpr (std::is_same<T, TextEncodingDict>::value) {
2069 std::string acc =
"";
2070 for (
auto j = 0; j < arr.
getSize(); j++) {
2072 acc += mgr->getString(input.getDictDbId(), input.getDictId(), arr[j]);
2075 int32_t out_string_id =
2076 mgr->getOrAddTransient(output.getDictDbId(), output.getDictId(), acc);
2077 output[i] = out_string_id;
2080 for (
auto j = 0; j < arr.
getSize(); j++) {
2081 if constexpr (std::is_same_v<T, bool>) {
2106 template <
typename T>
2110 int size = input.size();
2113 int output_values_size = 0;
2114 for (
int i = 0; i < size; i++) {
2115 output_values_size += input[i].getSize();
2121 output_values_size);
2125 for (
int i = 0; i < size; i++) {
2126 if (input.isNull(i)) {
2129 output.setItem(i, input[i]);
2142 template <
typename T>
2146 int size = inputs.size();
2148 int output_values_size = 0;
2149 for (
int j = 0; j < inputs.numCols(); j++) {
2150 for (
int i = 0; i < size; i++) {
2151 output_values_size += inputs[j][i].getSize();
2156 output_values_size);
2160 for (
int i = 0; i < size; i++) {
2161 for (
int j = 0; j < inputs.numCols(); j++) {
2164 if constexpr (std::is_same<T, TextEncodingDict>::value) {
2165 if (col.getDictDbId() == output.getDictDbId() &&
2166 col.getDictId() == output.getDictId()) {
2167 output.concatItem(i, arr);
2169 throw std::runtime_error(
2170 "concat of text encoding dict arrays with different dictionary ids is not "
2174 output.concatItem(i,
2188 template <
typename T>
2192 int size = input.
size();
2193 int output_values_size = 0;
2194 for (
int i = 0; i < size; i++) {
2195 output_values_size += (input.
isNull(i) ? 0 : 1);
2199 output_values_size);
2202 if constexpr (std::is_same<T, TextEncodingDict>::value) {
2203 for (
int i = 0; i < size; i++) {
2207 Array<T> arr = output.getItem(i, 1);
2211 mgr.
getString(input.getDictDbId(), input.getDictId(), input[i]));
2215 for (
int i = 0; i < size; i++) {
2219 Array<T> arr = output.getItem(i, 1);
2234 template <
typename T>
2239 int size = input.size();
2240 int first_values_size = 0;
2241 int second_values_size = 0;
2242 for (
int i = 0; i < size; i++) {
2243 if (!input.isNull(i)) {
2244 int64_t sz = input[i].getSize();
2245 first_values_size += sz / 2;
2246 second_values_size += sz - sz / 2;
2253 for (
int i = 0; i < size; i++) {
2254 if (input.isNull(i)) {
2260 Array<T> arr1 = first.getItem(i, sz / 2);
2261 Array<T> arr2 = second.getItem(i, sz - sz / 2);
2262 for (int64_t j = 0; j < sz; j++) {
2266 arr2[j - sz / 2] = arr[j];
2358 }
catch (
const std::runtime_error& ex) {
2359 return mgr.ERROR_MESSAGE(ex.what());
2364 bool result = (i8 == 1) && (i16 == 2) && (i32 == 3) && (i64 == 4) && (
f == 5.0f) &&
2367 return mgr.ERROR_MESSAGE(
"Metadata return values are incorrect");
2389 }
catch (
const std::runtime_error& ex) {
2390 return mgr.ERROR_MESSAGE(ex.what());
2410 template <
typename T>
2414 if constexpr (std::is_same<T, int64_t>::value) {
2416 }
else if constexpr (std::is_same<T, Timestamp>::value) {
2417 out[0] = scalar.time;
2424 template <
typename T>
2427 int64_t size = input.
size();
2429 for (int64_t i = 0; i < size; ++i) {
2441 template <
typename T,
typename K>
2448 int64_t num_cols = col_list.
numCols();
2450 for (int64_t i = 0; i < num_cols; ++i) {
2452 for (int64_t j = 0; j < col.
size(); ++j) {
2457 out[0] = first_col[0];
2459 out[0] = last_col[0];
2466 template <
typename T,
typename K>
2474 int64_t num_cols = col_list1.
numCols();
2476 for (int64_t i = 0; i < num_cols; ++i) {
2478 for (int64_t j = 0; j < col.
size(); ++j) {
2483 int64_t num_cols2 = col_list2.
numCols();
2485 for (int64_t i = 0; i < num_cols2; ++i) {
2487 for (int64_t j = 0; j < col.
size(); ++j) {
2492 if (sum + sum2 > 0) {
2493 out[0] = first_col[0];
2495 out[0] = last_col[0];
2500 #endif // ifndef __CUDACC__
2510 const int32_t multiplier,
EXTENSION_NOINLINE_HOST int32_t ct_require_text_enc_dict__cpu_(const Column< TextEncodingDict > &input, const int64_t x, Column< int64_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer3a__cpu_1(const Column< int32_t > &input1, const int32_t multiplier, const int32_t x, Column< int32_t > &out)
DEVICE const std::string getString(int64_t index) const
void set_output_row_size(int64_t num_rows)
std::string getString(int32_t db_id, int32_t dict_id, int32_t string_id)
EXTENSION_NOINLINE_HOST int32_t ct_substr__cpu_(TableFunctionManager &mgr, const Column< TextEncodingDict > &input_str, const Column< int > &pos, const Column< int > &len, Column< TextEncodingDict > &output_substr)
NEVER_INLINE HOST int32_t array_copier__cpu_template(TableFunctionManager &mgr, const Column< Array< T >> &input, Column< Array< T >> &output)
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded6__cpu_1(const ColumnList< TextEncodingDict > &input, Column< TextEncodingDict > &out0, Column< TextEncodingDict > &out1)
const T null_value_mapped_
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer3b__cpu_2(const Column< int32_t > &input1, const int32_t x, const Column< int32_t > &input2, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE int32_t ct_timestamp_test_columns_and_scalars__cpu(const Column< Timestamp > &input, const int64_t dummy, const int32_t multiplier, const Column< Timestamp > &input2, Column< Timestamp > &out)
NEVER_INLINE HOST int32_t ct_scalar_1_arg_runtime_sizing__cpu_template(const T num, Column< T > &answer)
void set_output_array_values_total_number(int32_t index, int64_t output_array_values_total_number)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_1(const Column< int32_t > &input1, Column< int32_t > &out)
NEVER_INLINE HOST int32_t tf_metadata_getter_bad__cpu_template(TableFunctionManager &mgr, const Column< bool > &input, Column< bool > &success)
EXTENSION_NOINLINE int32_t ct_test_preflight_sizer(const Column< int32_t > &input, const int32_t i, const int32_t j, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_string_concat__cpu_(TableFunctionManager &mgr, const ColumnList< TextEncodingDict > &input_strings, const TextEncodingNone &separator, Column< TextEncodingDict > &concatted_string)
NEVER_INLINE HOST int32_t ct_named_output__cpu_template(const Column< T > &input, Column< T > &out)
EXTENSION_NOINLINE_HOST void set_output_row_size(int64_t num_rows)
#define EXTENSION_NOINLINE
EXTENSION_NOINLINE int32_t ct_require_range__cpu_(const Column< int32_t > &input1, const int32_t x, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_require__cpu_(const Column< int32_t > &input1, const int32_t i, Column< int32_t > &out)
static T map_null_value(const bool nulls_last)
void get_metadata(const std::string &key, T &value)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_15(const Column< int64_t > &input1, const Column< int64_t > &input2, const Column< int32_t > &input3, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_9(const ColumnList< int32_t > &input1, const ColumnList< int64_t > &input2, Column< int32_t > &out)
std::string getString() const
NEVER_INLINE HOST std::pair< T, T > get_column_min_max(const Column< T > &col)
int32_t getOrAddTransient(int32_t db_id, int32_t dict_id, std::string str)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_11(const Column< int32_t > &input1, const int32_t multiplier, Column< int32_t > &out)
DEVICE int64_t size() const
NEVER_INLINE HOST int32_t sort_column_limit__cpu_template(const Column< T > &input, const int32_t limit, const bool sort_ascending, const bool nulls_last, Column< T > &output)
EXTENSION_NOINLINE_HOST int32_t ct_synthesize_new_dict__cpu_(TableFunctionManager &mgr, const int64_t num_strings, Column< TextEncodingDict > &new_dict_col)
EXTENSION_NOINLINE_HOST int32_t ct_cursor_named_args__cpu_(TableFunctionManager &mgr, const Column< int32_t > &input_arg1, const Column< int32_t > &input_arg2, const int32_t arg1, const int32_t arg2, Column< int32_t > &out1, Column< int32_t > &out2)
EXTENSION_NOINLINE_HOST int32_t ct_binding_str_equals__cpu_(const ColumnList< TextEncodingDict > &input_strings, Column< TextEncodingDict > &string_if_equal, Column< bool > &strings_are_equal)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer2a__cpu_1(const Column< int32_t > &input1, const int32_t x, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded2__cpu_1(const Column< TextEncodingDict > &input1, const Column< TextEncodingDict > &input2, Column< TextEncodingDict > &out1, Column< TextEncodingDict > &out2)
DEVICE int64_t numCols() const
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_20(const Column< int64_t > &input1, const ColumnList< int64_t > &input2, const Column< int64_t > &input3, const int32_t multiplier, Column< int64_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf5__cpu_24(const ColumnList< int32_t > &input1, const int32_t input2, const int32_t multiplier, Column< int32_t > &out)
DEVICE void sort(ARGS &&...args)
EXTENSION_NOINLINE_HOST int32_t ct_sleep1__cpu_(int32_t seconds, int32_t mode, Column< int32_t > &output)
NEVER_INLINE HOST int32_t ct_pushdown_projection__cpu_template(TableFunctionManager &mgr, const Column< K > &input_id, const Column< T > &input_x, const Column< T > &input_y, const Column< Z > &input_z, Column< K > &output_id, Column< T > &output_x, Column< T > &output_y, Column< Z > &output_z)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_3(const Column< int32_t > &input1, const Column< int32_t > &input2, const Column< int32_t > &input3, Column< int32_t > &out)
EXTENSION_NOINLINE int32_t ct_gpu_default_init__gpu_(Column< int32_t > &output_buffer)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_12(const Column< int32_t > &input1, const Column< int32_t > &input2, const int32_t multiplier, Column< int32_t > &out)
DEVICE int64_t size() const
NEVER_INLINE HOST int32_t tf_metadata_setter__cpu_template(TableFunctionManager &mgr, Column< bool > &success)
SortAsc(const bool nulls_last)
SortDesc(const bool nulls_last)
DEVICE void setNull(int64_t index)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_2(const Column< int32_t > &input1, const Column< int32_t > &input2, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_overload_column_list_test__cpu_template(const Column< K > &first_col, const ColumnList< T > &col_list, const Column< K > &last_col, Column< K > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf4__cpu_23(const ColumnList< int32_t > &input1, const int32_t multiplier, const int32_t input2, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_named_const_output__cpu_template(const Column< T > &input, Column< T > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_16(const Column< int64_t > &input1, const Column< int32_t > &input2, const Column< int64_t > &input3, const int32_t multiplier, Column< int32_t > &out)
NEVER_INLINE HOST int32_t tf_metadata_setter_repeated__cpu_template(TableFunctionManager &mgr, Column< bool > &success)
TEMPLATE_NOINLINE int32_t ct_get_string_chars__template(const Column< T > &indices, const TextEncodingNone &str, const int32_t multiplier, Column< int32_t > &idx, Column< int8_t > &char_bytes)
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded1__cpu_1(const Column< TextEncodingDict > &input, const int32_t multiplier, Column< TextEncodingDict > &out)
TEMPLATE_INLINE T get_min_or_max_union(const Column< T > &col1, const Column< T > &col2, const TFAggType min_or_max)
EXTENSION_NOINLINE_HOST int32_t ct_require_and__cpu_(const Column< int32_t > &input1, const int32_t i, Column< int32_t > &out)
DEVICE ALWAYS_INLINE int64_t size() const
EXTENSION_NOINLINE_HOST int32_t ct_sleep2(TableFunctionManager &mgr, int32_t seconds, int32_t mode, Column< int32_t > &output)
NEVER_INLINE HOST int32_t ct_overload_column_test__cpu_template(const Column< T > &input, Column< T > &out)
NEVER_INLINE HOST int32_t ct_binding_template__cpu_template(const Column< T > &input, Column< T > &out)
T safe_addition(T x, T y)
NEVER_INLINE HOST int32_t ct_overload_column_list_test2__cpu_template(const Column< K > &first_col, const ColumnList< K > &col_list1, const ColumnList< T > &col_list2, const Column< T > &last_col, Column< K > &out)
EXTENSION_NOINLINE_HOST int32_t ct_no_cursor_user_constant_sizer__cpu_(const int32_t input_num, int32_t c, Column< int32_t > &output)
NEVER_INLINE HOST int32_t ct_templated_no_cursor_user_constant_sizer__cpu_template(const T input_num, int32_t c, Column< T > &output)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer4b__cpu_2(const int32_t multiplier, const Column< int32_t > &input, const int32_t x, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_named_user_const_output__cpu_template(const Column< T > &input, int32_t c, Column< T > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_17(const Column< int32_t > &input1, const ColumnList< int32_t > &input2, const int32_t multiplier, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_pushdown_stats__cpu_template(TableFunctionManager &mgr, const TextEncodingNone &agg_type, const Column< K > &input_id, const Column< T > &input_x, const Column< T > &input_y, const Column< Z > &input_z, Column< int32_t > &output_row_count, Column< K > &output_id, Column< T > &output_x, Column< T > &output_y, Column< Z > &output_z)
NEVER_INLINE HOST int32_t ct_overload_scalar_test__cpu_template(const T scalar, Column< T > &out)
EXTENSION_NOINLINE int32_t ct_scalar_2_args_constant_sizing(const int64_t num1, const int64_t num2, Column< int64_t > &answer1, Column< int64_t > &answer2)
EXTENSION_NOINLINE_HOST int32_t ct_timestamp_column_list_input(TableFunctionManager &mgr, const ColumnList< int64_t > &input, const Column< Timestamp > &input2, Column< int64_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_19(const ColumnList< int32_t > &input1, const ColumnList< int64_t > &input2, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_8(const ColumnList< int32_t > &input1, const Column< int64_t > &input2, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer1c__cpu_3(const Column< int32_t > &input1, const Column< int32_t > &input2, const Column< int32_t > &input3, const int32_t multiplier, const Column< int32_t > &input4, const int32_t x, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_timestamp_truncate(TableFunctionManager &mgr, const Column< Timestamp > &input, Column< Timestamp > &y, Column< Timestamp > &mo, Column< Timestamp > &d, Column< Timestamp > &h, Column< Timestamp > &m, Column< Timestamp > &s, Column< Timestamp > &ms, Column< Timestamp > &us)
DEVICE int64_t getSize() const
#define EXTENSION_NOINLINE_HOST
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded5__cpu_1(const ColumnList< TextEncodingDict > &input, Column< TextEncodingDict > &out)
EXTENSION_NOINLINE int32_t ct_test_nullable(const Column< int32_t > &input, const int32_t i, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf2__cpu_21(const int32_t multiplier, const Column< int32_t > &input1, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_timestamp_add_offset(TableFunctionManager &mgr, const Column< Timestamp > &input, const Timestamp offset, Column< Timestamp > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_7(const Column< int32_t > &input1, const ColumnList< int32_t > &input2, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer1a__cpu_1(const Column< int32_t > &input1, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer2b__cpu_2(const Column< int32_t > &input1, const int32_t multiplier, const Column< int32_t > &input2, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded3__cpu_1(const Column< TextEncodingDict > &input1, const Column< TextEncodingDict > &input2, Column< TextEncodingDict > &out1, Column< TextEncodingDict > &out2)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_14(const Column< int64_t > &input1, const Column< int32_t > &input2, const Column< int32_t > &input3, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_require_str_diff__cpu_(const Column< int32_t > &input1, const TextEncodingNone &i, Column< int32_t > &out)
DEVICE int64_t numCols() const
NEVER_INLINE HOST int32_t column_list_safe_row_sum__cpu_template(const ColumnList< T > &input, Column< T > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_5(const Column< int64_t > &input1, const Column< int64_t > &input2, const Column< int32_t > &input3, Column< int32_t > &out)
EXTENSION_NOINLINE int32_t ct_no_arg_constant_sizing(Column< int32_t > &answer)
NEVER_INLINE HOST int32_t ct_union_pushdown_stats__cpu_template(TableFunctionManager &mgr, const TextEncodingNone &agg_type, const Column< K > &input1_id, const Column< T > &input1_x, const Column< T > &input1_y, const Column< Z > &input1_z, const Column< K > &input2_id, const Column< T > &input2_x, const Column< T > &input2_y, const Column< Z > &input2_z, const Column< T > &input2_w, Column< int32_t > &output_row_count, Column< K > &output_id, Column< T > &output_x, Column< T > &output_y, Column< Z > &output_z, Column< T > &output_w)
bool operator()(const T &a, const T &b)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer4a__cpu_1(const Column< int32_t > &input1, const int32_t multiplier, const Column< int32_t > &input2, const int32_t x, Column< int32_t > &out)
NEVER_INLINE HOST int32_t tf_metadata_getter__cpu_template(TableFunctionManager &mgr, const Column< bool > &input, Column< bool > &success)
DEVICE bool isNull(int64_t index) const
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf3__cpu_25(const Column< int32_t > &input1, const int32_t input2, const int32_t multiplier, Column< int32_t > &out)
DEVICE void setNull(int64_t index)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer1d__cpu_4(const int32_t multiplier, const int32_t x, const Column< int32_t > &input1, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_add_size_and_mul_alpha(TableFunctionManager &mgr, const Column< int32_t > &input1, const Column< int32_t > &input2, int32_t alpha, Column< int32_t > &output1, Column< int32_t > &output2)
const T null_value_mapped_
NEVER_INLINE HOST int32_t array_concat__cpu_template(TableFunctionManager &mgr, const ColumnList< Array< T >> &inputs, Column< Array< T >> &output)
EXTENSION_NOINLINE_HOST int32_t ct_require_str__cpu_(const Column< int32_t > &input1, const TextEncodingNone &s, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_binding_column__cpu_template(const Column< T > &input, Column< int32_t > &out)
NEVER_INLINE HOST int32_t tf_metadata_setter_size_mismatch__cpu_template(TableFunctionManager &mgr, Column< bool > &success)
EXTENSION_NOINLINE_HOST int32_t ct_binding_dict_encoded4__cpu_1(const ColumnList< TextEncodingDict > &input, Column< TextEncodingDict > &out)
EXTENSION_NOINLINE int32_t ct_hamming_distance(const TextEncodingNone &str1, const TextEncodingNone &str2, Column< int32_t > &hamming_distance)
EXTENSION_NOINLINE_HOST int32_t ct_copy_and_add_size(TableFunctionManager &mgr, const Column< int32_t > &input, Column< int32_t > &output)
EXTENSION_NOINLINE int32_t ct_sleep_worker(int32_t seconds, Column< int32_t > &output)
EXTENSION_NOINLINE_HOST int32_t ct_device_selection_udtf_both__cpu_(const Column< int32_t > &input, Column< int64_t > &out)
NEVER_INLINE HOST int32_t ct_throw_if_gt_100__cpu_template(TableFunctionManager &mgr, const Column< T > &input, Column< T > &output)
EXTENSION_NOINLINE_HOST int32_t ct_scalar_named_args__cpu_(TableFunctionManager &mgr, const int32_t arg1, const int32_t arg2, Column< int32_t > &out1, Column< int32_t > &out2)
static T map_null_value(const bool nulls_last)
void set_metadata(const std::string &key, const T &value)
bool operator()(const T &a, const T &b)
EXTENSION_NOINLINE int32_t ct_device_selection_udtf_any(const Column< int32_t > &input, Column< int64_t > &out)
TEMPLATE_INLINE T get_min_or_max(const Column< T > &col, const TFAggType min_or_max)
#define TABLE_FUNCTION_ERROR(MSG)
NEVER_INLINE HOST int32_t ct_named_rowmul_output__cpu_template(const Column< T > &input, int32_t m, Column< T > &out)
EXTENSION_NOINLINE int32_t ct_test_preflight_multicursor_qe227__cpu_(TableFunctionManager &mgr, const Column< int32_t > &col, const ColumnList< int32_t > &lst, const int x, const int y, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_require_templating__cpu_template(const Column< T > &input1, const int32_t i, Column< K > &out)
EXTENSION_NOINLINE int32_t ct_device_selection_udtf_both__gpu_(const Column< int32_t > &input, Column< int64_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_timestamp_extract(TableFunctionManager &mgr, const Column< Timestamp > &input, Column< int64_t > &ns, Column< int64_t > &us, Column< int64_t > &ms, Column< int64_t > &s, Column< int64_t > &m, Column< int64_t > &h, Column< int64_t > &d, Column< int64_t > &mo, Column< int64_t > &y)
DEVICE int64_t size() const
EXTENSION_NOINLINE_HOST int32_t ct_require_or_str__cpu_(const Column< int32_t > &input1, const TextEncodingNone &i, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer2c__cpu_3(const int32_t x, const int32_t multiplier, const Column< int32_t > &input1, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_require_mgr(TableFunctionManager &mgr, const Column< int32_t > &input1, const int32_t i, Column< int32_t > &out)
NEVER_INLINE HOST int32_t array_asarray__cpu_template(TableFunctionManager &mgr, const Column< T > &input, Column< Array< T >> &output)
NEVER_INLINE HOST int32_t ct_no_arg_runtime_sizing__cpu_template(Column< T > &answer)
EXTENSION_NOINLINE int32_t ct_device_selection_udtf_gpu__gpu_(const Column< int32_t > &input, Column< int64_t > &out)
DEVICE const TextEncodingDict getOrAddTransient(const std::string &str)
EXTENSION_NOINLINE_HOST int32_t ct_device_selection_udtf_cpu__cpu_(const Column< int32_t > &input, Column< int64_t > &out)
NEVER_INLINE HOST int32_t array_split__cpu_template(TableFunctionManager &mgr, const Column< Array< T >> &input, Column< Array< T >> &first, Column< Array< T >> &second)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf6__cpu_22(const Column< int32_t > &input1, const int32_t multiplier, const int32_t input2, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_union_pushdown_projection__cpu_template(TableFunctionManager &mgr, const Column< K > &input1_id, const Column< T > &input1_x, const Column< T > &input1_y, const Column< Z > &input1_z, const Column< K > &input2_id, const Column< T > &input2_x, const Column< T > &input2_y, const Column< Z > &input2_z, const Column< T > &input2_w, Column< K > &output_id, Column< T > &output_x, Column< T > &output_y, Column< Z > &output_z, Column< T > &output_w)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_6(const Column< int64_t > &input1, const Column< int32_t > &input2, const Column< int64_t > &input3, Column< int32_t > &out)
static TableFunctionManager * get_singleton()
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_10(const Column< int64_t > &input1, const ColumnList< int64_t > &input2, const Column< int64_t > &input3, Column< int64_t > &out)
DEVICE bool isNull() const
EXTENSION_NOINLINE int32_t ct_test_preflight_singlecursor_qe227__cpu_(TableFunctionManager &mgr, const Column< int32_t > &col, const ColumnList< int32_t > &lst, const int x, const int y, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_binding_scalar_multiply__cpu_template(const Column< T > &input, const T multiplier, Column< T > &out)
EXTENSION_NOINLINE_HOST int32_t ct_udtf_default_sizer1b__cpu_2(const Column< int32_t > &input1, const Column< int32_t > &input2, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf_constant__cpu_4(const Column< int64_t > &input1, const Column< int32_t > &input2, const Column< int32_t > &input3, Column< int32_t > &out)
EXTENSION_NOINLINE int32_t ct_test_preflight_sizer_const(const Column< int32_t > &input, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_13(const Column< int32_t > &input1, const Column< int32_t > &input2, const Column< int32_t > &input3, const int32_t multiplier, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_sparse_add(TableFunctionManager &mgr, const Column< int32_t > &x1, const Column< int32_t > &d1, int32_t f1, const Column< int32_t > &x2, const Column< int32_t > &d2, int32_t f2, Column< int32_t > &x, Column< int32_t > &d)
NEVER_INLINE HOST int32_t ct_binding_column2__cpu_template(const Column< T > &input1, const Column< U > &input2, Column< K > &out)
#define TEMPLATE_NOINLINE
NEVER_INLINE HOST int32_t ct_timestamp_add_interval__template(TableFunctionManager &mgr, const Column< Timestamp > &input, const T inter, Column< Timestamp > &out)
EXTENSION_NOINLINE_HOST int32_t ct_binding_udtf__cpu_18(const ColumnList< int32_t > &input1, const Column< int64_t > &input2, const int32_t multiplier, Column< int32_t > &out)
NEVER_INLINE HOST int32_t ct_binding_columnlist__cpu_template(const Column< T > &input1, const ColumnList< T > &input2, Column< int32_t > &out)
EXTENSION_NOINLINE_HOST int32_t ct_string_to_chars__cpu_(const TextEncodingNone &input, Column< int32_t > &char_idx, Column< int8_t > &char_bytes)
NEVER_INLINE HOST int32_t sum_along_row__cpu_template(const Column< Array< T >> &input, Column< T > &output)
EXTENSION_NOINLINE_HOST int32_t ct_binding_str_length__cpu_(const Column< TextEncodingDict > &input_str, Column< TextEncodingDict > &out_str, Column< int64_t > &out_size)