~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to contrib/seg/expected/seg_1.out

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
--  Test seg datatype
 
3
--
 
4
CREATE EXTENSION seg;
 
5
--
 
6
-- testing the input and output functions
 
7
--
 
8
-- Any number
 
9
SELECT '1'::seg AS seg;
 
10
 seg 
 
11
-----
 
12
 1
 
13
(1 row)
 
14
 
 
15
SELECT '-1'::seg AS seg;
 
16
 seg 
 
17
-----
 
18
 -1
 
19
(1 row)
 
20
 
 
21
SELECT '1.0'::seg AS seg;
 
22
 seg 
 
23
-----
 
24
 1.0
 
25
(1 row)
 
26
 
 
27
SELECT '-1.0'::seg AS seg;
 
28
 seg  
 
29
------
 
30
 -1.0
 
31
(1 row)
 
32
 
 
33
SELECT '1e7'::seg AS seg;
 
34
  seg   
 
35
--------
 
36
 1e+007
 
37
(1 row)
 
38
 
 
39
SELECT '-1e7'::seg AS seg;
 
40
   seg   
 
41
---------
 
42
 -1e+007
 
43
(1 row)
 
44
 
 
45
SELECT '1.0e7'::seg AS seg;
 
46
   seg    
 
47
----------
 
48
 1.0e+007
 
49
(1 row)
 
50
 
 
51
SELECT '-1.0e7'::seg AS seg;
 
52
    seg    
 
53
-----------
 
54
 -1.0e+007
 
55
(1 row)
 
56
 
 
57
SELECT '1e+7'::seg AS seg;
 
58
  seg   
 
59
--------
 
60
 1e+007
 
61
(1 row)
 
62
 
 
63
SELECT '-1e+7'::seg AS seg;
 
64
   seg   
 
65
---------
 
66
 -1e+007
 
67
(1 row)
 
68
 
 
69
SELECT '1.0e+7'::seg AS seg;
 
70
   seg    
 
71
----------
 
72
 1.0e+007
 
73
(1 row)
 
74
 
 
75
SELECT '-1.0e+7'::seg AS seg;
 
76
    seg    
 
77
-----------
 
78
 -1.0e+007
 
79
(1 row)
 
80
 
 
81
SELECT '1e-7'::seg AS seg;
 
82
  seg   
 
83
--------
 
84
 1e-007
 
85
(1 row)
 
86
 
 
87
SELECT '-1e-7'::seg AS seg;
 
88
   seg   
 
89
---------
 
90
 -1e-007
 
91
(1 row)
 
92
 
 
93
SELECT '1.0e-7'::seg AS seg;
 
94
   seg    
 
95
----------
 
96
 1.0e-007
 
97
(1 row)
 
98
 
 
99
SELECT '-1.0e-7'::seg AS seg;
 
100
    seg    
 
101
-----------
 
102
 -1.0e-007
 
103
(1 row)
 
104
 
 
105
SELECT '2e-6'::seg AS seg;
 
106
  seg   
 
107
--------
 
108
 2e-006
 
109
(1 row)
 
110
 
 
111
SELECT '2e-5'::seg AS seg;
 
112
  seg   
 
113
--------
 
114
 2e-005
 
115
(1 row)
 
116
 
 
117
SELECT '2e-4'::seg AS seg;
 
118
  seg   
 
119
--------
 
120
 0.0002
 
121
(1 row)
 
122
 
 
123
SELECT '2e-3'::seg AS seg;
 
124
  seg  
 
125
-------
 
126
 0.002
 
127
(1 row)
 
128
 
 
129
SELECT '2e-2'::seg AS seg;
 
130
 seg  
 
131
------
 
132
 0.02
 
133
(1 row)
 
134
 
 
135
SELECT '2e-1'::seg AS seg;
 
136
 seg 
 
137
-----
 
138
 0.2
 
139
(1 row)
 
140
 
 
141
SELECT '2e-0'::seg AS seg;
 
142
 seg 
 
143
-----
 
144
 2
 
145
(1 row)
 
146
 
 
147
SELECT '2e+0'::seg AS seg;
 
148
 seg 
 
149
-----
 
150
 2
 
151
(1 row)
 
152
 
 
153
SELECT '2e+1'::seg AS seg;
 
154
 seg 
 
155
-----
 
156
 2e1
 
157
(1 row)
 
158
 
 
159
SELECT '2e+2'::seg AS seg;
 
160
 seg 
 
161
-----
 
162
 2e2
 
163
(1 row)
 
164
 
 
165
SELECT '2e+3'::seg AS seg;
 
166
 seg 
 
167
-----
 
168
 2e3
 
169
(1 row)
 
170
 
 
171
SELECT '2e+4'::seg AS seg;
 
172
 seg 
 
173
-----
 
174
 2e4
 
175
(1 row)
 
176
 
 
177
SELECT '2e+5'::seg AS seg;
 
178
  seg   
 
179
--------
 
180
 2e+005
 
181
(1 row)
 
182
 
 
183
SELECT '2e+6'::seg AS seg;
 
184
  seg   
 
185
--------
 
186
 2e+006
 
187
(1 row)
 
188
 
 
189
-- Significant digits preserved
 
190
SELECT '1'::seg AS seg;
 
