MobilityDB 1.3
Loading...
Searching...
No Matches
Functions
tspatial_selfuncs.c File Reference

Functions for selectivity estimation of operators on spatiotemporal values. More...

#include "pg_geo/tspatial_selfuncs.h"
#include <math.h>
#include <postgres.h>
#include <utils/lsyscache.h>
#include <utils/syscache.h>
#include <meos.h>
#include <meos_internal.h>
#include "temporal/meos_catalog.h"
#include "pg_geo/tspatial_analyze.h"

Functions

float8 geo_joinsel (const ND_STATS *s1, const ND_STATS *s2)
 Given two statistics histograms, what is the selectivity of a join driven by the && operator? More...
 
Selectivity geo_sel (VariableStatData *vardata, const STBox *box, meosOper oper)
 Return an estimate of the selectivity of a spatiotemporal search box by looking at data in the ND_STATS structure. More...
 
static bool nd_box_above (const ND_BOX *a, const ND_BOX *b)
 Return true if a is strictly above b, false otherwise. More...
 
static bool nd_box_back (const ND_BOX *a, const ND_BOX *b)
 Return true if a strictly at the back of b, false otherwise. More...
 
static bool nd_box_below (const ND_BOX *a, const ND_BOX *b)
 Return true if a is strictly below of b, false otherwise. More...
 
static int nd_box_contains (const ND_BOX *a, const ND_BOX *b, int ndims)
 Return true if a contains b, false otherwise. More...
 
static void nd_box_from_stbox (const STBox *box, ND_BOX *nd_box)
 Initialize the ND_BOX in the last argument with a spatiotemporal box. More...
 
static bool nd_box_front (const ND_BOX *a, const ND_BOX *b)
 Return true if a is strictly in front of b, false otherwise. More...
 
static bool nd_box_left (const ND_BOX *a, const ND_BOX *b)
 Return true if a is strictly to the left of b, false otherwise. More...
 
static bool nd_box_overabove (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend below b, false otherwise. More...
 
static bool nd_box_overback (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend to the front of b, false otherwise. More...
 
static bool nd_box_overbelow (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend above of b, false otherwise. More...
 
static bool nd_box_overfront (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend to the back of b, false otherwise. More...
 
static bool nd_box_overleft (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend to right of b, false otherwise. More...
 
static bool nd_box_overright (const ND_BOX *a, const ND_BOX *b)
 Return true if a does not extend to left of b, false otherwise. More...
 
static double nd_box_ratio_above (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is above b1. More...
 
static double nd_box_ratio_back (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is at the back of b1. More...
 
static double nd_box_ratio_below (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is below b1. More...
 
static double nd_box_ratio_front (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is in front of b1. More...
 
static double nd_box_ratio_left (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is to the left of b1. More...
 
static double nd_box_ratio_overabove (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overabove of b1. More...
 
static double nd_box_ratio_overback (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overback of b1. More...
 
static double nd_box_ratio_overbelow (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overbelow of b1. More...
 
static double nd_box_ratio_overfront (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overfront of b1. More...
 
static double nd_box_ratio_overleft (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overleft of b1. More...
 
static double nd_box_ratio_overright (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is overright of b1. More...
 
static double nd_box_ratio_position (const ND_BOX *b1, const ND_BOX *b2, meosOper oper)
 Dispatch function for the position operators. More...
 
static double nd_box_ratio_right (const ND_BOX *b1, const ND_BOX *b2)
 Return the proportion of b2 that is to the right of b1. More...
 
static bool nd_box_right (const ND_BOX *a, const ND_BOX *b)
 Return true if a is strictly to the right of b, false otherwise. More...
 
ND_STATSpg_get_nd_stats (const Oid tableid, AttrNumber att_num, int mode, bool only_parent)
 Pull the stats object from the PgSQL system catalogs. More...
 
ND_STATSpg_nd_stats_from_tuple (HeapTuple stats_tuple, int mode)
 Get the statistics from a tuple. More...
 

Detailed Description

Functions for selectivity estimation of operators on spatiotemporal values.