MobilityDB 1.1
Functions
tsequenceset.c File Reference
#include "general/tsequenceset.h"
#include <assert.h>
#include <postgres.h>
#include <utils/timestamp.h>
#include <meos.h>
#include <meos_internal.h>
#include "general/pg_types.h"
#include "general/set.h"
#include "general/spanset.h"
#include "general/temporaltypes.h"
#include "general/temporal_boxops.h"
#include "general/type_parser.h"
#include "general/type_util.h"
#include "point/tpoint_parser.h"
Include dependency graph for tsequenceset.c:

Functions

bool intersection_tdiscseq_tsequenceset (const TSequence *seq, const TSequenceSet *ss, TSequence **inter1, TSequence **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tinstant_tsequenceset (const TInstant *inst, const TSequenceSet *ss, TInstant **inter1, TInstant **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tsequence_tsequenceset (const TSequence *seq, const TSequenceSet *ss, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize two temporal values. More...
 
bool intersection_tsequenceset_tdiscseq (const TSequenceSet *ss, const TSequence *seq, TSequence **inter1, TSequence **inter2)
 Temporally intersect two temporal values. More...
 
bool intersection_tsequenceset_tinstant (const TSequenceSet *ss, const TInstant *inst, TInstant **inter1, TInstant **inter2)
 Temporally intersect two temporal values. More...
 
bool synchronize_tsequenceset_tsequence (const TSequenceSet *ss, const TSequence *seq, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize a temporal sequence set and a temporal sequence. More...
 
bool synchronize_tsequenceset_tsequenceset (const TSequenceSet *ss1, const TSequenceSet *ss2, SyncMode mode, TSequenceSet **inter1, TSequenceSet **inter2)
 Temporally intersect or synchronize two temporal sequence sets. More...
 
TSequenceSettboolseqset_from_base (bool b, const TSequenceSet *ss)
 Construct a temporal boolean sequence set from a boolean and the time frame of another temporal sequence set. More...
 
TSequenceSettboolseqset_from_base_time (bool b, const SpanSet *ps)
 Construct a temporal boolean sequence set from a boolean and a period set. More...
 
TSequenceSettboolseqset_in (const char *str)
 Return a temporal sequence set boolean from its Well-Known Text (WKT) representation. More...
 
TSequenceSettdiscseq_to_tsequenceset (const TSequence *seq, interpType interp)
 Return a temporal discrete sequence transformed into a temporal sequence set. More...
 
TSequenceSettfloatseqset_from_base (double d, const TSequenceSet *ss, interpType interp)
 Construct a temporal float sequence set from a float and the time frame of another temporal sequence set. More...
 
TSequenceSettfloatseqset_from_base_time (double d, const SpanSet *ps, interpType interp)
 Construct a temporal float sequence set from a float and a period set. More...
 
TSequenceSettfloatseqset_in (const char *str)
 Return a temporal sequence set float from its Well-Known Text (WKT) representation. More...
 
SpanSettfloatseqset_spanset (const TSequenceSet *ss)
 Return the span set of a temporal float sequence set. More...
 
TSequenceSettfloatseqset_to_tintseqset (const TSequenceSet *ss)
 Cast a temporal sequence set float to a temporal sequence set integer. More...
 
TSequenceSettgeogpointseqset_from_base (const GSERIALIZED *gs, const TSequenceSet *ss, interpType interp)
 Construct a temporal geographic point sequence set from a point and the time frame of another temporal sequence set. More...
 
TSequenceSettgeogpointseqset_from_base_time (const GSERIALIZED *gs, const SpanSet *ps, interpType interp)
 Construct a temporal geographic point sequence set from a point and a period set. More...
 
TSequenceSettgeogpointseqset_in (const char *str)
 Return a temporal sequence set geographic point from its Well-Known Text (WKT) representation. More...
 
TSequenceSettgeompointseqset_from_base (const GSERIALIZED *gs, const TSequenceSet *ss, interpType interp)
 Construct a temporal geometric point sequence set from a point and the time frame of another temporal sequence set. More...
 
TSequenceSettgeompointseqset_from_base_time (const GSERIALIZED *gs, const SpanSet *ps, interpType interp)
 Construct a temporal geometric point sequence set from a point and a period set. More...
 
TSequenceSettgeompointseqset_in (const char *str)
 Return a temporal sequence set geometric point from its Well-Known Text (WKT) representation. More...
 
TSequenceSettinstant_to_tsequenceset (const TInstant *inst, interpType interp)
 Return a temporal instant transformed into a temporal sequence set. More...
 
TSequenceSettintseqset_from_base (int i, const TSequenceSet *ss)
 Construct a temporal integer sequence set from an integer and the time frame of another temporal sequence set. More...
 
TSequenceSettintseqset_from_base_time (int i, const SpanSet *ps)
 Construct a temporal integer sequence set from an integer and a period set. More...
 
TSequenceSettintseqset_in (const char *str)
 Return a temporal sequence set integer from its Well-Known Text (WKT) representation. More...
 
TSequenceSettintseqset_to_tfloatseqset (const TSequenceSet *ss)
 Cast a temporal sequence set integer to a temporal sequence set float. More...
 
double tnumberseqset_integral (const TSequenceSet *ss)
 Return the integral (area under the curve) of a temporal number. More...
 
TSequenceSettnumberseqset_restrict_span (const TSequenceSet *ss, const Span *span, bool atfunc)
 Restrict a temporal number to a span of base values. More...
 
TSequenceSettnumberseqset_restrict_spanset (const TSequenceSet *ss, const SpanSet *spanset, bool atfunc)
 Restrict a temporal number to (the complement of) an array of spans of base values. More...
 
double tnumberseqset_twavg (const TSequenceSet *ss)
 Return the time-weighted average of a temporal number. More...
 
TSequenceSettsequence_to_tsequenceset (const TSequence *seq)
 Return a temporal sequence transformed into a temporal sequence set. More...
 
bool tsequenceset_always_eq (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is always equal to a base value. More...
 
bool tsequenceset_always_le (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is always less than or equal to a base value. More...
 
bool tsequenceset_always_lt (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is always less than a base value. More...
 
TSequenceSettsequenceset_append_tinstant (TSequenceSet *ss, const TInstant *inst, bool expand)
 Append an instant to a temporal sequence set. More...
 
TSequenceSettsequenceset_append_tsequence (TSequenceSet *ss, const TSequence *seq, bool expand)
 Append a sequence to a temporal sequence set. More...
 
int tsequenceset_cmp (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Return -1, 0, or 1 depending on whether the first Temporal sequence set is less than, equal, or greater than the second one. More...
 
TSequenceSettsequenceset_compact (const TSequenceSet *ss)
 Return a copy of a temporal sequence set without any extra space. More...
 
TSequenceSettsequenceset_copy (const TSequenceSet *ss)
 Return a copy of a temporal sequence set. More...
 
TSequenceSettsequenceset_delete_period (const TSequenceSet *ss, const Span *p)
 Delete a period from a temporal sequence set. More...
 
TSequenceSettsequenceset_delete_periodset (const TSequenceSet *ss, const SpanSet *ps)
 Delete a period from a temporal sequence set. More...
 
TSequenceSettsequenceset_delete_timestamp (const TSequenceSet *ss, TimestampTz t)
 Delete a timestamp from a temporal sequence set. More...
 
TSequenceSettsequenceset_delete_timestampset (const TSequenceSet *ss, const Set *ts)
 Restrict a temporal sequence set to (the complement of) a timestamp set. More...
 
Intervaltsequenceset_duration (const TSequenceSet *ss, bool boundspan)
 Return the duration of a temporal sequence set. More...
 
TimestampTz tsequenceset_end_timestamp (const TSequenceSet *ss)
 Return the end timestamp of a temporal sequence set. More...
 
bool tsequenceset_eq (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Return true if two temporal sequence sets are equal. More...
 
bool tsequenceset_ever_eq (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is ever equal to a base value. More...
 
bool tsequenceset_ever_le (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is ever less than or equal to a base value. More...
 
bool tsequenceset_ever_lt (const TSequenceSet *ss, Datum value)
 Return true if a temporal sequence set is ever less than a base value. More...
 
bool tsequenceset_find_timestamp (const TSequenceSet *ss, TimestampTz t, int *loc)
 General functions for temporal sequence sets. More...
 
TSequenceSettsequenceset_from_base (Datum value, meosType temptype, const TSequenceSet *ss, interpType interp)
 Construct a temporal sequence set from a base value and the time frame of another temporal sequence set. More...
 
TSequenceSettsequenceset_from_base_time (Datum value, meosType temptype, const SpanSet *ps, interpType interp)
 Construct a temporal sequence set from a base value and a period set. More...
 
uint32 tsequenceset_hash (const TSequenceSet *ss)
 Return the 32-bit hash value of a temporal sequence set. More...
 
TSequenceSettsequenceset_in (const char *str, meosType temptype, interpType interp)
 Return a temporal sequence set from its Well-Known Text (WKT) representation. More...
 
TSequenceSettsequenceset_insert (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Insert the second temporal value into the first one. More...
 
const TInstanttsequenceset_inst_n (const TSequenceSet *ss, int n)
 Return the n-th distinct instant of a temporal sequence set. More...
 
const TInstant ** tsequenceset_instants (const TSequenceSet *ss, int *count)
 Return the distinct instants of a temporal sequence set. More...
 
static double tsequenceset_interval_double (const TSequenceSet *ss)
 Return the duration of a temporal sequence set as a double. More...
 
TSequenceSettsequenceset_make (const TSequence **sequences, int count, bool normalize)
 Construct a temporal sequence set from an array of temporal sequences. More...
 
static TSequenceSettsequenceset_make1_exp (const TSequence **sequences, int count, int maxcount, bool normalize)
 Construct a temporal sequence set from an array of temporal sequences. More...
 
TSequenceSettsequenceset_make_exp (const TSequence **sequences, int count, int maxcount, bool normalize)
 Construct a temporal sequence set from an array of temporal sequences. More...
 
TSequenceSettsequenceset_make_free (TSequence **sequences, int count, bool normalize)
 Construct a temporal sequence set from an array of temporal sequences and free the array and the sequences after the creation. More...
 
TSequenceSettsequenceset_make_gaps (const TInstant **instants, int count, interpType interp, float maxdist, Interval *maxt)
 Construct a temporal sequence set from an array of temporal instants introducing a gap when two consecutive instants are separated from each other by at least the given distance or the given time interval. More...
 
static void tsequenceset_make_valid (const TSequence **sequences, int count)
 Ensure the validity of the arguments when creating a temporal sequence set. More...
 
static int * tsequenceset_make_valid_gaps (const TInstant **instants, int count, bool lower_inc, bool upper_inc, interpType interp, double maxdist, Interval *maxt, int *countsplits)
 Ensure the validity of the arguments when creating a temporal value This function extends function tsequence_make_valid by spliting the sequences according the maximum distance or interval between instants. More...
 
const TInstanttsequenceset_max_instant (const TSequenceSet *ss)
 Return a pointer to the instant with maximum base value of a temporal sequence set. More...
 
Datum tsequenceset_max_value (const TSequenceSet *ss)
 Return the maximum base value of a temporal sequence set. More...
 
TSequenceSettsequenceset_merge (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Merge two temporal sequence sets. More...
 
TSequenceSettsequenceset_merge_array (const TSequenceSet **seqsets, int count)
 Merge an array of temporal sequence sets. More...
 
const TInstanttsequenceset_min_instant (const TSequenceSet *ss)
 Return a pointer to the instant with minimum base value of a temporal sequence set. More...
 
Datum tsequenceset_min_value (const TSequenceSet *ss)
 Return the minimum base value of a temporal sequence set. More...
 
int tsequenceset_num_instants (const TSequenceSet *ss)
 Return the number of distinct instants of a temporal sequence set. More...
 
int tsequenceset_num_timestamps (const TSequenceSet *ss)
 Return the number of distinct timestamps of a temporal sequence set. More...
 
static size_t * tsequenceset_offsets_ptr (const TSequenceSet *ss)
 Return a pointer to the offsets array of a temporal sequence set. More...
 
char * tsequenceset_out (const TSequenceSet *ss, int maxdd)
 Return the Well-Known Text (WKT) representation of a temporal sequence set. More...
 
TSequenceSettsequenceset_restrict_minmax (const TSequenceSet *ss, bool min, bool atfunc)
 Restrict a temporal sequence set to (the complement of) its minimum/maximum base value. More...
 
TSequenceSettsequenceset_restrict_period (const TSequenceSet *ss, const Span *p, bool atfunc)
 Restrict a temporal sequence set to (the complement of) a period. More...
 
TSequenceSettsequenceset_restrict_periodset (const TSequenceSet *ss, const SpanSet *ps, bool atfunc)
 Restrict a temporal sequence set to (the complement of) a period set. More...
 
Temporaltsequenceset_restrict_timestamp (const TSequenceSet *ss, TimestampTz t, bool atfunc)
 Restrict a temporal sequence set to (the complement of) a timestamp. More...
 
Temporaltsequenceset_restrict_timestampset (const TSequenceSet *ss, const Set *ts, bool atfunc)
 Restrict a temporal sequence set to (the complement of) a timestamp set. More...
 
TSequenceSettsequenceset_restrict_value (const TSequenceSet *ss, Datum value, bool atfunc)
 Restrict a temporal sequence set to (the complement of) a base value. More...
 
TSequenceSettsequenceset_restrict_values (const TSequenceSet *ss, const Set *set, bool atfunc)
 Restrict a temporal sequence set to (the complement of) an array of base values. More...
 
TSequence ** tsequenceset_segments (const TSequenceSet *ss, int *count)
 Return the array of segments of a temporal sequence set. More...
 
const TSequencetsequenceset_seq_n (const TSequenceSet *ss, int index)
 Return the n-th sequence of a temporal sequence set. More...
 
TSequence ** tsequenceset_sequences (const TSequenceSet *ss, int *count)
 Return the array of sequences of a temporal sequence set. More...
 
const TSequence ** tsequenceset_sequences_p (const TSequenceSet *ss)
 Return an array of pointers to the sequences of a temporal sequence set. More...
 
void tsequenceset_set_bbox (const TSequenceSet *ss, void *box)
 Set the second argument to the bounding box of a temporal sequence set. More...
 
void tsequenceset_set_period (const TSequenceSet *ss, Span *p)
 Return the bounding period of a temporal sequence set. More...
 
TSequenceSettsequenceset_shift_tscale (const TSequenceSet *ss, const Interval *shift, const Interval *duration)
 Return a temporal sequence set shifted and/or scaled by the intervals. More...
 
TimestampTz tsequenceset_start_timestamp (const TSequenceSet *ss)
 Return the start timestamp of a temporal sequence set. More...
 
SpanSettsequenceset_time (const TSequenceSet *ss)
 Return the time frame a temporal sequence set as a period set. More...
 
bool tsequenceset_timestamp_n (const TSequenceSet *ss, int n, TimestampTz *result)
 Return the n-th distinct timestamp of a temporal sequence set. More...
 
TimestampTztsequenceset_timestamps (const TSequenceSet *ss, int *count)
 Return the array of distinct timestamps of a temporal sequence set. More...
 
char * tsequenceset_to_string (const TSequenceSet *ss, int maxdd, outfunc value_out)
 Return the Well-Known Text (WKT) representation of a temporal sequence set. More...
 
TSequencetsequenceset_to_tdiscseq (const TSequenceSet *ss)
 Return a temporal sequence set transformed into discrete interpolation. More...
 
TSequenceSettsequenceset_update (const TSequenceSet *ss1, const TSequenceSet *ss2)
 Update the first temporal value with the second one. More...
 
bool tsequenceset_value_at_timestamp (const TSequenceSet *ss, TimestampTz t, bool strict, Datum *result)
 Return the base value of a temporal sequence set at a timestamp. More...
 
Datumtsequenceset_values (const TSequenceSet *ss, int *count)
 Return the array of distinct base values of a temporal sequence set with step interpolation. More...
 
TSequenceSettstepseqset_to_linear (const TSequenceSet *ss)
 Return a temporal sequence set with continuous base type from step to linear interpolation. More...
 
TSequenceSetttextseqset_from_base (const text *txt, const TSequenceSet *ss)
 Construct a temporal text sequence set from a text and the time frame of another temporal sequence set. More...
 
TSequenceSetttextseqset_from_base_time (const text *txt, const SpanSet *ps)
 Construct a temporal text sequence set from a text and a period set. More...
 
TSequenceSetttextseqset_in (const char *str)
 Return a temporal sequence set text from its Well-Known Text (WKT) representation. More...