MobilityDB  1.0
Data Structures | Macros | Functions
tnumber_gist.c File Reference

R-tree GiST index for temporal integers and temporal floats. More...

#include "general/tnumber_gist.h"
#include <assert.h>
#include <float.h>
#include <math.h>
#include <access/gist.h>
#include <utils/builtins.h>
#include "general/rangetypes_ext.h"
#include "general/period.h"
#include "general/timeops.h"
#include "general/time_gist.h"
#include "general/temporal_util.h"
#include "general/tempcache.h"
#include "general/temporal_boxops.h"
#include "general/temporal_posops.h"
#include "general/tnumber_distance.h"
Include dependency graph for tnumber_gist.c:

Data Structures

struct  ConsiderSplitContext
 Structure keeping context for the function period_gist_consider_split. More...
 

Macros

#define PLACE_LEFT(box, off)
 
#define PLACE_RIGHT(box, off)
 

Functions

bool tbox_index_consistent_leaf (const TBOX *key, const TBOX *query, StrategyNumber strategy)
 Leaf-level consistency for temporal numbers. More...
 
static bool tbox_gist_consistent_internal (const TBOX *key, const TBOX *query, StrategyNumber strategy)
 GiST internal-page consistent method for temporal numbers. More...
 
static bool tnumber_index_get_tbox (FunctionCallInfo fcinfo, TBOX *query, Oid subtype)
 Transform the query into a box initializing the dimensions that must not be taken into account by the operators to infinity. More...
 
PGDLLEXPORT Datum tnumber_gist_consistent (PG_FUNCTION_ARGS)
 GiST consistent method for temporal numbers. More...
 
static void tbox_adjust (TBOX *b, const TBOX *addon)
 Increase the first box to include the second one. More...
 
PGDLLEXPORT Datum tbox_gist_union (PG_FUNCTION_ARGS)
 GiST union method for temporal numbers. More...
 
PGDLLEXPORT Datum tnumber_gist_compress (PG_FUNCTION_ARGS)
 GiST compress method for temporal numbers. More...
 
PGDLLEXPORT Datum tnumber_gist_decompress (PG_FUNCTION_ARGS)
 GiST decompress method for temporal numbers (result in a temporal box) More...
 
static void tbox_union_rt (TBOX *n, const TBOX *a, const TBOX *b)
 Calculates the union of two tboxes. More...
 
static double tbox_size (const TBOX *box)
 Returns the size of a temporal box for penalty-calculation purposes. More...
 
static double tbox_penalty (const TBOX *original, const TBOX *new)
 Returns the amount by which the union of the two boxes is larger than the original TBOX's area. More...
 
PGDLLEXPORT Datum tbox_gist_penalty (PG_FUNCTION_ARGS)
 GiST penalty method for temporal boxes. More...
 
static void tbox_gist_fallback_split (GistEntryVector *entryvec, GIST_SPLITVEC *v)
 Trivial split: half of entries will be placed on one page and another half - to another. More...
 
int interval_cmp_lower (const void *i1, const void *i2)
 Interval comparison function by lower bound of the interval;. More...
 
int interval_cmp_upper (const void *i1, const void *i2)
 Interval comparison function by upper bound of the interval;. More...
 
float non_negative (float val)
 Replace negative (or NaN) value with zero. More...
 
static void tbox_gist_consider_split (ConsiderSplitContext *context, int dimNum, double rightLower, int minLeftCount, double leftUpper, int maxLeftCount)
 Consider replacement of currently selected split with the better one. More...
 
PGDLLEXPORT Datum tbox_gist_picksplit (PG_FUNCTION_ARGS)
 GiST picksplit method for temporal numbers. More...
 
PGDLLEXPORT Datum tbox_gist_same (PG_FUNCTION_ARGS)
 GiST same method for temporal numbers. More...
 
Datum tbox_gist_distance (PG_FUNCTION_ARGS)
 GiST support function. More...
 

Detailed Description

R-tree GiST index for temporal integers and temporal floats.

These functions are based on those in the file gistproc.c.