12#ifndef ARROWTABLESLICINGCACHE_H
13#define ARROWTABLESLICINGCACHE_H
16#include <arrow/array.h>
42 Entry(std::string
b, std::string k,
bool e =
true)
50using Cache = std::vector<Entry>;
67 std::vector<std::shared_ptr<arrow::NumericArray<arrow::Int32Type>>>
values;
68 std::vector<std::shared_ptr<arrow::NumericArray<arrow::Int64Type>>>
counts;
94 static void validateOrder(
Entry const& bindingKey, std::shared_ptr<arrow::Table>
const& input);
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * value
Defining PrimaryVertex explicitly as messageable.
ServiceKind
The kind of service we are asking for.
std::vector< Entry > Cache
void updatePairList(Cache &list, std::string const &binding, std::string const &key, bool enabled)
std::vector< std::vector< int64_t > > ListVector
static constexpr ServiceKind service_kind
void setCachesUnsorted(Cache &&bsks)
void setCaches(Cache &&bsks)
Cache bindingsKeysUnsorted
SliceInfoPtr getCacheForPos(int pos) const
SliceInfoUnsortedPtr getCacheUnsortedFor(Entry const &bindingKey) const
arrow::Status updateCacheEntryUnsorted(int pos, std::shared_ptr< arrow::Table > const &table)
int getCachePosSortedFor(Entry const &bindingKey) const
std::vector< ListVector > groups
arrow::Status updateCacheEntry(int pos, std::shared_ptr< arrow::Table > const &table)
std::pair< int, bool > getCachePos(Entry const &bindingKey) const
SliceInfoPtr getCacheFor(Entry const &bindingKey) const
std::vector< std::shared_ptr< arrow::NumericArray< arrow::Int32Type > > > values
void setCaches(Cache &&bsks, Cache &&bsksUnsorted={})
static constexpr ServiceKind service_kind
Cache bindingsKeysUnsorted
SliceInfoUnsortedPtr getCacheUnsortedForPos(int pos) const
int getCachePosUnsortedFor(Entry const &bindingKey) const
std::vector< std::vector< int > > valuesUnsorted
static void validateOrder(Entry const &bindingKey, std::shared_ptr< arrow::Table > const &input)
std::vector< std::shared_ptr< arrow::NumericArray< arrow::Int64Type > > > counts
Entry(std::string b, std::string k, bool e=true)
gsl::span< int64_t const > counts
std::pair< int64_t, int64_t > getSliceFor(int value) const
gsl::span< int const > values
gsl::span< int64_t const > getSliceFor(int value) const
gsl::span< int const > values
ListVector const * groups