MobilityDB  1.0
temporal_posops.h
Go to the documentation of this file.
1 /*****************************************************************************
2  *
3  * This MobilityDB code is provided under The PostgreSQL License.
4  *
5  * Copyright (c) 2016-2021, Université libre de Bruxelles and MobilityDB
6  * contributors
7  *
8  * MobilityDB includes portions of PostGIS version 3 source code released
9  * under the GNU General Public License (GPLv2 or later).
10  * Copyright (c) 2001-2021, PostGIS contributors
11  *
12  * Permission to use, copy, modify, and distribute this software and its
13  * documentation for any purpose, without fee, and without a written
14  * agreement is hereby granted, provided that the above copyright notice and
15  * this paragraph and the following two paragraphs appear in all copies.
16  *
17  * IN NO EVENT SHALL UNIVERSITE LIBRE DE BRUXELLES BE LIABLE TO ANY PARTY FOR
18  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
19  * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
20  * EVEN IF UNIVERSITE LIBRE DE BRUXELLES HAS BEEN ADVISED OF THE POSSIBILITY
21  * OF SUCH DAMAGE.
22  *
23  * UNIVERSITE LIBRE DE BRUXELLES SPECIFICALLY DISCLAIMS ANY WARRANTIES,
24  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
25  * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON
26  * AN "AS IS" BASIS, AND UNIVERSITE LIBRE DE BRUXELLES HAS NO OBLIGATIONS TO
27  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 
28  *
29  *****************************************************************************/
30 
36 #ifndef __TEMPORAL_POSOPS_H__
37 #define __TEMPORAL_POSOPS_H__
38 
39 #include <postgres.h>
40 #include <catalog/pg_type.h>
41 
42 #include "temporal.h"
43 
44 /*****************************************************************************/
45 
46 extern Datum before_period_temporal(PG_FUNCTION_ARGS);
47 extern Datum overbefore_period_temporal(PG_FUNCTION_ARGS);
48 extern Datum after_period_temporal(PG_FUNCTION_ARGS);
49 extern Datum overafter_period_temporal(PG_FUNCTION_ARGS);
50 
51 extern Datum before_temporal_period(PG_FUNCTION_ARGS);
52 extern Datum overbefore_temporal_period(PG_FUNCTION_ARGS);
53 extern Datum after_temporal_period(PG_FUNCTION_ARGS);
54 extern Datum overafter_temporal_period(PG_FUNCTION_ARGS);
55 
56 extern Datum before_temporal_temporal(PG_FUNCTION_ARGS);
57 extern Datum overbefore_temporal_temporal(PG_FUNCTION_ARGS);
58 extern Datum after_temporal_temporal(PG_FUNCTION_ARGS);
59 extern Datum overafter_temporal_temporal(PG_FUNCTION_ARGS);
60 
61 /*****************************************************************************/
62 
63 extern Datum left_range_tnumber(PG_FUNCTION_ARGS);
64 extern Datum overleft_range_tnumber(PG_FUNCTION_ARGS);
65 extern Datum right_range_tnumber(PG_FUNCTION_ARGS);
66 extern Datum overright_range_tnumber(PG_FUNCTION_ARGS);
67 
68 extern Datum left_tnumber_range(PG_FUNCTION_ARGS);
69 extern Datum overleft_tnumber_range(PG_FUNCTION_ARGS);
70 extern Datum overright_tnumber_range(PG_FUNCTION_ARGS);
71 extern Datum right_tnumber_range(PG_FUNCTION_ARGS);
72 
73 extern Datum left_tbox_tnumber(PG_FUNCTION_ARGS);
74 extern Datum overleft_tbox_tnumber(PG_FUNCTION_ARGS);
75 extern Datum right_tbox_tnumber(PG_FUNCTION_ARGS);
76 extern Datum overright_tbox_tnumber(PG_FUNCTION_ARGS);
77 extern Datum before_tbox_tnumber(PG_FUNCTION_ARGS);
78 extern Datum overbefore_tbox_tnumber(PG_FUNCTION_ARGS);
79 extern Datum after_tbox_tnumber(PG_FUNCTION_ARGS);
80 extern Datum overafter_tbox_tnumber(PG_FUNCTION_ARGS);
81 
82 extern Datum left_tnumber_tbox(PG_FUNCTION_ARGS);
83 extern Datum overleft_tnumber_tbox(PG_FUNCTION_ARGS);
84 extern Datum right_tnumber_tbox(PG_FUNCTION_ARGS);
85 extern Datum overright_tnumber_tbox(PG_FUNCTION_ARGS);
86 extern Datum before_tnumber_tbox(PG_FUNCTION_ARGS);
87 extern Datum overbefore_tnumber_tbox(PG_FUNCTION_ARGS);
88 extern Datum after_tnumber_tbox(PG_FUNCTION_ARGS);
89 extern Datum overafter_tnumber_tbox(PG_FUNCTION_ARGS);
90 
91 extern Datum left_tnumber_tnumber(PG_FUNCTION_ARGS);
92 extern Datum overleft_tnumber_tnumber(PG_FUNCTION_ARGS);
93 extern Datum right_tnumber_tnumber(PG_FUNCTION_ARGS);
94 extern Datum overright_tnumber_tnumber(PG_FUNCTION_ARGS);
95 extern Datum before_tnumber_tnumber(PG_FUNCTION_ARGS);
96 extern Datum overbefore_tnumber_tnumber(PG_FUNCTION_ARGS);
97 extern Datum after_tnumber_tnumber(PG_FUNCTION_ARGS);
98 extern Datum overafter_tnumber_tnumber(PG_FUNCTION_ARGS);
99 
100 /*****************************************************************************/
101 
102 #endif
Datum right_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is strictly to the right of the temporal number.
Definition: temporal_posops.c:302
Datum overbefore_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is not after the temporal number.
Definition: temporal_posops.c:335
Datum left_tnumber_range(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly to the left of the number range value.
Definition: temporal_posops.c:233
Datum before_temporal_period(PG_FUNCTION_ARGS)
Returns true if the temporal value is strictly before the period value.
Definition: temporal_posops.c:99
Datum overbefore_temporal_temporal(PG_FUNCTION_ARGS)
Returns true if the first temporal value is not after the second one.
Definition: temporal_posops.c:152
Datum overbefore_temporal_period(PG_FUNCTION_ARGS)
Returns true if the temporal value is not after the period value.
Definition: temporal_posops.c:109
Datum overleft_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is not to the right of the second one.
Definition: temporal_posops.c:473
Datum overafter_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is not before the temporal box value.
Definition: temporal_posops.c:448
Datum right_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is strictly to the right of the second one.
Definition: temporal_posops.c:484
Datum left_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is strictly to the left of the temporal number.
Definition: temporal_posops.c:280
Datum overbefore_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is not after the temporal box value.
Definition: temporal_posops.c:426
Datum left_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is strictly to the left of the second one.
Definition: temporal_posops.c:462
Datum after_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is strictly after the temporal number.
Definition: temporal_posops.c:346
Datum left_range_tnumber(PG_FUNCTION_ARGS)
Returns true if the number range value is strictly to the left of the temporal number.
Definition: temporal_posops.c:186
Datum overright_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is not to the left of the temporal box value. ...
Definition: temporal_posops.c:404
Datum overright_tnumber_range(PG_FUNCTION_ARGS)
Returns true if the temporal number is not to the left of the number range value. ...
Definition: temporal_posops.c:266
Datum overright_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is not to the left of the temporal number. ...
Definition: temporal_posops.c:313
Datum overright_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is not to the left of the second one.
Definition: temporal_posops.c:495
Datum overleft_tnumber_range(PG_FUNCTION_ARGS)
Returns true if the temporal number is not to the right of the number range value.
Definition: temporal_posops.c:244
Basic functions for temporal types of any subtype.
Datum right_tnumber_range(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly to the right of the number range value.
Definition: temporal_posops.c:255
Datum after_period_temporal(PG_FUNCTION_ARGS)
Returns true if the period value is strictly after the temporal value.
Definition: temporal_posops.c:76
Datum after_temporal_temporal(PG_FUNCTION_ARGS)
Returns true if the first temporal value is strictly after the second one.
Definition: temporal_posops.c:162
Datum left_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly to the left of the temporal box value.
Definition: temporal_posops.c:371
Datum right_range_tnumber(PG_FUNCTION_ARGS)
Returns true if the number range value is strictly to the right of the temporal number.
Definition: temporal_posops.c:208
Datum overafter_temporal_temporal(PG_FUNCTION_ARGS)
Returns true if the first temporal value is not before the second one.
Definition: temporal_posops.c:172
Datum overbefore_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is not after the second one.
Definition: temporal_posops.c:517
Datum overafter_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is not before the second one.
Definition: temporal_posops.c:539
Datum overafter_period_temporal(PG_FUNCTION_ARGS)
Returns true if the period value is not before the temporal value.
Definition: temporal_posops.c:86
Datum overleft_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is not to the right of the temporal box value.
Definition: temporal_posops.c:382
Datum overafter_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is not before the temporal number.
Definition: temporal_posops.c:357
Datum before_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is strictly before the temporal number.
Definition: temporal_posops.c:324
Datum right_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly to the right of the temporal box value.
Definition: temporal_posops.c:393
Datum after_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is strictly after the second one.
Definition: temporal_posops.c:528
Datum overleft_tbox_tnumber(PG_FUNCTION_ARGS)
Returns true if the temporal box value is not to the right of the temporal number.
Definition: temporal_posops.c:291
Datum overbefore_period_temporal(PG_FUNCTION_ARGS)
Returns true if the period value is not after the temporal value.
Definition: temporal_posops.c:66
Datum before_temporal_temporal(PG_FUNCTION_ARGS)
Returns true if the first temporal value is strictly before the second one.
Definition: temporal_posops.c:142
Datum overleft_range_tnumber(PG_FUNCTION_ARGS)
Returns true if the number range value is not to the right of the temporal number.
Definition: temporal_posops.c:197
Datum after_temporal_period(PG_FUNCTION_ARGS)
Returns true if the temporal value is strictly after the period value.
Definition: temporal_posops.c:119
Datum before_period_temporal(PG_FUNCTION_ARGS)
Returns true if the period value is strictly before the temporal value.
Definition: temporal_posops.c:56
Datum overright_range_tnumber(PG_FUNCTION_ARGS)
Returns true if the number range value is not to the left of the temporal number. ...
Definition: temporal_posops.c:219
Datum before_tnumber_tnumber(PG_FUNCTION_ARGS)
Returns true if the first temporal number is strictly before the second one.
Definition: temporal_posops.c:506
Datum before_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly before the temporal box value.
Definition: temporal_posops.c:415
Datum overafter_temporal_period(PG_FUNCTION_ARGS)
Returns true if the temporal value is not before the period value.
Definition: temporal_posops.c:129
Datum after_tnumber_tbox(PG_FUNCTION_ARGS)
Returns true if the temporal number is strictly after the temporal box value.
Definition: temporal_posops.c:437