![]() |
MobilityDB 1.3
|
Index support functions for temporal types. More...
#include <assert.h>
#include <postgres.h>
#include <catalog/pg_opfamily.h>
#include <catalog/pg_am_d.h>
#include <nodes/supportnodes.h>
#include <nodes/nodeFuncs.h>
#include <nodes/makefuncs.h>
#include <optimizer/optimizer.h>
#include <parser/parse_func.h>
#include <utils/syscache.h>
#include <meos.h>
#include "temporal/temporal_boxops.h"
#include "pg_temporal/meos_catalog.h"
#include "pg_temporal/temporal_selfuncs.h"
Data Structures | |
struct | IndexableFunction |
Enumerations | |
enum | TEMPORAL_FUNCTION_IDX { EVER_EQ_IDX = 1 , ALWAYS_EQ_IDX = 2 , ECONTAINS_IDX = 3 , EDISJOINT_IDX = 4 , EINTERSECTS_IDX = 5 , ETOUCHES_IDX = 6 , EDWITHIN_IDX = 7 , ACONTAINS_IDX = 8 , ADISJOINT_IDX = 9 , AINTERSECTS_IDX = 10 , ATOUCHES_IDX = 11 , ADWITHIN_IDX = 12 } |
Functions | |
bool | func_needs_index (Oid funcid, const IndexableFunction *idxfns, IndexableFunction *result) |
Is the function calling the support function one of those we will enhance with index ops? If so, copy the metadata for the function into idxfn and return true. More... | |
static FuncExpr * | makeBboxExpr (Node *arg, Oid argoid, Oid retoid, Oid callingfunc) |
To apply the "bunding box search" pattern we need access to the corresponding bbox function, so lookup the function Oid using the function name and type number. More... | |
static FuncExpr * | makeExpandExpr (Node *arg, Node *radiusarg, Oid argoid, Oid retoid, Oid callingfunc) |
To apply the "expand for radius search" pattern we need access to the expand function, so lookup the function Oid using the function name and type number. More... | |
static Oid | opFamilyAmOid (Oid opfamilyoid) |
We only add index enhancements for indexes that support range-based searches like the && operator), so only implementations based on GIST and SPGIST. More... | |
static int16 | temporal_get_strategy_by_type (meosType temptype, uint16_t index) |
static Datum | Temporal_supportfn (FunctionCallInfo fcinfo, TemporalFamily tempfamily) |
For functions that we want enhanced with spatial index lookups, add this support function to the SQL function definition, for example: More... | |
Datum | Tnumber_supportfn (PG_FUNCTION_ARGS) |
Support function for temporal number types. More... | |
Datum | Tspatial_supportfn (PG_FUNCTION_ARGS) |
Support function for temporal number types. More... | |
static meosType | type_to_bbox (meosType type) |
Transform the constant into a bounding box. More... | |
Variables | |
static const IndexableFunction | TemporalIndexableFunctions [] |
static const IndexableFunction | TNumberIndexableFunctions [] |
static const int16 | TNumberStrategies [] |
static const IndexableFunction | TSpatialIndexableFunctions [] |
static const int16 | TSpatialStrategies [] |
Index support functions for temporal types.