MobilityDB 1.1
Functions
type_util.c File Reference
#include "general/type_util.h"
#include <assert.h>
#include <postgres.h>
#include <utils/float.h>
#include <utils/timestamp.h>
#include <meos.h>
#include <meos_internal.h>
#include "general/temporal.h"
#include "general/pg_types.h"
#include "general/doublen.h"
#include "general/type_parser.h"
#include "point/pgis_call.h"
#include "point/tpoint_spatialfuncs.h"
Include dependency graph for type_util.c:

Functions

Datum basetype_in (const char *str, meosType basetype, bool end)
 Call input function of the base type. More...
 
char * basetype_out (Datum value, meosType basetype, int maxdd)
 Call output function of the base type. More...
 
byteabstring2bytea (const uint8_t *wkb, size_t size)
 Convert a C binary string into a bytea. More...
 
textcstring2text (const char *cstring)
 Convert a C string into a text value. More...
 
Datum datum2_eq2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the values are equal. More...
 
Datum datum2_ge2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the first value is greater than or equal to the second one. More...
 
Datum datum2_gt2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the first value is greater than the second one. More...
 
Datum datum2_le2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the first value is less than or equal to the second one. More...
 
Datum datum2_lt2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the first value is less than the second one. More...
 
Datum datum2_ne2 (Datum l, Datum r, meosType typel, meosType typer)
 Return a Datum true if the values are different. More...
 
Datum datum_add (Datum l, Datum r, meosType typel, meosType typer)
 Return the addition of the two numbers. More...
 
int datum_cmp (Datum l, Datum r, meosType type)
 Return true if the first value is less than the second one. More...
 
int datum_cmp2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the first value is less than the second one. More...
 
Datum datum_copy (Datum value, meosType basetype)
 Copy a Datum if it is passed by reference. More...
 
Datum datum_div (Datum l, Datum r, meosType typel, meosType typer)
 Return the division of the two numbers. More...
 
double datum_double (Datum d, meosType basetype)
 Convert a number to a double. More...
 
bool datum_eq (Datum l, Datum r, meosType type)
 Return true if the values are equal. More...
 
bool datum_eq2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the values are equal even if their type is not the same. More...
 
bool datum_ge (Datum l, Datum r, meosType type)
 Return true if the first value is greater than or equal to the second one. More...
 
bool datum_ge2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the first value is greater than or equal to the second one. More...
 
bool datum_gt (Datum l, Datum r, meosType type)
 Return true if the first value is greater than the second one. More...
 
bool datum_gt2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the first value is greater than the second one. More...
 
uint32 datum_hash (Datum d, meosType type)
 Return the 32-bit hash of a value. More...
 
uint64 datum_hash_extended (Datum d, meosType type, uint64 seed)
 Return the 64-bit hash of a value using a seed. More...
 
bool datum_le (Datum l, Datum r, meosType type)
 Return true if the first value is less than or equal to the second one. More...
 
bool datum_le2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the first value is less than or equal to the second one. More...
 
bool datum_lt (Datum l, Datum r, meosType type)
 Return true if the first value is less than the second one. More...
 
bool datum_lt2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the first value is less than the second one. More...
 
Datum datum_mult (Datum l, Datum r, meosType typel, meosType typer)
 Return the multiplication of the two numbers. More...
 
bool datum_ne (Datum l, Datum r, meosType type)
 Return true if the values are different. More...
 
bool datum_ne2 (Datum l, Datum r, meosType typel, meosType typer)
 Return true if the values are different. More...
 
static int datum_sort_cmp (const Datum *l, const Datum *r, const meosType *type)
 Comparator function for datums. More...
 
Datum datum_sub (Datum l, Datum r, meosType typel, meosType typer)
 Return the subtraction of the two numbers. More...
 
int datumarr_remove_duplicates (Datum *values, int count, meosType type)
 Remove duplicates from an array of datums. More...
 
void datumarr_sort (Datum *values, int count, meosType type)
 Sort function for datums. More...
 
Datum double_datum (double d, meosType basetype)
 Convert a double to a datum. More...
 
size_t double_pad (size_t size)
 Align to double. More...
 
double hypot3d (double x, double y, double z)
 Determine the 3D hypotenuse. More...
 
void pfree_array (void **array, int count)
 Free a C array of pointers. More...
 
void pfree_datumarr (Datum *array, int count)
 Free a C array of Datum pointers. More...
 
static int span_sort_cmp (const Span **l, const Span **r)
 Comparator function for spans. More...
 
void spanarr_sort (Span **spans, int count)
 Sort function for spans. More...
 
char * stringarr_to_string (char **strings, int count, int outlen, char *prefix, char open, char close, bool quotes, bool spaces)
 Return the string resulting from assembling the array of strings. More...
 
char * text2cstring (const text *textptr)
 Convert a text value into a C string. More...
 
int text_cmp (text *arg1, text *arg2, Oid collid)
 Comparison function for text values. More...
 
static int timestamp_sort_cmp (const TimestampTz *l, const TimestampTz *r)
 Comparator function for timestamps. More...
 
int timestamparr_remove_duplicates (TimestampTz *values, int count)
 Remove duplicates from an array of timestamps. More...
 
void timestamparr_sort (TimestampTz *times, int count)
 Sort function for timestamps. More...
 
int tinstarr_remove_duplicates (const TInstant **instants, int count)
 Remove duplicates from an array of temporal instants. More...
 
void tinstarr_sort (TInstant **instants, int count)
 Sort function for temporal instants. More...
 
static int tinstarr_sort_cmp (const TInstant **l, const TInstant **r)
 Comparator function for temporal instants. More...
 
void tseqarr_sort (TSequence **sequences, int count)
 Sort function for temporal sequences. More...
 
static int tseqarr_sort_cmp (TSequence **l, TSequence **r)
 Comparator function for temporal sequences. More...
 
int varstr_cmp (const char *arg1, int len1, const char *arg2, int len2, Oid collid)
 General utility functions for temporal types. More...