34#ifndef __MEOS_CATALOG_H__
35#define __MEOS_CATALOG_H__
void ensure_temptype_continuous(meosType temptype)
Ensure that the temporal type is continuous.
Definition: meos_catalog.c:734
bool tnumber_spansettype(meosType spansettype)
Return true if the type is a span set number type.
Definition: meos_catalog.c:849
meosType
Enumeration that defines the built-in and temporal types used in MobilityDB.
Definition: meos_catalog.h:53
@ T_FLOAT8
float8 type
Definition: meos_catalog.h:59
@ T_INTSPANSET
int4 span set type
Definition: meos_catalog.h:68
@ T_TNPOINT
temporal network point type
Definition: meos_catalog.h:99
@ T_INT4RANGE
PostgreSQL int4 range type.
Definition: meos_catalog.h:64
@ T_TSTZSPANSET
timestamptz span set type
Definition: meos_catalog.h:88
@ T_INTSET
int4 set type
Definition: meos_catalog.h:66
@ T_TDOUBLE3
temporal double3 type
Definition: meos_catalog.h:77
@ T_INTSPAN
int4 span type
Definition: meos_catalog.h:67
@ T_TDOUBLE4
temporal double4 type
Definition: meos_catalog.h:78
@ T_TSTZSET
timestamptz set type
Definition: meos_catalog.h:86
@ T_TBOX
temporal box type
Definition: meos_catalog.h:75
@ T_INT4MULTIRANGE
PostgreSQL int4 multirange type.
Definition: meos_catalog.h:65
@ T_DOUBLE4
double4 type
Definition: meos_catalog.h:58
@ T_GEOMSET
geometry set type
Definition: meos_catalog.h:91
@ T_TGEOMPOINT
temporal geometry point type
Definition: meos_catalog.h:94
@ T_TSTZSPAN
timestamptz span type
Definition: meos_catalog.h:87
@ T_STBOX
spatiotemporal box type
Definition: meos_catalog.h:73
@ T_BIGINTSPANSET
int8 span set type
Definition: meos_catalog.h:72
@ T_TFLOAT
temporal float type
Definition: meos_catalog.h:81
@ T_TDOUBLE2
temporal double2 type
Definition: meos_catalog.h:76
@ T_UNKNOWN
unknown type
Definition: meos_catalog.h:54
@ T_BOOL
boolean type
Definition: meos_catalog.h:55
@ T_GEOGRAPHY
geography type
Definition: meos_catalog.h:92
@ T_TIMESTAMPTZ
timestamp with time zone type
Definition: meos_catalog.h:82
@ T_TEXTSET
text type
Definition: meos_catalog.h:80
@ T_GEOMETRY
geometry type
Definition: meos_catalog.h:90
@ T_INT8
int8 type
Definition: meos_catalog.h:69
@ T_FLOATSET
float8 set type
Definition: meos_catalog.h:60
@ T_BIGINTSET
int8 set type
Definition: meos_catalog.h:70
@ T_TBOOL
temporal boolean type
Definition: meos_catalog.h:74
@ T_INT4
int4 type
Definition: meos_catalog.h:63
@ T_TSTZMULTIRANGE
PostgreSQL timestamp with time zone multirange type.
Definition: meos_catalog.h:84
@ T_FLOATSPANSET
float8 span set type
Definition: meos_catalog.h:62
@ T_DOUBLE2
double2 type
Definition: meos_catalog.h:56
@ T_DOUBLE3
double3 type
Definition: meos_catalog.h:57
@ T_FLOATSPAN
float8 span type
Definition: meos_catalog.h:61
@ T_TINT
temporal integer type
Definition: meos_catalog.h:83
@ T_TTEXT
temporal text type
Definition: meos_catalog.h:89
@ T_GEOGSET
geography set type
Definition: meos_catalog.h:93
@ T_NSEGMENT
network segment type
Definition: meos_catalog.h:98
@ T_TEXT
text type
Definition: meos_catalog.h:79
@ T_NPOINT
network point type
Definition: meos_catalog.h:96
@ T_TGEOGPOINT
temporal geography point type
Definition: meos_catalog.h:95
@ T_BIGINTSPAN
int8 span type
Definition: meos_catalog.h:71
@ T_TSTZRANGE
PostgreSQL timestamp with time zone range type.
Definition: meos_catalog.h:85
@ T_NPOINTSET
network point set type
Definition: meos_catalog.h:97
meosType settype_basetype(meosType settype)
Return the base type from a set type.
Definition: meos_catalog.c:202
bool numspanset_type(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:647
void ensure_basetype(meosType basetype)
Ensure that a type is a base type of one of the template types, that is, Set, Span,...
Definition: meos_catalog.c:239
void ensure_tnumber_spantype(meosType spantype)
Ensure that the type is a span type.
Definition: meos_catalog.c:838
bool talpha_type(meosType temptype)
Return true if the type is a temporal alpha type (i.e., those whose bounding box is a period)
Definition: meos_catalog.c:746
signed short int16
Functions for building a cache of temporal types and operators.
Definition: meos_catalog.h:41
void ensure_temporal_type(meosType temptype)
Ensure that a type is a temporal type.
Definition: meos_catalog.c:689
meosType basetype_settype(meosType basetype)
Return the base type from the set type.
Definition: meos_catalog.c:218
bool spatial_basetype(meosType basetype)
Return true if the type is a spatial base type.
Definition: meos_catalog.c:351
void ensure_span_type(meosType type)
Ensure that the type is a span type.
Definition: meos_catalog.c:553
bool timespanset_type(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:659
bool tnumber_spantype(meosType settype)
Return true if the type is a span number type.
Definition: meos_catalog.c:827
void ensure_tnumber_settype(meosType settype)
bool span_basetype(meosType type)
Return true if the type is a set base type.
Definition: meos_catalog.c:507
bool timespan_type(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:597
void ensure_set_basetype(meosType basetype)
Ensure that the type is a set base type.
Definition: meos_catalog.c:402
void ensure_tgeo_type(meosType basetype)
Ensure that the type is a point base type.
Definition: meos_catalog.c:917
bool geoset_type(meosType type)
Return true if the type is a geo set type.
Definition: meos_catalog.c:483
bool tnumber_settype(meosType settype)
void ensure_temporal_basetype(meosType basetype)
Ensure that a type is a temporal base type.
Definition: meos_catalog.c:700
bool timespan_basetype(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:586
bool temptype_continuous(meosType temptype)
Return true if the type is a temporal continuous type.
Definition: meos_catalog.c:718
bool spatialset_type(meosType type)
Return true if the type is a geo set type.
Definition: meos_catalog.c:494
bool set_type(meosType type)
Return true if the type is a set type.
Definition: meos_catalog.c:413
meosType temptype_basetype(meosType temptype)
Return the base type from the temporal type.
Definition: meos_catalog.c:122
meosType spansettype_spantype(meosType spansettype)
Return the span type from the span set type.
Definition: meos_catalog.c:154
bool tspatial_basetype(meosType basetype)
Return true if the type is a base type of a spatiotemporal type.
Definition: meos_catalog.c:891
bool tgeo_type(meosType basetype)
Return true if the type is a temporal point type.
Definition: meos_catalog.c:906
void ensure_tnumber_type(meosType temptype)
Return true if the type is a number base type.
Definition: meos_catalog.c:768
bool tnumber_type(meosType temptype)
Return true if the type is a temporal number type.
Definition: meos_catalog.c:757
bool alphanumset_type(meosType settype)
Return true if the type is a set type.
Definition: meos_catalog.c:471
bool numspan_basetype(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:564
bool tspatial_type(meosType temptype)
Return true if the type is a spatiotemporal type.
Definition: meos_catalog.c:874
void ensure_time_type(meosType timetype)
Ensure that the type corresponds to a time type.
Definition: meos_catalog.c:376
meosType basetype_spantype(meosType basetype)
Return the base type from the span type.
Definition: meos_catalog.c:170
bool tnumber_basetype(meosType basetype)
Return true if the type is a temporal number base type.
Definition: meos_catalog.c:779
void ensure_tnumber_basetype(meosType basetype)
Return true if the type is a number base type.
Definition: meos_catalog.c:790
bool basetype_varlength(meosType type)
Return true if the values of the base type are of variable length.
Definition: meos_catalog.c:268
bool span_type(meosType type)
Return true if the type is a span type.
Definition: meos_catalog.c:541
void ensure_span_basetype(meosType type)
Ensure that the type is a span base type.
Definition: meos_catalog.c:519
meosOper
Enumeration that defines the classes of Boolean operators used in MobilityDB.
Definition: meos_catalog.h:107
@ UNKNOWN_OP
Definition: meos_catalog.h:108
@ FRONT_OP
Front <</ operator.
Definition: meos_catalog.h:131
@ EVEREQ_OP
Evereq ?= operator.
Definition: meos_catalog.h:139
@ OVERRIGHT_OP
Overright &> operator.
Definition: meos_catalog.h:126
@ NE_OP
Distinct != operator.
Definition: meos_catalog.h:110
@ GE_OP
Greater than or equal to >= operator.
Definition: meos_catalog.h:114
@ EQ_OP
Equality = operator.
Definition: meos_catalog.h:109
@ RIGHT_OP
Right >> operator.
Definition: meos_catalog.h:125
@ ALWAYSLT_OP
Alwayslt %< operator.
Definition: meos_catalog.h:147
@ ALWAYSGT_OP
Alwaysgt %> operator.
Definition: meos_catalog.h:149
@ ABOVE_OP
Above |>> operator.
Definition: meos_catalog.h:129
@ LT_OP
Less than < operator.
Definition: meos_catalog.h:111
@ BACK_OP
Back />> operator.
Definition: meos_catalog.h:133
@ ALWAYSLE_OP
Alwaysle %<= operator.
Definition: meos_catalog.h:148
@ OVERFRONT_OP
Overfront &</ operator.
Definition: meos_catalog.h:132
@ MINUS_OP
Minus - operator.
Definition: meos_catalog.h:117
@ ALWAYSEQ_OP
Alwayseq %= operator.
Definition: meos_catalog.h:145
@ OVERABOVE_OP
Overbove |&> operator.
Definition: meos_catalog.h:130
@ OVERLEFT_OP
Overleft &< operator.
Definition: meos_catalog.h:124
@ UNION_OP
Union + operator.
Definition: meos_catalog.h:116
@ AFTER_OP
After #>> operator.
Definition: meos_catalog.h:137
@ EVERGT_OP
Evergt ?> operator.
Definition: meos_catalog.h:143
@ BEFORE_OP
Before <<# operator.
Definition: meos_catalog.h:135
@ ADJACENT_OP
Adjacent -|- operator.
Definition: meos_catalog.h:115
@ CONTAINS_OP
Contains @> operator.
Definition: meos_catalog.h:120
@ OVERAFTER_OP
Overafter #&> operator.
Definition: meos_catalog.h:138
@ OVERBEFORE_OP
Overbefore &<# operator.
Definition: meos_catalog.h:136
@ LE_OP
Less than or equal to <= operator.
Definition: meos_catalog.h:112
@ CONTAINED_OP
Contained <@ operator.
Definition: meos_catalog.h:121
@ INTERSECT_OP
Intersection * operator.
Definition: meos_catalog.h:118
@ BELOW_OP
Below <<| operator.
Definition: meos_catalog.h:127
@ EVERLT_OP
Everlt ?< operator.
Definition: meos_catalog.h:141
@ EVERGE_OP
Everge ?>= operator.
Definition: meos_catalog.h:144
@ ALWAYSGE_OP
Alwaysge %>= operator.
Definition: meos_catalog.h:150
@ LEFT_OP
Left << operator.
Definition: meos_catalog.h:123
@ SAME_OP
Same ~= operator.
Definition: meos_catalog.h:122
@ EVERLE_OP
Everle ?<= operator.
Definition: meos_catalog.h:142
@ OVERBACK_OP
Overback /&> operator.
Definition: meos_catalog.h:134
@ GT_OP
Greater than < operator.
Definition: meos_catalog.h:113
@ ALWAYSNE_OP
Alwaysne %<> operator.
Definition: meos_catalog.h:146
@ OVERBELOW_OP
Overbelow &<| operator.
Definition: meos_catalog.h:128
@ EVERNE_OP
Everne ?<> operator.
Definition: meos_catalog.h:140
@ OVERLAPS_OP
Overlaps && operator.
Definition: meos_catalog.h:119
void ensure_tnumber_spansettype(meosType spansettype)
Ensure that the type is a span type.
Definition: meos_catalog.c:860
bool geo_basetype(meosType basetype)
Return true if the type is a geo base type.
Definition: meos_catalog.c:340
bool alpha_basetype(meosType basetype)
bool number_basetype(meosType basetype)
bool span_canon_basetype(meosType type)
Return true if the type is a canonical base type of a span type.
Definition: meos_catalog.c:530
bool basetype_byvalue(meosType type)
Return true if the values of the base type are passed by value.
Definition: meos_catalog.c:255
meosType spantype_spansettype(meosType spantype)
Return the span type from the span set type.
Definition: meos_catalog.c:186
bool alphanum_basetype(meosType basetype)
Return true if the type is an alphanumeric base type.
Definition: meos_catalog.c:328
bool timeset_type(meosType type)
Return true if the type is a time set type.
Definition: meos_catalog.c:448
bool time_type(meosType timetype)
Return true if the type is a time type.
Definition: meos_catalog.c:364
bool numset_type(meosType type)
Return true if the type is a number set type.
Definition: meos_catalog.c:437
bool set_basetype(meosType basetype)
Return true if the type is a base type of a set type.
Definition: meos_catalog.c:389
bool set_span_type(meosType type)
Return true if the type is a set type with a span as a bounding box.
Definition: meos_catalog.c:459
bool numspan_type(meosType type)
Return true if the type is a numeric span type.
Definition: meos_catalog.c:575
int16 basetype_length(meosType basetype)
Return the length of a base type.
Definition: meos_catalog.c:280
bool temporal_type(meosType temptype)
Return true if the type is an EXTERNAL temporal type.
Definition: meos_catalog.c:673
void ensure_set_type(meosType type)
Ensure that the type is a set type.
Definition: meos_catalog.c:426
meosType spantype_basetype(meosType spantype)
Return the base type from the span type.
Definition: meos_catalog.c:138
bool spanset_type(meosType type)
Return true if the type is a span set type.
Definition: meos_catalog.c:635
meosType settype
Enum value of the set type.
Definition: meos_catalog.h:167
meosType basetype
Enum value of the base type.
Definition: meos_catalog.h:168
Structure to represent the span type cache array.
Definition: meos_catalog.h:166
meosType spantype
Enum value of the base type.
Definition: meos_catalog.h:186
meosType spansettype
Enum value of the span type.
Definition: meos_catalog.h:185
Structure to represent the spanset type cache array.
Definition: meos_catalog.h:184
meosType basetype
Enum value of the base type.
Definition: meos_catalog.h:177
meosType spantype
Enum value of the span type.
Definition: meos_catalog.h:176
Structure to represent the span type cache array.
Definition: meos_catalog.h:175
meosType temptype
Enum value of the temporal type.
Definition: meos_catalog.h:158
meosType basetype
Enum value of the base type.
Definition: meos_catalog.h:159
Structure to represent the temporal type cache array.
Definition: meos_catalog.h:157