34#ifndef __TNUMBER_GIST_H__
35#define __TNUMBER_GIST_H__
40#include <access/gist.h>
41#include <access/stratnum.h>
43#include "general/temporal.h"
71 GIST_SPLITVEC *v,
meosType bboxtype,
void (*bbox_adjust)(
void *,
void *));
76 meosType bboxtype,
double rightLower,
int minLeftCount,
double leftUpper,
79 void (*bbox_adjust)(
void *,
void *),
double (*bbox_penalty)(
void *,
void *));
83 StrategyNumber strategy);
float float4
Definition: c.h:569
meosType
Enumeration that defines the built-in and temporal types used in MobilityDB.
Definition: meos_catalog.h:53
uintptr_t Datum
Definition: pg_ext_defs.in.h:4
double rightLower
lower bound of right interval
Definition: tnumber_gist.h:60
int dim
axis of this split
Definition: tnumber_gist.h:63
int entriesCount
total number of entries being split
Definition: tnumber_gist.h:55
double leftUpper
upper bound of left interval
Definition: tnumber_gist.h:59
float4 ratio
split ratio
Definition: tnumber_gist.h:61
bboxunion boundingBox
minimum bounding box across all entries
Definition: tnumber_gist.h:56
double range
width of general MBR projection to the selected axis
Definition: tnumber_gist.h:64
float4 overlap
overlap between left and right predicate
Definition: tnumber_gist.h:62
bool first
Information about currently selected split follows.
Definition: tnumber_gist.h:58
R-tree GiST index for temporal integers and temporal floats.
Definition: tnumber_gist.h:54
Structure to represent temporal boxes.
Definition: meos.h:97
float non_negative(float val)
Replace negative (or NaN) value with zero.
Definition: tnumber_gist.c:462
int interval_cmp_upper(const void *i1, const void *i2)
Interval comparison function by upper bound of the interval.
Definition: tnumber_gist.c:450
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:619
bool tbox_index_consistent_leaf(const TBox *key, const TBox *query, StrategyNumber strategy)
R-tree GiST index for temporal integers and temporal floats.
Definition: tnumber_gist.c:77
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:474
Datum bbox_gist_picksplit_ext(FunctionCallInfo fcinfo, meosType bboxtype, void(*bbox_adjust)(void *, void *), double(*bbox_penalty)(void *, void *))
Double sorting split algorithm.
Definition: tnumber_gist.c:677
int interval_cmp_lower(const void *i1, const void *i2)
Interval comparison function by lower bound of the interval.
Definition: tnumber_gist.c:438
Structure to represent all types of bounding boxes.
Definition: temporal.h:314