191
 seg 
 
192
-----
 
193
 1
 
194
(1 row)
 
195
 
 
196
SELECT '1.0'::seg AS seg;
 
197
 seg 
 
198
-----
 
199
 1.0
 
200
(1 row)
 
201
 
 
202
SELECT '1.00'::seg AS seg;
 
203
 seg  
 
204
------
 
205
 1.00
 
206
(1 row)
 
207
 
 
208
SELECT '1.000'::seg AS seg;
 
209
  seg  
 
210
-------
 
211
 1.000
 
212
(1 row)
 
213
 
 
214
SELECT '1.0000'::seg AS seg;
 
215
  seg   
 
216
--------
 
217
 1.0000
 
218
(1 row)
 
219
 
 
220
SELECT '1.00000'::seg AS seg;
 
221
   seg   
 
222
---------
 
223
 1.00000
 
224
(1 row)
 
225
 
 
226
SELECT '1.000000'::seg AS seg;
 
227
   seg   
 
228
---------
 
229
 1.00000
 
230
(1 row)
 
231
 
 
232
SELECT '0.000000120'::seg AS seg;
 
233
    seg    
 
234
-----------
 
235
 1.20e-007
 
236
(1 row)
 
237
 
 
238
SELECT '3.400e5'::seg AS seg;
 
239
    seg     
 
240
------------
 
241
 3.400e+005
 
242
(1 row)
 
243
 
 
244
-- Digits truncated
 
245
SELECT '12.34567890123456'::seg AS seg;
 
246
   seg   
 
247
---------
 
248
 12.3457
 
249
(1 row)
 
250
 
 
251
-- Numbers with certainty indicators
 
252
SELECT '~6.5'::seg AS seg;
 
253
 seg  
 
254
------
 
255
 ~6.5
 
256
(1 row)
 
257
 
 
258
SELECT '<6.5'::seg AS seg;
 
259
 seg  
 
260
------
 
261
 <6.5
 
262
(1 row)
 
263
 
 
264
SELECT '>6.5'::seg AS seg;
 
265
 seg  
 
266
------
 
267
 >6.5
 
268
(1 row)
 
269
 
 
270
SELECT '~ 6.5'::seg AS seg;
 
271
 seg  
 
272
------
 
273
 ~6.5
 
274
(1 row)
 
275
 
 
276
SELECT '< 6.5'::seg AS seg;
 
277
 seg  
 
278
------
 
279
 <6.5
 
280
(1 row)
 
281
 
 
282
SELECT '> 6.5'::seg AS seg;
 
283
 seg  
 
284
------
 
285
 >6.5
 
286
(1 row)
 
287
 
 
288
-- Open intervals
 
289
SELECT '0..'::seg AS seg;
 
290
 seg  
 
291
------
 
292
 0 ..
 
293
(1 row)
 
294
 
 
295
SELECT '0...'::seg AS seg;
 
296
 seg  
 
297
------
 
298
 0 ..
 
299
(1 row)
 
300
 
 
301
SELECT '0 ..'::seg AS seg;
 
302
 seg  
 
303
------
 
304
 0 ..
 
305
(1 row)
 
306
 
 
307
SELECT '0 ...'::seg AS seg;
 
308
 seg  
 
309
------
 
310
 0 ..
 
311
(1 row)
 
312
 
 
313
SELECT '..0'::seg AS seg;
 
314
 seg  
 
315
------
 
316
 .. 0
 
317
(1 row)
 
318
 
 
319
SELECT '...0'::seg AS seg;
 
320
 seg  
 
321
------
 
322
 .. 0
 
323
(1 row)
 
324
 
 
325
SELECT '.. 0'::seg AS seg;
 
326
 seg  
 
327
------
 
328
 .. 0
 
329
(1 row)
 
330
 
 
331
SELECT '... 0'::seg AS seg;
 
332
 seg  
 
333
------
 
334
 .. 0
 
335
(1 row)
 
336
 
 
337
-- Finite intervals
 
338
SELECT '0 .. 1'::seg AS seg;
 
339
  seg   
 
340
--------
 
341
 0 .. 1
 
342
(1 row)
 
343
 
 
344
SELECT '-1 .. 0'::seg AS seg;
 
345
   seg   
 
346
---------
 
347
 -1 .. 0
 
348
(1 row)
 
349
 
 
350
SELECT '-1 .. 1'::seg AS seg;
 
351
   seg   
 
352
---------
 
353
 -1 .. 1
 
354
(1 row)
 
355
 
 
356
-- (+/-) intervals
 
357
SELECT '0(+-)1'::seg AS seg;
 
358
   seg   
 
359
---------
 
360
 -1 .. 1
 
361
(1 row)
 
362
 
 
363
SELECT '0(+-)1.0'::seg AS seg;
 
364
     seg     
 
365
-------------
 
366
 -1.0 .. 1.0
 
367
(1 row)
 
368
 
 
369
SELECT '1.0(+-)0.005'::seg AS seg;
 
370
      seg       
 
371
----------------
 
372
 0.995 .. 1.005
 
373
(1 row)
 
374
 
 
375
SELECT '101(+-)1'::seg AS seg;
 
376
       seg        
 
377
------------------
 
