34#ifndef __PG_TNUMBER_GIST_H__
35#define __PG_TNUMBER_GIST_H__
40#include <access/gist.h>
44#include "temporal/temporal.h"
72 GIST_SPLITVEC *v,
meosType bboxtype,
void (*bbox_adjust)(
void *,
void *));
77 meosType bboxtype,
double rightLower,
int minLeftCount,
double leftUpper,
80 void (*bbox_adjust)(
void *,
void *),
double (*bbox_penalty)(
void *,
void *));
float float4
Definition: c.h:580
meosType
Enumeration that defines the built-in and temporal types used in MobilityDB.
Definition: meos_catalog.h:55
External API of the Mobility Engine Open Source (MEOS) library.
uint16 StrategyNumber
Definition: stratnum.h:22
uintptr_t Datum
Definition: postgres_ext_defs.in.h:7
double rightLower
lower bound of right interval
Definition: tnumber_gist.h:61
int dim
axis of this split
Definition: tnumber_gist.h:64
int entriesCount
total number of entries being split
Definition: tnumber_gist.h:56
double leftUpper
upper bound of left interval
Definition: tnumber_gist.h:60
float4 ratio
split ratio
Definition: tnumber_gist.h:62
bboxunion boundingBox
minimum bounding box across all entries
Definition: tnumber_gist.h:57
double range
width of general MBR projection to the selected axis
Definition: tnumber_gist.h:65
float4 overlap
overlap between left and right predicate
Definition: tnumber_gist.h:63
bool first
Information about currently selected split follows.
Definition: tnumber_gist.h:59
R-tree GiST index for temporal integers and temporal floats.
Definition: tnumber_gist.h:55
Structure to represent temporal boxes.
Definition: meos.h:124
float non_negative(float val)
Replace negative (or NaN) value with zero.
Definition: tnumber_gist.c:339
int interval_cmp_upper(const void *i1, const void *i2)
Interval comparison function by upper bound of the intervals.
Definition: tnumber_gist.c:327
Datum bbox_gist_picksplit(FunctionCallInfo fcinfo, meosType bboxtype, void(*bbox_adjust)(void *, void *), double(*bbox_penalty)(void *, void *))
Double sorting split algorithm.
Definition: tnumber_gist.c:552
void bbox_gist_fallback_split(GistEntryVector *entryvec, GIST_SPLITVEC *v, meosType bboxtype, void(*bbox_adjust)(void *, void *))
Trivial split: half of entries will be placed on one page and the other half on another page.
Definition: tnumber_gist.c:494
bool tbox_index_leaf_consistent(const TBox *key, const TBox *query, StrategyNumber strategy)
Leaf consistency for temporal numbers.
Definition: tbox_index.c:73
void bbox_gist_consider_split(ConsiderSplitContext *context, int dimNum, meosType bboxtype, double rightLower, int minLeftCount, double leftUpper, int maxLeftCount)
Consider replacement of currently selected split with the better one.
Definition: tnumber_gist.c:348
int interval_cmp_lower(const void *i1, const void *i2)
Interval comparison function by lower bound of the intervals.
Definition: tnumber_gist.c:315
Structure to represent all types of bounding boxes.
Definition: temporal.h:266