File: predicates.sql

package info (click to toggle)
postgresql-periods 1.2.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,084 kB
  • sloc: sql: 9,744; ansic: 548; makefile: 30; sh: 1
file content (85 lines) | stat: -rw-r--r-- 4,360 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/* Run tests as unprivileged user */
SET ROLE TO periods_unprivileged_user;

CREATE TABLE preds (s integer, e integer);
SELECT periods.add_period('preds', 'p', 's', 'e');

INSERT INTO preds (s, e) VALUES (100, 200);
ANALYZE preds;

/* Ensure the functions are inlined. */

EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.contains(s, e, 100);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.contains(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.equals(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.overlaps(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.precedes(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.succeeds(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 100, 200);
EXPLAIN (COSTS OFF) SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 100, 200);

/* Now make sure they work! */

SELECT * FROM preds WHERE periods.contains(s, e, 0);
SELECT * FROM preds WHERE periods.contains(s, e, 150);
SELECT * FROM preds WHERE periods.contains(s, e, 300);

SELECT * FROM preds WHERE periods.contains(s, e, 0, 50);
SELECT * FROM preds WHERE periods.contains(s, e, 50, 100);
SELECT * FROM preds WHERE periods.contains(s, e, 100, 150);
SELECT * FROM preds WHERE periods.contains(s, e, 150, 200);
SELECT * FROM preds WHERE periods.contains(s, e, 200, 250);
SELECT * FROM preds WHERE periods.contains(s, e, 250, 300);
SELECT * FROM preds WHERE periods.contains(s, e, 125, 175);
SELECT * FROM preds WHERE periods.contains(s, e, 0, 300);

SELECT * FROM preds WHERE periods.equals(s, e, 0, 100);
SELECT * FROM preds WHERE periods.equals(s, e, 100, 200);
SELECT * FROM preds WHERE periods.equals(s, e, 200, 300);

SELECT * FROM preds WHERE periods.overlaps(s, e, 0, 50);
SELECT * FROM preds WHERE periods.overlaps(s, e, 50, 100);
SELECT * FROM preds WHERE periods.overlaps(s, e, 100, 150);
SELECT * FROM preds WHERE periods.overlaps(s, e, 150, 200);
SELECT * FROM preds WHERE periods.overlaps(s, e, 200, 250);
SELECT * FROM preds WHERE periods.overlaps(s, e, 250, 300);
SELECT * FROM preds WHERE periods.overlaps(s, e, 125, 175);
SELECT * FROM preds WHERE periods.overlaps(s, e, 0, 300);

SELECT * FROM preds WHERE periods.precedes(s, e, 0, 50);
SELECT * FROM preds WHERE periods.precedes(s, e, 50, 100);
SELECT * FROM preds WHERE periods.precedes(s, e, 100, 150);
SELECT * FROM preds WHERE periods.precedes(s, e, 150, 200);
SELECT * FROM preds WHERE periods.precedes(s, e, 200, 250);
SELECT * FROM preds WHERE periods.precedes(s, e, 250, 300);
SELECT * FROM preds WHERE periods.precedes(s, e, 125, 175);
SELECT * FROM preds WHERE periods.precedes(s, e, 0, 300);

SELECT * FROM preds WHERE periods.succeeds(s, e, 0, 50);
SELECT * FROM preds WHERE periods.succeeds(s, e, 50, 100);
SELECT * FROM preds WHERE periods.succeeds(s, e, 100, 150);
SELECT * FROM preds WHERE periods.succeeds(s, e, 150, 200);
SELECT * FROM preds WHERE periods.succeeds(s, e, 200, 250);
SELECT * FROM preds WHERE periods.succeeds(s, e, 250, 300);
SELECT * FROM preds WHERE periods.succeeds(s, e, 125, 175);
SELECT * FROM preds WHERE periods.succeeds(s, e, 0, 300);

SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 0, 50);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 50, 100);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 100, 150);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 150, 200);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 200, 250);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 250, 300);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 125, 175);
SELECT * FROM preds WHERE periods.immediately_precedes(s, e, 0, 300);

SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 0, 50);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 50, 100);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 100, 150);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 150, 200);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 200, 250);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 250, 300);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 125, 175);
SELECT * FROM preds WHERE periods.immediately_succeeds(s, e, 0, 300);

DROP TABLE preds;