378
 1.00e2 .. 1.02e2
 
379
(1 row)
 
380
 
 
381
-- incorrect number of significant digits in 99.0:
 
382
SELECT '100(+-)1'::seg AS seg;
 
383
      seg       
 
384
----------------
 
385
 99.0 .. 1.01e2
 
386
(1 row)
 
387
 
 
388
-- invalid input
 
389
SELECT ''::seg AS seg;
 
390
ERROR:  bad seg representation
 
391
LINE 1: SELECT ''::seg AS seg;
 
392
               ^
 
393
DETAIL:  syntax error at end of input
 
394
SELECT 'ABC'::seg AS seg;
 
395
ERROR:  bad seg representation
 
396
LINE 1: SELECT 'ABC'::seg AS seg;
 
397
               ^
 
398
DETAIL:  syntax error at or near "A"
 
399
SELECT '1ABC'::seg AS seg;
 
400
ERROR:  bad seg representation
 
401
LINE 1: SELECT '1ABC'::seg AS seg;
 
402
               ^
 
403
DETAIL:  syntax error at or near "A"
 
404
SELECT '1.'::seg AS seg;
 
405
ERROR:  bad seg representation
 
406
LINE 1: SELECT '1.'::seg AS seg;
 
407
               ^
 
408
DETAIL:  syntax error at or near "."
 
409
SELECT '1.....'::seg AS seg;
 
410
ERROR:  bad seg representation
 
411
LINE 1: SELECT '1.....'::seg AS seg;
 
412
               ^
 
413
DETAIL:  syntax error at or near ".."
 
414
SELECT '.1'::seg AS seg;
 
415
ERROR:  bad seg representation
 
416
LINE 1: SELECT '.1'::seg AS seg;
 
417
               ^
 
418
DETAIL:  syntax error at or near "."
 
419
SELECT '1..2.'::seg AS seg;
 
420
ERROR:  bad seg representation
 
421
LINE 1: SELECT '1..2.'::seg AS seg;
 
422
               ^
 
423
DETAIL:  syntax error at or near "."
 
424
SELECT '1 e7'::seg AS seg;
 
425
ERROR:  bad seg representation
 
426
LINE 1: SELECT '1 e7'::seg AS seg;
 
427
               ^
 
428
DETAIL:  syntax error at or near "e"
 
429
SELECT '1e700'::seg AS seg;
 
430
ERROR:  "1e700" is out of range for type real
 
431
LINE 1: SELECT '1e700'::seg AS seg;
 
432
               ^
 
433
--
 
434
-- testing the  operators
 
435
--
 
436
-- equality/inequality:
 
437
--
 
438
SELECT '24 .. 33.20'::seg = '24 .. 33.20'::seg AS bool;
 
439
 bool 
 
440
------
 
441
 t
 
442
(1 row)
 
443
 
 
444
SELECT '24 .. 33.20'::seg = '24 .. 33.21'::seg AS bool;
 
445
 bool 
 
446
------
 
447
 f
 
448
(1 row)
 
449
 
 
450
SELECT '24 .. 33.20'::seg != '24 .. 33.20'::seg AS bool;
 
451
 bool 
 
452
------
 
453
 f
 
454
(1 row)
 
455
 
 
456
SELECT '24 .. 33.20'::seg != '24 .. 33.21'::seg AS bool;
 
457
 bool 
 
458
------
 
459
 t
 
460
(1 row)
 
461
 
 
462
-- overlap
 
463
--
 
464
SELECT '1'::seg && '1'::seg AS bool;
 
465
 bool 
 
466
------
 
467
 t
 
468
(1 row)
 
469
 
 
470
SELECT '1'::seg && '2'::seg AS bool;
 
471
 bool 
 
472
------
 
473
 f
 
474
(1 row)
 
475
 
 
476
SELECT '0 ..'::seg && '0 ..'::seg AS bool;
 
477
 bool 
 
478
------
 
479
 t
 
480
(1 row)
 
481
 
 
482
SELECT '0 .. 1'::seg && '0 .. 1'::seg AS bool;
 
483
 bool 
 
484
------
 
485
 t
 
486
(1 row)
 
487
 
 
488
SELECT '..0'::seg && '0..'::seg AS bool;
 
489
 bool 
 
490
------
 
491
 t
 
492
(1 row)
 
493
 
 
494
SELECT '-1 .. 0.1'::seg && '0 .. 1'::seg AS bool;
 
495
 bool 
 
496
------
 
497
 t
 
498
(1 row)
 
499
 
 
500
SELECT '-1 .. 0'::seg && '0 .. 1'::seg AS bool;
 
501
 bool 
 
502
------
 
503
 t
 
504
(1 row)
 
505
 
 
506
SELECT '-1 .. -0.0001'::seg && '0 .. 1'::seg AS bool;
 
507
 bool 
 
508
------
 
509
 f
 
510
(1 row)
 
511
 
 
512
SELECT '0 ..'::seg && '1'::seg AS bool;
 
513
 bool 
 
514
------
 
515
 t
 
516
(1 row)
 
517
 
 
518
SELECT '0 .. 1'::seg && '1'::seg AS bool;
 
519
 bool 
 
520
------
 
521
 t
 
522
(1 row)
 
