MobilityDB 1.1
Functions
spanset_ops.c File Reference
#include <assert.h>
#include <postgres.h>
#include <utils/timestamp.h>
#include <meos.h>
#include <meos_internal.h>
#include "general/set.h"
#include "general/spanset.h"
#include "general/temporal_tile.h"
#include "general/type_util.h"
Include dependency graph for spanset_ops.c:

Functions

bool adjacent_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set and a value are adjacent. More...
 
bool adjacent_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set and a value are adjacent. More...
 
bool adjacent_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set and a value are adjacent. More...
 
bool adjacent_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return true if a period set a timestamp are adjacent. More...
 
bool adjacent_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set and a span are adjacent. More...
 
bool adjacent_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if a span set and a span are adjacent. More...
 
bool adjacent_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set and a value are adjacent. More...
 
bool after_periodset_timestamp (const SpanSet *ss, TimestampTz t)
 Return true if a span set is strictly to the right of a value. More...
 
bool after_timestamp_periodset (TimestampTz t, const SpanSet *ss)
 Return true if a value is strictly to the right of a span set. More...
 
bool before_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return true if a period set is strictly before a timestamp. More...
 
bool before_timestamp_periodset (TimestampTz t, const SpanSet *ps)
 Return true if a period set is strictly before a timestamp. More...
 
bool contained_bigint_bigintspanset (int64 i, const SpanSet *ss)
 Return true if a value is contained by a span. More...
 
bool contained_float_floatspanset (double d, const SpanSet *ss)
 Return true if a value is contained by a span. More...
 
bool contained_int_intspanset (int i, const SpanSet *ss)
 Return true if a value is contained by a span. More...
 
bool contained_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span is contained by a span. More...
 
bool contained_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set is contained by a span. More...
 
bool contained_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set is contained by the second one. More...
 
bool contained_value_spanset (Datum d, meosType basetype, const SpanSet *ss)
 Return true if a value is contained by a span. More...
 
bool contains_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set contains a value. More...
 
bool contains_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set contains a value. More...
 
bool contains_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set contains a value. More...
 
bool contains_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return true if a period set contains a timestamp. More...
 
bool contains_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span contains a span set. More...
 
bool contains_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set contains a span. More...
 
bool contains_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set contains the second one. More...
 
bool contains_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set contains a value. More...
 
double distance_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return the distance between a timestamp and a span set. More...
 
double distance_floatspanset_float (const SpanSet *ss, double d)
 Return the distance between a timestamp and a span set. More...
 
double distance_intspanset_int (const SpanSet *ss, int i)
 Return the distance between a timestamp and a span set. More...
 
double distance_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return the distance in seconds between a period set and a timestamp. More...
 
double distance_spanset_span (const SpanSet *ss, const Span *s)
 Return the distance between a span set and a span. More...
 
double distance_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return the distance between two span sets. More...
 
double distance_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return the distance between a timestamp and a span set. More...
 
bool intersection_bigintspanset_bigint (const SpanSet *ss, int64 i, int64 *result)
 Return the intersection of a span set and a value. More...
 
bool intersection_floatspanset_float (const SpanSet *ss, double d, double *result)
 Return the intersection of a span set and a value. More...
 
bool intersection_intspanset_int (const SpanSet *ss, int i, int *result)
 Return the intersection of a span set and a value. More...
 
bool intersection_periodset_timestamp (const SpanSet *ps, TimestampTz t, TimestampTz *result)
 Return the intersection of a period set and a timestamp. More...
 
SpanSetintersection_spanset_span (const SpanSet *ss, const Span *s)
 Return the intersection of a span set and a span. More...
 
SpanSetintersection_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return the intersection of two span sets. More...
 
bool intersection_spanset_value (const SpanSet *ss, Datum d, meosType basetype, Datum *result)
 Return the intersection of a span set and a value. More...
 
bool left_bigint_bigintspanset (int64 i, const SpanSet *ss)
 Return true if a value is strictly to the left of a span set. More...
 
bool left_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set is strictly to the left of a value. More...
 
bool left_float_floatspanset (double d, const SpanSet *ss)
 Return true if a value is strictly to the left of a span set. More...
 
bool left_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set is strictly to the left of a value. More...
 
bool left_int_intspanset (int i, const SpanSet *ss)
 Return true if a value is strictly to the left of a span set. More...
 
bool left_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set is strictly to the left of a value. More...
 
bool left_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span is strictly before a span set. More...
 
bool left_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set is strictly before a span. More...
 
bool left_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set is strictly before the second one. More...
 
bool left_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set is strictly to the left of a value. More...
 
bool left_value_spanset (Datum d, meosType basetype, const SpanSet *ss)
 Return true if a value is strictly to the left of a span set. More...
 
bool minus_bigint_bigintspanset (int64 i, const SpanSet *ss, int64 *result)
 Return the difference of a value and a span set. More...
 
SpanSetminus_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return the difference of a span set and a value. More...
 
bool minus_float_floatspanset (double d, const SpanSet *ss, double *result)
 Return the difference of a value and a span set. More...
 
SpanSetminus_floatspanset_float (const SpanSet *ss, double d)
 Return the difference of a span set and a value. More...
 
bool minus_int_intspanset (int i, const SpanSet *ss, int *result)
 Return the difference of a value and a span set. More...
 
SpanSetminus_intspanset_int (const SpanSet *ss, int i)
 Return the difference of a span set and a value. More...
 
SpanSetminus_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return the difference of a period set and a timestamp. More...
 
SpanSetminus_span_spanset (const Span *s, const SpanSet *ss)
 Return the difference of a span and a span set. More...
 
int minus_span_spanset1 (Span **result, const Span *s, const SpanSet *ss, int from, int to)
 Return the difference of a span and a span set. More...
 
