|
MobilityDB
1.0
|
Basic functions for temporal sequence sets. More...
#include "general/tsequenceset.h"#include <assert.h>#include <libpq/pqformat.h>#include <utils/lsyscache.h>#include <utils/builtins.h>#include <utils/timestamp.h>#include "general/timestampset.h"#include "general/period.h"#include "general/periodset.h"#include "general/timeops.h"#include "general/temporaltypes.h"#include "general/temporal_util.h"#include "general/tempcache.h"#include "general/temporal_boxops.h"#include "general/rangetypes_ext.h"#include "point/tpoint.h"#include "point/tpoint_spatialfuncs.h"
Functions | |
| const TSequence * | tsequenceset_seq_n (const TSequenceSet *ts, int index) |
| Returns the n-th sequence of the temporal value. More... | |
| void * | tsequenceset_bbox_ptr (const TSequenceSet *ts) |
| Returns a pointer to the precomputed bounding box of the temporal value. More... | |
| void | tsequenceset_bbox (void *box, const TSequenceSet *ts) |
| Copy in the first argument the bounding box of the temporal value. More... | |
| TSequenceSet * | tsequenceset_make (const TSequence **sequences, int count, bool normalize) |
| Construct a temporal sequence set value from the array of temporal sequence values. More... | |
| TSequenceSet * | tsequenceset_make_free (TSequence **sequences, int count, bool normalize) |
| Construct a temporal sequence set value from the array of temporal sequence values and free the array and the sequences after the creation. More... | |
| TSequenceSet * | tsequence_to_tsequenceset (const TSequence *seq) |
| Construct a temporal sequence set value from the temporal sequence. More... | |
| TSequenceSet * | tsequenceset_from_base_internal (Datum value, Oid basetypid, const PeriodSet *ps, bool linear) |
| Construct a temporal sequence set value from from a base value and a timestamp set (internal function) $. More... | |
| PGDLLEXPORT Datum | tsequenceset_from_base (PG_FUNCTION_ARGS) |
| Construct a temporal sequence set value from from a base value and a timestamp set. More... | |
| TSequenceSet * | tsequenceset_append_tinstant (const TSequenceSet *ts, const TInstant *inst) |
| Append an instant to the temporal value. More... | |
| TSequenceSet * | tsequenceset_merge (const TSequenceSet *ts1, const TSequenceSet *ts2) |
| Merge the two temporal values. More... | |
| TSequenceSet * | tsequenceset_merge_array (const TSequenceSet **seqsets, int count) |
| Merge the array of temporal sequence set values. More... | |
| TSequenceSet * | tsequenceset_copy (const TSequenceSet *ts) |
| Returns a copy of the temporal value. More... | |
| bool | tsequenceset_find_timestamp (const TSequenceSet *ts, TimestampTz t, int *loc) |
| Returns the location of the timestamp in the temporal sequence set value using binary search. More... | |
| bool | intersection_tsequenceset_tinstant (const TSequenceSet *ts, const TInstant *inst, TInstant **inter1, TInstant **inter2) |
| Temporally intersect the two temporal values. More... | |
| bool | intersection_tinstant_tsequenceset (const TInstant *inst, const TSequenceSet *ts, TInstant **inter1, TInstant **inter2) |
| Temporally intersect the two temporal values. More... | |
| bool | intersection_tsequenceset_tinstantset (const TSequenceSet *ts, const TInstantSet *ti, TInstantSet **inter1, TInstantSet **inter2) |
| Temporally intersect the two temporal values. More... | |
| bool | intersection_tinstantset_tsequenceset (const TInstantSet *ti, const TSequenceSet *ts, TInstantSet **inter1, TInstantSet **inter2) |
| Temporally intersect the two temporal values. More... | |
| bool | synchronize_tsequenceset_tsequence (const TSequenceSet *ts, const TSequence *seq, TIntersection mode, TSequenceSet **inter1, TSequenceSet **inter2) |
| Temporally intersect or synchronize the two temporal values. More... | |
| bool | intersection_tsequence_tsequenceset (const TSequence *seq, const TSequenceSet *ts, TIntersection mode, TSequenceSet **inter1, TSequenceSet **inter2) |
| Temporally intersect or synchronize the two temporal values. More... | |
| bool | synchronize_tsequenceset_tsequenceset (const TSequenceSet *ts1, const TSequenceSet *ts2, TIntersection mode, TSequenceSet **inter1, TSequenceSet **inter2) |
| Temporally intersect or synchronize the two temporal values. More... | |
| char * | tsequenceset_to_string (const TSequenceSet *ts, char *(*value_out)(Oid, Datum)) |
| Returns the string representation of the temporal value. More... | |
| void | tsequenceset_write (const TSequenceSet *ts, StringInfo buf) |
| Write the binary representation of the temporal value into the buffer. More... | |
| TSequenceSet * | tsequenceset_read (StringInfo buf, Oid basetypid) |
| Returns a new temporal value from its binary representation read from the buffer. More... | |
| TSequenceSet * | tintseqset_to_tfloatseqset (const TSequenceSet *ts) |
| Cast the temporal integer value as a temporal float value. More... | |
| TSequenceSet * | tfloatseqset_to_tintseqset (const TSequenceSet *ts) |
| Cast the temporal float value as a temporal integer value. More... | |
| TSequenceSet * | tinstant_to_tsequenceset (const TInstant *inst, bool linear) |
| Transform the temporal instant value into a temporal sequence set value. More... | |
| TSequenceSet * | tinstantset_to_tsequenceset (const TInstantSet *ti, bool linear) |
| Transform the temporal instant set value into a temporal sequence set value. More... | |
| TSequenceSet * | tstepseqset_to_linear (const TSequenceSet *ts) |
| Transform the temporal value with continuous base type from stepwise to linear interpolation. More... | |
| int | tsequenceset_values (Datum *result, const TSequenceSet *ts) |
| Returns the distinct base values of the temporal value with stepwise interpolation. More... | |
| ArrayType * | tsequenceset_values_array (const TSequenceSet *ts) |
| Returns the distinct base values of the temporal value with stepwise interpolation as a PostgreSQL array. More... | |
| RangeType * | tfloatseqset_to_range (const TSequenceSet *ts) |
| Cast a temporal float value as a floatrange. More... | |
| ArrayType * | tfloatseqset_ranges (const TSequenceSet *ts) |
| Returns the ranges of base values of the temporal float value as a PostgreSQL array. More... | |
| const TInstant * | tsequenceset_min_instant (const TSequenceSet *ts) |
| Returns a pointer to the instant with minimum base value of the temporal value. More... | |
| Datum | tsequenceset_min_value (const TSequenceSet *ts) |
| Returns the minimum base value of the temporal value. More... | |
| Datum | tsequenceset_max_value (const TSequenceSet *ts) |
| Returns the maximum base value of the temporal value. More... | |
| PeriodSet * | tsequenceset_get_time (const TSequenceSet *ts) |
| Returns the time on which the temporal value is defined as a period set. More... | |
| Datum | tsequenceset_timespan (const TSequenceSet *ts) |
| Returns the timespan of the temporal value. More... | |
| Datum | tsequenceset_duration (const TSequenceSet *ts) |
| Returns the duration of the temporal value. More... | |
| double | tsequenceset_interval_double (const TSequenceSet *ts) |
| Returns the duration of the temporal value as a double. More... | |
| void | tsequenceset_period (Period *p, const TSequenceSet *ts) |
| Returns the bounding period on which the temporal value is defined. More... | |
| const TSequence ** | tsequenceset_sequences (const TSequenceSet *ts) |
| Returns the sequences of the temporal value as a C array. More... | |
| ArrayType * | tsequenceset_sequences_array (const TSequenceSet *ts) |
| Returns the sequences of the temporal value as a PostgreSQL array. More... | |
| static int | tsequenceset_segments (TSequence **result, const TSequenceSet *ts) |
| Returns the segments of the temporal value as a C array. More... | |
| ArrayType * | tsequenceset_segments_array (const TSequenceSet *ts) |
| Returns the segments of the temporal value as a PostgreSQL array. More... | |
| int | tsequenceset_num_instants (const TSequenceSet *ts) |
| Returns the number of distinct instants of the temporal value. More... | |
| const TInstant * | tsequenceset_inst_n (const TSequenceSet *ts, int n) |
| Returns the n-th distinct instant of the temporal value. More... | |
| const TInstant ** | tsequenceset_instants (const TSequenceSet *ts, int *count) |
| Returns the distinct instants of the temporal value. More... | |
| ArrayType * | tsequenceset_instants_array (const TSequenceSet *ts) |
| Returns the distinct instants of the temporal value. More... | |
| TimestampTz | tsequenceset_start_timestamp (const TSequenceSet *ts) |
| Returns the start timestamp of the temporal value. More... | |
| TimestampTz | tsequenceset_end_timestamp (const TSequenceSet *ts) |
| Returns the end timestamp of the temporal value. More... | |
| int | tsequenceset_num_timestamps (const TSequenceSet *ts) |
| Returns the number of distinct timestamps of the temporal value. More... | |
| bool | tsequenceset_timestamp_n (const TSequenceSet *ts, int n, TimestampTz *result) |
| Returns the n-th distinct timestamp of the temporal value. More... | |
| int | tsequenceset_timestamps1 (TimestampTz *result, const TSequenceSet *ts) |
| Returns the distinct timestamps of the temporal value. More... | |
| ArrayType * | tsequenceset_timestamps (const TSequenceSet *ts) |
| Returns the distinct timestamps of the temporal value as a PostgreSQL array. More... | |
| TSequenceSet * | tsequenceset_shift_tscale (const TSequenceSet *ts, const Interval *start, const Interval *duration) |
| Shift and/or scale the time span of the temporal value by the two intervals. More... | |
| bool | tsequenceset_ever_eq (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is ever equal to the base value. More... | |
| bool | tsequenceset_always_eq (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is always equal to the base value. More... | |
| bool | tsequenceset_ever_lt (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is ever less than the base value. More... | |
| bool | tsequenceset_ever_le (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is ever less than or equal to the base value. More... | |
| bool | tsequenceset_always_lt (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is always less than the base value. More... | |
| bool | tsequenceset_always_le (const TSequenceSet *ts, Datum value) |
| Returns true if the temporal value is always less than or equal to the base value. More... | |
| TSequenceSet * | tsequenceset_restrict_value (const TSequenceSet *ts, Datum value, bool atfunc) |
| Restricts the temporal value to the base value. More... | |
| TSequenceSet * | tsequenceset_restrict_values (const TSequenceSet *ts, const Datum *values, int count, bool atfunc) |
| Restricts the temporal value to the (complement of the) array of base values. More... | |
| TSequenceSet * | tnumberseqset_restrict_range (const TSequenceSet *ts, const RangeType *range, bool atfunc) |
| Restricts the temporal number to the range of base values. More... | |
| TSequenceSet * | tnumberseqset_restrict_ranges (const TSequenceSet *ts, RangeType **normranges, int count, bool atfunc) |
| Restricts the temporal number to the (complement of the) array of ranges of base values. More... | |
| TSequenceSet * | tsequenceset_restrict_minmax (const TSequenceSet *ts, bool min, bool atfunc) |
| Restricts the temporal value to (the complement of) the minimum/maximum base value. More... | |
| Temporal * | tsequenceset_restrict_timestamp (const TSequenceSet *ts, TimestampTz t, bool atfunc) |
| Restricts the temporal value to the (the complement of) timestamp. More... | |
| bool | tsequenceset_value_at_timestamp (const TSequenceSet *ts, TimestampTz t, Datum *result) |
| Returns the base value of the temporal value at the timestamp. More... | |
| bool | tsequenceset_value_at_timestamp_inc (const TSequenceSet *ts, TimestampTz t, Datum *result) |
| Returns the base value of the temporal value at the timestamp when the timestamp may be at an exclusive bound. More... | |
| const TInstant * | tsequenceset_inst_at_timestamp_excl (const TSequenceSet *ts, TimestampTz t) |
| Returns the temporal instant at the timestamp when the timestamp is at an exclusive bound. More... | |
| Temporal * | tsequenceset_restrict_timestampset (const TSequenceSet *ts1, const TimestampSet *ts2, bool atfunc) |
| Restricts the temporal value to the (complement of the) timestamp set. More... | |
| TSequenceSet * | tsequenceset_restrict_period (const TSequenceSet *ts, const Period *p, bool atfunc) |
| Restricts the temporal value to the (complement of the) period. More... | |
| TSequenceSet * | tsequenceset_restrict_periodset (const TSequenceSet *ts, const PeriodSet *ps, bool atfunc) |
| Restricts the temporal value to the (complement of the) period set. More... | |
| bool | tsequenceset_intersects_timestamp (const TSequenceSet *ts, TimestampTz t) |
| Returns true if the temporal value intersect the timestamp. More... | |
| bool | tsequenceset_intersects_timestampset (const TSequenceSet *ts, const TimestampSet *ts1) |
| Returns true if the temporal value intersect the timestamp set. More... | |
| bool | tsequenceset_intersects_period (const TSequenceSet *ts, const Period *p) |
| Returns true if the temporal value intersect the period. More... | |
| bool | tsequenceset_intersects_periodset (const TSequenceSet *ts, const PeriodSet *ps) |
| Returns true if the temporal value intersect the period set. More... | |
| double | tnumberseqset_integral (const TSequenceSet *ts) |
| Returns the integral (area under the curve) of the temporal number. More... | |
| double | tnumberseqset_twavg (const TSequenceSet *ts) |
| Returns the time-weighted average of the temporal number. More... | |
| bool | tsequenceset_eq (const TSequenceSet *ts1, const TSequenceSet *ts2) |
| Returns true if the two temporal sequence set values are equal. More... | |
| int | tsequenceset_cmp (const TSequenceSet *ts1, const TSequenceSet *ts2) |
| Returns -1, 0, or 1 depending on whether the first temporal value is less than, equal, or greater than the second one. More... | |
| uint32 | tsequenceset_hash (const TSequenceSet *ts) |
| Returns the hash value of the temporal value. More... | |
Basic functions for temporal sequence sets.
1.8.13