523
 
 
524
SELECT '0 .. 1'::seg && '2'::seg AS bool;
 
525
 bool 
 
526
------
 
527
 f
 
528
(1 row)
 
529
 
 
530
SELECT '0 .. 2'::seg && '1'::seg AS bool;
 
531
 bool 
 
532
------
 
533
 t
 
534
(1 row)
 
535
 
 
536
SELECT '1'::seg && '0 .. 1'::seg AS bool;
 
537
 bool 
 
538
------
 
539
 t
 
540
(1 row)
 
541
 
 
542
SELECT '2'::seg && '0 .. 1'::seg AS bool;
 
543
 bool 
 
544
------
 
545
 f
 
546
(1 row)
 
547
 
 
548
SELECT '1'::seg && '0 .. 2'::seg AS bool;
 
549
 bool 
 
550
------
 
551
 t
 
552
(1 row)
 
553
 
 
554
-- overlap on the left
 
555
--
 
556
SELECT '1'::seg &< '0'::seg AS bool;
 
557
 bool 
 
558
------
 
559
 f
 
560
(1 row)
 
561
 
 
562
SELECT '1'::seg &< '1'::seg AS bool;
 
563
 bool 
 
564
------
 
565
 t
 
566
(1 row)
 
567
 
 
568
SELECT '1'::seg &< '2'::seg AS bool;
 
569
 bool 
 
570
------
 
571
 t
 
572
(1 row)
 
573
 
 
574
SELECT '0 .. 1'::seg &< '0'::seg AS bool;
 
575
 bool 
 
576
------
 
577
 f
 
578
(1 row)
 
579
 
 
580
SELECT '0 .. 1'::seg &< '1'::seg AS bool;
 
581
 bool 
 
582
------
 
583
 t
 
584
(1 row)
 
585
 
 
586
SELECT '0 .. 1'::seg &< '2'::seg AS bool;
 
587
 bool 
 
588
------
 
589
 t
 
590
(1 row)
 
591
 
 
592
SELECT '0 .. 1'::seg &< '0 .. 0.5'::seg AS bool;
 
593
 bool 
 
594
------
 
595
 f
 
596
(1 row)
 
597
 
 
598
SELECT '0 .. 1'::seg &< '0 .. 1'::seg AS bool;
 
599
 bool 
 
600
------
 
601
 t
 
602
(1 row)
 
603
 
 
604
SELECT '0 .. 1'::seg &< '0 .. 2'::seg AS bool;
 
605
 bool 
 
606
------
 
607
 t
 
608
(1 row)
 
609
 
 
610
SELECT '0 .. 1'::seg &< '1 .. 2'::seg AS bool;
 
611
 bool 
 
612
------
 
613
 t
 
614
(1 row)
 
615
 
 
616
SELECT '0 .. 1'::seg &< '2 .. 3'::seg AS bool;
 
617
 bool 
 
618
------
 
619
 t
 
620
(1 row)
 
621
 
 
622
-- overlap on the right
 
623
--
 
624
SELECT '0'::seg &> '1'::seg AS bool;
 
625
 bool 
 
626
------
 
627
 f
 
628
(1 row)
 
629
 
 
630
SELECT '1'::seg &> '1'::seg AS bool;
 
631
 bool 
 
632
------
 
633
 t
 
634
(1 row)
 
635
 
 
636
SELECT '2'::seg &> '1'::seg AS bool;
 
637
 bool 
 
638
------
 
639
 t
 
640
(1 row)
 
641
 
 
642
SELECT '0'::seg &> '0 .. 1'::seg AS bool;
 
643
 bool 
 
644
------
 
645
 t
 
646
(1 row)
 
647
 
 
648
SELECT '1'::seg &> '0 .. 1'::seg AS bool;
 
649
 bool 
 
650
------
 
651
 t
 
652
(1 row)
 
653
 
 
654
SELECT '2'::seg &> '0 .. 1'::seg AS bool;
 
655
 bool 
 
656
------
 
657
 t
 
658
(1 row)
 
659
 
 
660
SELECT '0 .. 0.5'::seg &> '0 .. 1'::seg AS bool;
 
661
 bool 
 
662
------
 
663
 t
 
664
(1 row)
 
665
 
 
666
SELECT '0 .. 1'::seg &> '0 .. 1'::seg AS bool;
 
667
 bool 
 
668
------
 
669
 t
 
670
(1 row)
 
671
 
 
672
SELECT '0 .. 2'::seg &> '0 .. 2'::seg AS bool;
 
673
 bool 
 
674
------
 
675
 t
 
676
(1 row)
 
677
 
 
678
SELECT '1 .. 2'::seg &> '0 .. 1'::seg AS bool;
 
679
 bool 
 
680
------
 
681
 t
 
682
(1 row)
 
683
 
 
684
SELECT '2 .. 3'::seg &> '0 .. 1'::seg AS bool;
 
685
 bool 
 
686
------
 
687
 t
 
688
(1 row)
 
689
 
 
690
-- left
 
691
--
 
692
SELECT '1'::seg << '0'::seg AS bool;
 
693
 bool 
 
694
------
 
695
 f
 
696
(1 row)
 
697
 
 
698
SELECT '1'::seg << '1'::seg AS bool;
 
