MobilityDB 1.3
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
span.h File Reference
#include <postgres.h>
#include <meos.h>
#include "temporal/temporal.h"
#include "temporal/meos_catalog.h"

Go to the source code of this file.

Data Structures

struct  SpanBound
 Basic routines for spans (a.k.a. More...
 

Macros

#define DatumGetSpanP(X)   ((Span *) DatumGetPointer(X))
 
#define DatumGetSpanSetP(X)   ((SpanSet *) DatumGetPointer(X))
 
#define PG_GETARG_SPAN_P(X)   DatumGetSpanP(PG_GETARG_DATUM(X))
 
#define PG_GETARG_SPANSET_P(X)   ((SpanSet *) PG_GETARG_VARLENA_P(X))
 
#define PG_RETURN_SPAN_P(X)   PG_RETURN_POINTER(X)
 
#define PG_RETURN_SPANSET_P(X)   PG_RETURN_POINTER(X)
 
#define SpanPGetDatum(X)   PointerGetDatum(X)
 
#define SpanSetPGetDatum(X)   PointerGetDatum(X)
 

Functions

double dist_double_value_value (Datum l, Datum r, meosType type)
 Return the distance between two values as a double for the indexes. More...
 
bool ensure_same_span_type (const Span *s1, const Span *s2)
 Ensure that the spans have the same type. More...
 
bool ensure_span_isof_basetype (const Span *s, meosType basetype)
 Ensure that a span is of a given base type. More...
 
bool ensure_span_isof_type (const Span *s, meosType spantype)
 Ensure that a span is of a given span type. More...
 
bool ensure_valid_span_span (const Span *s1, const Span *s2)
 Ensure that two span sets are of the same span type. More...
 
void floatspan_floor_ceil_iter (Span *s, datum_func1 func)
 Round down a span to the nearest integer. More...
 
int mi_span_span (const Span *s1, const Span *s2, Span *result)
 Return in the last argument the difference of two spans. More...
 
int mi_span_value (const Span *s, Datum value, Span *result)
 Return in the last argument the difference of a span and a value. More...
 
void numspan_delta_scale_iter (Span *s, Datum origin, Datum delta, bool hasdelta, double scale)
 Shift and/or scale a span by a delta and a scale (iterator function) More...
 
void numspan_shift_scale_iter (Span *s, Datum shift, Datum width, bool hasshift, bool haswidth, Datum *delta, double *scale)
 Return a number span shifted and/or scaled by two values (iterator function) More...
 
int span_bound_cmp (const SpanBound *b1, const SpanBound *b2)
 Compare two span boundary points, returning <0, 0, or >0 according to whether the first one is less than, equal to, or greater than the second one. More...
 
int span_bound_qsort_cmp (const void *s1, const void *s2)
 Comparison function for sorting span bounds. More...
 
void span_bounds_shift_scale_time (const Interval *shift, const Interval *duration, TimestampTz *lower, TimestampTz *upper)
 Shift and/or scale period bounds by two intervals. More...
 
void span_bounds_shift_scale_value (Datum shift, Datum width, meosType type, bool hasshift, bool haswidth, Datum *lower, Datum *upper)
 Shift and/or scale the span bounds by two values. More...
 
Datum span_decr_bound (Datum upper, meosType basetype)
 Return the bound decreased by 1 for accounting for canonicalized spans. More...
 
void span_deserialize (const Span *s, SpanBound *lower, SpanBound *upper)
 Deconstruct a span. More...
 
Datum span_incr_bound (Datum upper, meosType basetype)
 Return the bound increased by 1 for accounting for canonicalized spans. More...
 
int span_lower_cmp (const Span *s1, const Span *s2)
 Compare the lower bounds of two spans, returning <0, 0, or >0 according to whether the first bound is less than, equal to, or greater than the second one. More...
 
int span_upper_cmp (const Span *s1, const Span *s2)
 Compare the upper bounds of two spans, returning <0, 0, or >0 according to whether the first bound is less than, equal to, or greater than the second one. More...
 
Spanspanarr_normalize (Span *spans, int count, bool sort, int *newcount)
 Normalize an array of spans. More...
 
void tstzspan_delta_scale_iter (Span *s, TimestampTz origin, TimestampTz delta, double scale)
 Shift and/or scale a timestamptz span by a delta and a scale. More...
 
void tstzspan_shift_scale1 (Span *s, const Interval *shift, const Interval *duration, TimestampTz *delta, double *scale)
 Return a timestamptz span shifted and/or scaled by two intervals. More...