SpanSetminus_spanset_span (const SpanSet *ss, const Span *s)
 Return the difference of a span set and a span. More...
 
SpanSetminus_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return the difference of two span sets. More...
 
SpanSetminus_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return the difference of a span set and a value. More...
 
bool minus_timestamp_periodset (TimestampTz t, const SpanSet *ps, TimestampTz *result)
 Return the difference of a timestamp and a period set. More...
 
bool minus_value_spanset (Datum d, meosType basetype, const SpanSet *ss, Datum *result)
 Return the difference of a value and a span set. More...
 
bool overafter_periodset_timestamp (const SpanSet *ss, TimestampTz t)
 Return true if a span set does not extend to the left of a value. More...
 
bool overafter_timestamp_periodset (TimestampTz t, const SpanSet *ps)
 Return true if a timestamp is not before a period set. More...
 
bool overbefore_periodset_timestamp (const SpanSet *ps, TimestampTz t)
 Return true if a period set is not after a timestamp. More...
 
bool overbefore_timestamp_periodset (TimestampTz t, const SpanSet *ps)
 Return true if a timestamp is not after a period set. More...
 
bool overlaps_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span and a span set overlap. More...
 
bool overlaps_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if two span sets overlap. More...
 
bool overleft_bigint_bigintspanset (int64 i, const SpanSet *ss)
 Return true if a value does not extend to the right of a span set. More...
 
bool overleft_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set does not extend to the right of a value. More...
 
bool overleft_float_floatspanset (double d, const SpanSet *ss)
 Return true if a value does not extend to the right of a span set. More...
 
bool overleft_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set does not extend to the right of a value. More...
 
bool overleft_int_intspanset (int i, const SpanSet *ss)
 Return true if a value does not extend to the right of a span set. More...
 
bool overleft_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set does not extend to the right of a value. More...
 
bool overleft_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span does not extend to the right of a span set. More...
 
bool overleft_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set does not extend to the right of a span. More...
 
bool overleft_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set does not extend to the right of the second one. More...
 
bool overleft_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set does not extend to the right of a value. More...
 
bool overleft_value_spanset (Datum d, meosType basetype, const SpanSet *ss)
 Return true if a value does not extend to the right of a span set. More...
 
bool overright_bigint_bigintspanset (int64 i, const SpanSet *ss)
 Return true if a value does not extend to the left of a span set. More...
 
bool overright_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set does not extend to the left of a value. More...
 
bool overright_float_floatspanset (double d, const SpanSet *ss)
 Return true if a value does not extend to the left of a span set. More...
 
bool overright_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set does not extend to the left of a value. More...
 
bool overright_int_intspanset (int i, const SpanSet *ss)
 Return true if a value does not extend to the left of a span set. More...
 
bool overright_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set does not extend to the left of a value. More...
 
bool overright_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span does not extend to the left of a span set. More...
 
bool overright_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set does not extend to the right of a span. More...
 
bool overright_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set does not extend to the right of the second one. More...
 
bool overright_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set does not extend to the left of a value. More...
 
bool overright_value_spanset (Datum d, meosType basetype, const SpanSet *ss)
 Return true if a value does not extend to the left of a span set. More...
 
Spanperiod_tprecision (const Span *s, const Interval *duration, TimestampTz torigin)
 Set the precision of a time value according to period buckets. More...
 
SpanSetperiodset_tprecision (const SpanSet *ss, const Interval *duration, TimestampTz torigin)
 Set the precision of a time value into an array of disjoint fragments. More...
 
bool right_bigint_bigintspanset (int64 i, const SpanSet *ss)
 Return true if a value is strictly to the right of a span set. More...
 
bool right_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return true if a span set is strictly to the right of a value. More...
 
bool right_float_floatspanset (double d, const SpanSet *ss)
 Return true if a value is strictly to the right of a span set. More...
 
bool right_floatspanset_float (const SpanSet *ss, double d)
 Return true if a span set is strictly to the right of a value. More...
 
bool right_int_intspanset (int i, const SpanSet *ss)
 Return true if a value is strictly to the right of a span set. More...
 
bool right_intspanset_int (const SpanSet *ss, int i)
 Return true if a span set is strictly to the right of a value. More...
 
bool right_span_spanset (const Span *s, const SpanSet *ss)
 Return true if a span is strictly to the right of a span set. More...
 
bool right_spanset_span (const SpanSet *ss, const Span *s)
 Return true if a span set is strictly after a span. More...
 
bool right_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return true if the first span set is strictly after the second one. More...
 
bool right_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return true if a span set is strictly to the right of a value. More...
 
bool right_value_spanset (Datum d, meosType basetype, const SpanSet *ss)
 Return true if a value is strictly to the right of a span set. More...
 
TimestampTz timestamp_tprecision (TimestampTz t, const Interval *duration, TimestampTz torigin)
 Operators for span set types. More...
 
bool union_bigintspanset_bigint (const SpanSet *ss, int64 i)
 Return the union of a span set and a value. More...
 
bool union_floatspanset_float (const SpanSet *ss, double d)
 Return the union of a span set and a value. More...
 
bool union_intspanset_int (const SpanSet *ss, int i)
 Return the union of a span set and a value. More...
 
SpanSetunion_periodset_timestamp (SpanSet *ps, TimestampTz t)
 Return the union of a period set and a timestamp. More...
 
SpanSetunion_spanset_span (const SpanSet *ss, const Span *s)
 Return the union of a span set and a span. More...
 
SpanSetunion_spanset_spanset (const SpanSet *ss1, const SpanSet *ss2)
 Return the union of two span sets. More...
 
SpanSetunion_spanset_value (const SpanSet *ss, Datum d, meosType basetype)
 Return the union of a span set and a value. More...