699
 bool 
 
700
------
 
701
 f
 
702
(1 row)
 
703
 
 
704
SELECT '1'::seg << '2'::seg AS bool;
 
705
 bool 
 
706
------
 
707
 t
 
708
(1 row)
 
709
 
 
710
SELECT '0 .. 1'::seg << '0'::seg AS bool;
 
711
 bool 
 
712
------
 
713
 f
 
714
(1 row)
 
715
 
 
716
SELECT '0 .. 1'::seg << '1'::seg AS bool;
 
717
 bool 
 
718
------
 
719
 f
 
720
(1 row)
 
721
 
 
722
SELECT '0 .. 1'::seg << '2'::seg AS bool;
 
723
 bool 
 
724
------
 
725
 t
 
726
(1 row)
 
727
 
 
728
SELECT '0 .. 1'::seg << '0 .. 0.5'::seg AS bool;
 
729
 bool 
 
730
------
 
731
 f
 
732
(1 row)
 
733
 
 
734
SELECT '0 .. 1'::seg << '0 .. 1'::seg AS bool;
 
735
 bool 
 
736
------
 
737
 f
 
738
(1 row)
 
739
 
 
740
SELECT '0 .. 1'::seg << '0 .. 2'::seg AS bool;
 
741
 bool 
 
742
------
 
743
 f
 
744
(1 row)
 
745
 
 
746
SELECT '0 .. 1'::seg << '1 .. 2'::seg AS bool;
 
747
 bool 
 
748
------
 
749
 f
 
750
(1 row)
 
751
 
 
752
SELECT '0 .. 1'::seg << '2 .. 3'::seg AS bool;
 
753
 bool 
 
754
------
 
755
 t
 
756
(1 row)
 
757
 
 
758
-- right
 
759
--
 
760
SELECT '0'::seg >> '1'::seg AS bool;
 
761
 bool 
 
762
------
 
763
 f
 
764
(1 row)
 
765
 
 
766
SELECT '1'::seg >> '1'::seg AS bool;
 
767
 bool 
 
768
------
 
769
 f
 
770
(1 row)
 
771
 
 
772
SELECT '2'::seg >> '1'::seg AS bool;
 
773
 bool 
 
774
------
 
775
 t
 
776
(1 row)
 
777
 
 
778
SELECT '0'::seg >> '0 .. 1'::seg AS bool;
 
779
 bool 
 
780
------
 
781
 f
 
782
(1 row)
 
783
 
 
784
SELECT '1'::seg >> '0 .. 1'::seg AS bool;
 
785
 bool 
 
786
------
 
787
 f
 
788
(1 row)
 
789
 
 
790
SELECT '2'::seg >> '0 .. 1'::seg AS bool;
 
791
 bool 
 
792
------
 
793
 t
 
794
(1 row)
 
795
 
 
796
SELECT '0 .. 0.5'::seg >> '0 .. 1'::seg AS bool;
 
797
 bool 
 
798
------
 
799
 f
 
800
(1 row)
 
801
 
 
802
SELECT '0 .. 1'::seg >> '0 .. 1'::seg AS bool;
 
803
 bool 
 
804
------
 
805
 f
 
806
(1 row)
 
807
 
 
808
SELECT '0 .. 2'::seg >> '0 .. 2'::seg AS bool;
 
809
 bool 
 
810
------
 
811
 f
 
812
(1 row)
 
813
 
 
814
SELECT '1 .. 2'::seg >> '0 .. 1'::seg AS bool;
 
815
 bool 
 
816
------
 
817
 f
 
818
(1 row)
 
819
 
 
820
SELECT '2 .. 3'::seg >> '0 .. 1'::seg AS bool;
 
821
 bool 
 
822
------
 
823
 t
 
824
(1 row)
 
825
 
 
826
-- "contained in" (the left value belongs within the interval specified in the right value):
 
827
--
 
828
SELECT '0'::seg        <@ '0'::seg AS bool;
 
829
 bool 
 
830
------
 
831
 t
 
832
(1 row)
 
833
 
 
834
SELECT '0'::seg        <@ '0 ..'::seg AS bool;
 
835
 bool 
 
836
------
 
837
 t
 
838
(1 row)
 
839
 
 
840
SELECT '0'::seg        <@ '.. 0'::seg AS bool;
 
841
 bool 
 
842
------
 
843
 t
 
844
(1 row)
 
845
 
 
846
SELECT '0'::seg        <@ '-1 .. 1'::seg AS bool;
 
847
 bool 
 
848
------
 
849
 t
 
850
(1 row)
 
851
 
 
852
SELECT '0'::seg        <@ '-1 .. 1'::seg AS bool;
 
853
 bool 
 
854
------
 
855
 t
 
856
(1 row)
 
857
 
 
858
SELECT '-1'::seg       <@ '-1 .. 1'::seg AS bool;
 
859
 bool 
 
860
------
 
861
 t
 
862
(1 row)
 
863
 
 
864
SELECT '1'::seg        <@ '-1 .. 1'::seg AS bool;
 
865
 bool 
 
866
------
 
867
 t
 
868
(1 row)
 
869
 
 
870
SELECT '-1 .. 1'::seg  <@ '-1 .. 1'::seg AS bool;
 
