sqlite-parquet-vtable/parquet/parquet_filter.h

60 lines
981 B
C
Raw Normal View History

#ifndef PARQUET_FILTER_H
#define PARQUET_FILTER_H
#include <vector>
#include <string>
#include <cstdint>
enum ConstraintOperator {
Equal,
GreaterThan,
LessThanOrEqual,
LessThan,
GreaterThanOrEqual,
Match,
Like,
Glob,
Regexp,
NotEqual,
IsNot,
IsNotNull,
IsNull,
Is
};
enum ValueType {
Null,
Integer,
Double,
Blob,
Text
};
class Constraint {
public:
// Kind of a messy constructor function, but it's just for internal use, so whatever.
Constraint(
int column,
ConstraintOperator op,
ValueType type,
2018-03-13 00:42:50 +00:00
int64_t intValue,
double doubleValue,
std::vector<unsigned char> blobValue
);
int column; // underlying column in the query
ConstraintOperator op;
ValueType type;
int64_t intValue;
double doubleValue;
std::vector<unsigned char> blobValue;
// Only set when blobValue is set
std::string stringValue;
2018-03-17 19:28:51 +00:00
// Only set when stringValue is set and op == Like
std::string likeStringValue;
};
#endif