MobilityDB 1.1
Functions
temporal_tile.c File Reference
#include "general/temporal_tile.h"
#include <assert.h>
#include <float.h>
#include <math.h>
#include <postgres.h>
#include <utils/datetime.h>
#include <meos.h>
#include <meos_internal.h>
#include "general/temporaltypes.h"
#include "general/type_util.h"
Include dependency graph for temporal_tile.c:

Functions

static int bucket_position (Datum value, Datum size, Datum origin, meosType type)
 Get the bucket number in the bucket space that contains the value. More...
 
Datum datum_bucket (Datum value, Datum size, Datum origin, meosType basetype)
 Return the initial value of the bucket in which a number value falls. More...
 
double float_bucket (double value, double size, double origin)
 Return the initial value of the bucket in which a float value falls. More...
 
Spanfloatspan_bucket_list (const Span *bounds, double size, double origin, int *newcount)
 Return the bucket list from an integer span. More...
 
TBoxfloatspan_period_tile_list (const TBox *bounds, double xsize, const Interval *duration, double xorigin, TimestampTz torigin, int *rows, int *columns)
 Return the grid list from a span and a period. More...
 
int int_bucket (int value, int size, int origin)
 Return the initial value of the bucket in which an integer value falls. More...
 
int64 interval_units (const Interval *interval)
 Return the interval in the same representation as Postgres timestamps. More...
 
Spanintspan_bucket_list (const Span *bounds, int size, int origin, int *newcount)
 Return the bucket list from an integer span. More...
 
Spanperiod_bucket_list (const Span *bounds, const Interval *duration, TimestampTz origin, int *newcount)
 Return the bucket list from a period. More...
 
Spanspan_bucket_get (Datum lower, Datum size, meosType basetype)
 Generate an integer or float span bucket from a bucket list. More...
 
Spanspan_bucket_list (const Span *bounds, Datum size, Datum origin, int count)
 Return the bucket list from a span. More...
 
void span_bucket_set (Datum lower, Datum size, meosType basetype, Span *span)
 Bucket and tile functions for temporal types. More...
 
SpanBucketStatespan_bucket_state_make (const Span *s, Datum size, Datum origin)
 Create the initial state that persists across multiple calls of the function. More...
 
void span_bucket_state_next (SpanBucketState *state)
 Increment the current state to the next bucket of the bucket list. More...
 
void tbox_tile_get (double value, TimestampTz t, double xsize, int64 tunits, TBox *box)
 Generate a tile from the a multidimensional grid. More...
 
TBoxtbox_tile_list (const TBox *bounds, double xsize, const Interval *duration, double xorigin, TimestampTz torigin, int *rows, int *columns)
 Return the tile list from a TBox. More...
 
TboxGridStatetbox_tile_state_make (const TBox *box, double xsize, const Interval *duration, double xorigin, TimestampTz torigin)
 Create the initial state that persists across multiple calls of the function. More...
 
void tbox_tile_state_next (TboxGridState *state)
 Increment the current state to the next tile of the multidimensional grid. More...
 
Temporal ** temporal_time_split (Temporal *temp, Interval *duration, TimestampTz torigin, int *newcount)
 Split a temporal value into fragments with respect to period buckets. More...
 
Temporal ** temporal_time_split1 (const Temporal *temp, TimestampTz start, TimestampTz end, int64 tunits, TimestampTz torigin, int count, TimestampTz **buckets, int *newcount)
 Split a temporal value into fragments with respect to period buckets. More...
 
Temporal ** temporal_value_time_split1 (Temporal *temp, Datum size, Interval *duration, Datum vorigin, TimestampTz torigin, bool valuesplit, bool timesplit, Datum **value_buckets, TimestampTz **time_buckets, int *newcount)
 Split a temporal value with respect to a base value and possibly a temporal grid. More...
 
Temporal ** tfloat_value_split (Temporal *temp, double size, double origin, int *newcount)
 Split a temporal float into fragments with respect to value buckets. More...
 
Temporal ** tfloat_value_time_split (Temporal *temp, double size, double vorigin, Interval *duration, TimestampTz torigin, int *newcount)
 Split a temporal integer into fragments with respect to value and period buckets. More...
 
TimestampTz timestamptz_bucket (TimestampTz t, const Interval *duration, TimestampTz origin)
 Return the initial timestamp of the bucket in which a timestamp falls. More...
 
TimestampTz timestamptz_bucket1 (TimestampTz t, int64 size, TimestampTz origin)
 Return the initial timestamp of the bucket in which a timestamp falls. More...
 
static TInstant ** tinstant_time_split (const TInstant *inst, int64 tunits, TimestampTz torigin, TimestampTz **buckets, int *newcount)
 Split a temporal value into an array of fragments according to time buckets. More...
 
Temporal ** tint_value_split (Temporal *temp, int size, int origin, int *newcount)
 Split a temporal integer into fragments with respect to value buckets. More...
 
Temporal ** tint_value_time_split (Temporal *temp, int size, int vorigin, Interval *duration, TimestampTz torigin, int *newcount)
 Split a temporal integer into fragments with respect to value and period buckets. More...
 
Temporal ** tnumber_value_split1 (const Temporal *temp, Datum start_bucket, Datum size, int count, Datum **buckets, int *newcount)
 Split a temporal number into an array of fragments according to value buckets. More...
 
static TInstant ** tnumberinst_value_split (const TInstant *inst, Datum start_bucket, Datum size, Datum **buckets, int *newcount)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static TSequence ** tnumberseq_disc_time_split (const TSequence *seq, TimestampTz start, int64 tunits, int count, TimestampTz **buckets, int *newcount)
 Split a temporal value into an array of fragments according to time buckets. More...
 
static TSequence ** tnumberseq_disc_value_split (const TSequence *seq, Datum start_bucket, Datum size, int count, Datum **buckets, int *newcount)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static void tnumberseq_linear_value_split (const TSequence *seq, Datum start_bucket, Datum size, int count, TSequence **result, int *numseqs, int numcols)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static void tnumberseq_step_value_split (const TSequence *seq, Datum start_bucket, Datum size, int count, TSequence **result, int *numseqs, int numcols)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static TSequenceSet ** tnumberseq_value_split (const TSequence *seq, Datum start_bucket, Datum size, int count, Datum **buckets, int *newcount)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static TSequenceSet ** tnumberseqset_value_split (const TSequenceSet *ss, Datum start_bucket, Datum size, int count, Datum **buckets, int *newcount)
 Split a temporal value into an array of fragments according to value buckets. More...
 
static TSequence ** tsequence_time_split (const TSequence *seq, TimestampTz start, TimestampTz end, int64 tunits, int count, TimestampTz **buckets, int *newcount)
 Split a temporal value into an array of fragments according to period buckets. More...
 
static int tsequence_time_split1 (const TSequence *seq, TimestampTz start, TimestampTz end, int64 tunits, int count, TSequence **result, TimestampTz *times)
 Split a temporal value into an array of fragments according to period buckets. More...
 
static TSequenceSet ** tsequenceset_time_split (const TSequenceSet *ss, TimestampTz start, TimestampTz end, int64 tunits, int count, TimestampTz **buckets, int *newcount)
 Split a temporal value into an array of disjoint fragments. More...