871
 bool 
 
872
------
 
873
 t
 
874
(1 row)
 
875
 
 
876
-- "contains" (the left value contains the interval specified in the right value):
 
877
--
 
878
SELECT '0'::seg @> '0'::seg AS bool;
 
879
 bool 
 
880
------
 
881
 t
 
882
(1 row)
 
883
 
 
884
SELECT '0 .. '::seg <@ '0'::seg AS bool;
 
885
 bool 
 
886
------
 
887
 f
 
888
(1 row)
 
889
 
 
890
SELECT '.. 0'::seg <@ '0'::seg AS bool;
 
891
 bool 
 
892
------
 
893
 f
 
894
(1 row)
 
895
 
 
896
SELECT '-1 .. 1'::seg <@ '0'::seg AS bool;
 
897
 bool 
 
898
------
 
899
 f
 
900
(1 row)
 
901
 
 
902
SELECT '0'::seg <@ '-1 .. 1'::seg AS bool;
 
903
 bool 
 
904
------
 
905
 t
 
906
(1 row)
 
907
 
 
908
SELECT '-1'::seg <@ '-1 .. 1'::seg AS bool;
 
909
 bool 
 
910
------
 
911
 t
 
912
(1 row)
 
913
 
 
914
SELECT '1'::seg <@ '-1 .. 1'::seg AS bool;
 
915
 bool 
 
916
------
 
917
 t
 
918
(1 row)
 
919
 
 
920
-- Load some example data and build the index
 
921
--
 
922
CREATE TABLE test_seg (s seg);
 
923
\copy test_seg from 'data/test_seg.data'
 
924
CREATE INDEX test_seg_ix ON test_seg USING gist (s);
 
925
SELECT count(*) FROM test_seg WHERE s @> '11..11.3';
 
926
 count 
 
927
-------
 
928
   143
 
929
(1 row)
 
930
 
 
931
-- Test sorting
 
932
SELECT * FROM test_seg WHERE s @> '11..11.3' GROUP BY s;
 
933
        s        
 
934
-----------------
 
935
 .. 4.0e1
 
936
 .. >8.2e1
 
937
 .. 9.0e1
 
938
 <1.0 .. >13.0
 
939
 1.3 .. 12.0
 
940
 2.0 .. 11.5
 
941
 2.1 .. 11.8
 
942
 <2.3 ..
 
943
 >2.3 ..
 
944
 2.4 .. 11.3
 
945
 2.5 .. 11.5
 
946
 2.5 .. 11.8
 
947
 2.6 ..
 
948
 2.7 .. 12.0
 
949
 <3.0 ..
 
950
 3 .. 5.8e1
 
951
 3.1 .. 11.5
 
952
 3.5 .. 11.5
 
953
 3.5 .. 12.2
 
954
 <4.0 .. >1.2e1
 
955
 <4.0 ..
 
956
 4 .. 1.2e1
 
957
 4.0 .. 11.7
 
958
 4.0 .. 12.5
 
959
 4.0 .. 13.0
 
960
 4.0 .. 6.0e1
 
961
 4.0 ..
 
962
 4.2 .. 11.5
 
963
 4.2 .. 11.7
 
964
 <4.5 .. >1.2e1
 
965
 4.5 .. 11.5
 
966
 4.5 .. <1.2e1
 
967
 4.5 .. >1.2e1
 
968
 4.5 .. 12.5
 
969
 4.5 .. 1.15e2
 
970
 4.7 .. 11.8
 
971
 4.8 .. 11.5
 
972
 4.8 .. 11.6
 
973
 4.8 .. 12.5
 
974
 4.8 ..
 
975
 4.9 .. >1.2e1
 
976
 4.9 ..
 
977
 5 .. 11.5
 
978
 5 .. 1.2e1
 
979
 5 .. 3.0e1
 
980
 5.0 .. 11.4
 
981
 5.0 .. 11.5
 
982
 5.0 .. 11.6
 
983
 5.0 .. 11.7
 
984
 5.0 .. 12.0
 
985
 5.0 .. >12.0
 
986
 5.0 .. >1.2e1
 
987
 5.2 .. 11.5
 
988
 5.2 .. >1.2e1
 
989
 5.25 .. >1.2e1
 
990
 5.3 .. 11.5
 
991
 5.3 .. 1.3e1
 
992
 5.3 .. >9.0e1
 
993
 5.3 ..
 
994
 5.4 ..
 
995
 5.5 .. 11.5
 
996
 5.5 .. 11.7
 
997
 5.5 .. 1.2e1
 
998
 5.5 .. >1.2e1
 
999
 5.5 .. 12.5
 
1000
 5.5 .. 13.5
 
1001
 5.5 ..
 
1002
 >5.5 ..
 
1003
 5.7 ..
 
1004
 5.9 ..
 
1005
 6 .. 11.5
 
1006
 6 .. >1.2e1
 
1007
 6.0 .. 11.5
 
1008
 6.0 .. 1.3e1
 
1009
 >6.0 .. <11.5
 
1010
 6.1 .. >1.2e1
 
1011
 6.1 ..
 
1012
 6.2 .. >11.5
 
1013
 6.3 ..
 
1014
 6.5 .. 11.5
 
1015
 6.5 .. 12.0
 
1016
 6.5 .. >12.0
 
1017
 6.5 ..
 
1018
 6.6 ..
 
1019
 6.7 .. 11.5
 
1020
 6.7 ..
 
1021
 6.75 ..
 
1022
 6.8 ..
 
1023
 6.9 .. 12.2
 
1024
 6.9 .. >9.0e1
 
1025
 6.9 ..
 
1026
 <7.0 .. >11.5
 
1027
 7.0 .. 11.5
 
1028
 7.0 .. >11.5
 
1029
 7.0 ..
 
1030
 >7.15 ..
 
1031
 7.2 .. 13.5
 
1032
 7.3 .. >9.0e1
 
1033
 7.3 ..
 
1034
 >7.3 ..
 
1035
 7.4 .. 12.1
 
1036
 7.4 ..
 
1037
 7.5 .. 11.5
 
1038
 7.5 .. 12.0
 
1039
 7.5 ..
 
1040
 7.7 .. 11.5
 
1041
 7.7 ..
 
1042
 7.75 ..
 
1043
 8.0 .. 11.7
 
1044
 8.0 .. 12.0
 
1045
 8.0 .. >13.0
 
1046
 8.2 ..
 
1047
 8.3 ..
 
1048
 8.5 .. >11.5
 
1049
 8.5 .. 12.5
 
1050
 8.5 ..
 
1051
 8.6 .. >9.9e1
 
1052
 8.7 .. 11.3
 
1053
 8.7 .. 11.7
 
1054
 8.9 .. 11.5
 
1055
 9 .. >1.2e1
 
1056
 9.0 .. 11.3
 
1057
 9.0 .. 11.5
 
1058
 9.0 .. 1.2e1
 
1059
 9.0 ..
 
1060
 9.2 .. 1.2e1
 
1061
 9.4 .. 12.2
 
1062
 <9.5 .. 1.2e1
 
1063
 <9.5 .. >12.2
 
1064
 9.5 ..
 
1065
 9.6 .. 11.5
 
1066
 9.7 .. 11.5
 
1067
 9.7 .. >1.2e1
 
1068
 9.8 .. >12.5
 
1069
 <1.0e1 .. >11.6
 
1070
 10.0 .. 11.5
 
1071
 10.0 .. 12.5
 
1072
 10.0 .. >12.5
 
1073
 10.2 .. 11.8
 
1074
 <10.5 .. 11.5
 
1075
 10.5 .. 11.5
 
1076
 10.5 .. <13.5
 
1077
 10.7 .. 12.3
 
1078
(143 rows)
 
1079
 
 
1080
-- Test functions
 
1081
SELECT seg_lower(s), seg_center(s), seg_upper(s)
 
1082
FROM test_seg WHERE s @> '11.2..11.3' OR s IS NULL ORDER BY s;
 
1083
 seg_lower | seg_center | seg_upper 
 
1084
-----------+------------+-----------
 
1085
 -Infinity |  -Infinity |        40
 
1086
 -Infinity |  -Infinity |        82
 
1087
 -Infinity |  -Infinity |        90
 
1088
         1 |          7 |        13
 
1089
       1.3 |       6.65 |        12
 
1090
         2 |       6.75 |      11.5
 
1091
       2.1 |       6.95 |      11.8
 
1092
       2.3 |   Infinity |  Infinity
 
1093
       2.3 |   Infinity |  Infinity
 
1094
       2.4 |       6.85 |      11.3
 
1095
       2.5 |          7 |      11.5
 
1096
       2.5 |       7.15 |      11.8
 
1097
       2.6 |   Infinity |  Infinity
 
1098
       2.7 |       7.35 |        12
 
1099
         3 |   Infinity |  Infinity
 
1100
         3 |       30.5 |        58
 
1101
       3.1 |        7.3 |      11.5
 
1102
       3.5 |        7.5 |      11.5
 
1103
       3.5 |       7.85 |      12.2
 
1104
         4 |          8 |        12
 
1105
         4 |   Infinity |  Infinity
 
1106
         4 |          8 |        12
 
1107
         4 |       7.85 |      11.7
 
1108
         4 |       8.25 |      12.5
 
1109
         4 |        8.5 |        13
 
1110
         4 |         32 |        60
 
1111
         4 |   Infinity |  Infinity
 
1112
       4.2 |       7.85 |      11.5
 
1113
       4.2 |       7.95 |      11.7
 
1114
       4.5 |       8.25 |        12
 
1115
       4.5 |          8 |      11.5
 
1116
       4.5 |       8.25 |        12
 
1117
       4.5 |       8.25 |        12
 
1118
       4.5 |        8.5 |      12.5
 
1119
       4.5 |      59.75 |       115
 
1120
       4.7 |       8.25 |      11.8
 
1121
       4.8 |       8.15 |      11.5
 
1122
       4.8 |        8.2 |      11.6
 
1123
       4.8 |       8.65 |      12.5
 
1124
       4.8 |   Infinity |  Infinity
 
1125
       4.9 |       8.45 |        12
 
1126
       4.9 |   Infinity |  Infinity
 
1127
         5 |       8.25 |      11.5
 
1128
         5 |        8.5 |        12
 
1129
         5 |       17.5 |        30
 
1130
         5 |        8.2 |      11.4
 
1131
         5 |       8.25 |      11.5
 
1132
         5 |        8.3 |      11.6
 
1133
         5 |       8.35 |      11.7
 
1134
         5 |        8.5 |        12
 
1135
         5 |        8.5 |        12
 
1136
         5 |        8.5 |        12
 
1137
       5.2 |       8.35 |      11.5
 
1138
       5.2 |        8.6 |        12
 
1139
      5.25 |      8.625 |        12
 
1140
       5.3 |        8.4 |      11.5
 
1141
       5.3 |       9.15 |        13
 
1142
       5.3 |      47.65 |        90
 
1143
       5.3 |   Infinity |  Infinity
 
1144
       5.4 |   Infinity |  Infinity
 
1145
       5.5 |        8.5 |      11.5
 
1146
       5.5 |        8.6 |      11.7
 
1147
       5.5 |       8.75 |        12
 
1148
       5.5 |       8.75 |        12
 
1149
       5.5 |          9 |      12.5
 
1150
       5.5 |        9.5 |      13.5
 
1151
       5.5 |   Infinity |  Infinity
 
1152
       5.5 |   Infinity |  Infinity
 
1153
       5.7 |   Infinity |  Infinity
 
1154
       5.9 |   Infinity |  Infinity
 
1155
         6 |       8.75 |      11.5
 
1156
         6 |          9 |        12
 
1157
         6 |       8.75 |      11.5
 
1158
         6 |        9.5 |        13
 
1159
         6 |       8.75 |      11.5
 
1160
       6.1 |       9.05 |        12
 
1161
       6.1 |   Infinity |  Infinity
 
1162
       6.2 |       8.85 |      11.5
 
1163
       6.3 |   Infinity |  Infinity
 
1164
       6.5 |          9 |      11.5
 
1165
       6.5 |       9.25 |        12
 
1166
       6.5 |       9.25 |        12
 
1167
       6.5 |   Infinity |  Infinity
 
1168
       6.6 |   Infinity |  Infinity
 
1169
       6.7 |        9.1 |      11.5
 
1170
       6.7 |   Infinity |  Infinity
 
1171
      6.75 |   Infinity |  Infinity
 
1172
       6.8 |   Infinity |  Infinity
 
1173
       6.9 |       9.55 |      12.2
 
1174
       6.9 |      48.45 |        90
 
1175
       6.9 |   Infinity |  Infinity
 
1176
         7 |       9.25 |      11.5
 
1177
         7 |       9.25 |      11.5
 
1178
         7 |       9.25 |      11.5
 
1179
         7 |   Infinity |  Infinity
 
1180
      7.15 |   Infinity |  Infinity
 
1181
       7.2 |      10.35 |      13.5
 
1182
       7.3 |      48.65 |        90
 
1183
       7.3 |   Infinity |  Infinity
 
1184
       7.3 |   Infinity |  Infinity
 
1185
       7.4 |       9.75 |      12.1
 
1186
       7.4 |   Infinity |  Infinity
 
1187
       7.5 |        9.5 |      11.5
 
1188
       7.5 |       9.75 |        12
 
1189
       7.5 |   Infinity |  Infinity
 
1190
       7.7 |        9.6 |      11.5
 
1191
       7.7 |   Infinity |  Infinity
 
1192
      7.75 |   Infinity |  Infinity
 
1193
         8 |       9.85 |      11.7
 
1194
         8 |         10 |        12
 
1195
         8 |       10.5 |        13
 
1196
       8.2 |   Infinity |  Infinity
 
1197
       8.3 |   Infinity |  Infinity
 
1198
       8.5 |         10 |      11.5
 
1199
       8.5 |       10.5 |      12.5
 
1200
       8.5 |   Infinity |  Infinity
 
1201
       8.6 |       53.8 |        99
 
1202
       8.7 |         10 |      11.3
 
1203
       8.7 |       10.2 |      11.7
 
1204
       8.9 |       10.2 |      11.5
 
1205
         9 |       10.5 |        12
 
1206
         9 |      10.15 |      11.3
 
1207
         9 |      10.25 |      11.5
 
1208
         9 |       10.5 |        12
 
1209
         9 |   Infinity |  Infinity
 
1210
       9.2 |       10.6 |        12
 
1211
       9.4 |       10.8 |      12.2
 
1212
       9.5 |      10.75 |        12
 
1213
       9.5 |      10.85 |      12.2
 
1214
       9.5 |   Infinity |  Infinity
 
1215
       9.6 |      10.55 |      11.5
 
1216
       9.7 |       10.6 |      11.5
 
1217
       9.7 |      10.85 |        12
 
1218
       9.8 |      11.15 |      12.5
 
1219
        10 |       10.8 |      11.6
 
1220
        10 |      10.75 |      11.5
 
1221
        10 |      11.25 |      12.5
 
1222
        10 |      11.25 |      12.5
 
1223
      10.2 |         11 |      11.8
 
1224
      10.5 |         11 |      11.5
 
1225
      10.5 |         11 |      11.5
 
1226
      10.5 |         12 |      13.5
 
1227
      10.7 |       11.5 |      12.3
 
1228
           |            |          
 
1229
(144 rows)
 
1230