MobilityDB 1.3
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions | Variables
temporal_supportfn.c File Reference

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 []
 

Detailed Description

Index support functions for temporal types.