Definition at line 940 of file ResultSetIteration.cpp.
Definition at line 964 of file ResultSetIteration.cpp.
References CHECK, ResultSet::GeoTargetValueGpuPtr, SQLTypeInfo::get_notnull(), SQLTypeInfo::get_type(), is_null(), Geospatial::is_null_point(), kARRAY, kDOUBLE, kENCODING_NONE, and kPOINT.
970 auto ad_arr_generator = [&](
auto datum_fetcher) {
971 constexpr
int num_vals =
sizeof...(vals);
974 "Must have consistent pointer/size pairs for lazy fetch of geo target values.");
975 const auto vals_vector = std::vector<int64_t>{vals...};
979 for (
size_t i = 0; i < vals_vector.size(); i += 2, ctr++) {
980 if (vals_vector[i] == 0) {
983 ad_arr[ctr] = std::make_unique<ArrayDatum>(0,
nullptr,
true);
986 ad_arr[ctr] = datum_fetcher(vals_vector[i], vals_vector[i + 1]);
991 if (ad_arr[ctr]->length == 0 || ad_arr[ctr]->pointer == NULL) {
994 is_null_point(geo_ti, ad_arr[ctr]->pointer, ad_arr[ctr]->length)) {
996 }
else if (ad_arr[ctr]->length == 4 *
sizeof(
double)) {
999 is_null = dti.is_null_fixlen_array(ad_arr[ctr]->pointer, ad_arr[ctr]->length);
1001 ad_arr[ctr]->is_null =
is_null;
bool is_null_point(const SQLTypeInfo &geo_ti, const int8_t *coords, const size_t coords_sz)
HOST DEVICE SQLTypes get_type() const
CONSTEXPR DEVICE bool is_null(const T &value)
static auto yieldGpuPtrFetcher()
static auto yieldGpuDatumFetcher(Data_Namespace::DataMgr *data_mgr_ptr, const int device_id)
static auto yieldCpuDatumFetcher()
HOST DEVICE bool get_notnull() const
std::unique_ptr< VarlenDatum > VarlenDatumPtr
std::unique_ptr< ArrayDatum > fetch_data_from_gpu(int64_t varlen_ptr, const int64_t length, Data_Namespace::DataMgr *data_mgr, const int device_id)
static auto anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::yieldCpuDatumFetcher |
( |
| ) |
|
|
inlinestatic |
Definition at line 956 of file ResultSetIteration.cpp.
957 return [](
const int64_t ptr,
const int64_t length) ->
VarlenDatumPtr {
959 return std::make_unique<VarlenDatum>(length,
reinterpret_cast<int8_t*
>(ptr),
false);
std::unique_ptr< VarlenDatum > VarlenDatumPtr
static auto anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::yieldGpuDatumFetcher |
( |
Data_Namespace::DataMgr * |
data_mgr_ptr, |
|
|
const int |
device_id |
|
) |
| |
|
inlinestatic |
static auto anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::yieldGpuPtrFetcher |
( |
| ) |
|
|
inlinestatic |
Definition at line 941 of file ResultSetIteration.cpp.
942 return [](
const int64_t ptr,
const int64_t length) ->
VarlenDatumPtr {
944 return std::make_unique<VarlenDatum>(length,
reinterpret_cast<int8_t*
>(ptr),
false);
std::unique_ptr< VarlenDatum > VarlenDatumPtr
The documentation for this struct was generated from the following file: