Consistently use "superuser" instead of "super user"
[pgsql.git] / src / test / regress / expected / tstypes.out
blob2601e312df4ebd3449920e0b156823347b4abb6d
1 -- deal with numeric instability of ts_rank
2 SET extra_float_digits = 0;
3 --Base tsvector test
4 SELECT '1'::tsvector;
5  tsvector 
6 ----------
7  '1'
8 (1 row)
10 SELECT '1 '::tsvector;
11  tsvector 
12 ----------
13  '1'
14 (1 row)
16 SELECT ' 1'::tsvector;
17  tsvector 
18 ----------
19  '1'
20 (1 row)
22 SELECT ' 1 '::tsvector;
23  tsvector 
24 ----------
25  '1'
26 (1 row)
28 SELECT '1 2'::tsvector;
29  tsvector 
30 ----------
31  '1' '2'
32 (1 row)
34 SELECT '''1 2'''::tsvector;
35  tsvector 
36 ----------
37  '1 2'
38 (1 row)
40 SELECT E'''1 \\''2'''::tsvector;
41  tsvector 
42 ----------
43  '1 ''2'
44 (1 row)
46 SELECT E'''1 \\''2''3'::tsvector;
47   tsvector   
48 -------------
49  '1 ''2' '3'
50 (1 row)
52 SELECT E'''1 \\''2'' 3'::tsvector;
53   tsvector   
54 -------------
55  '1 ''2' '3'
56 (1 row)
58 SELECT E'''1 \\''2'' '' 3'' 4 '::tsvector;
59      tsvector     
60 ------------------
61  ' 3' '1 ''2' '4'
62 (1 row)
64 SELECT $$'\\as' ab\c ab\\c AB\\\c ab\\\\c$$::tsvector;
65                 tsvector                
66 ----------------------------------------
67  'AB\\c' '\\as' 'ab\\\\c' 'ab\\c' 'abc'
68 (1 row)
70 SELECT tsvectorin(tsvectorout($$'\\as' ab\c ab\\c AB\\\c ab\\\\c$$::tsvector));
71                tsvectorin               
72 ----------------------------------------
73  'AB\\c' '\\as' 'ab\\\\c' 'ab\\c' 'abc'
74 (1 row)
76 SELECT '''w'':4A,3B,2C,1D,5 a:8';
77        ?column?        
78 -----------------------
79  'w':4A,3B,2C,1D,5 a:8
80 (1 row)
82 SELECT 'a:3A b:2a'::tsvector || 'ba:1234 a:1B';
83           ?column?          
84 ----------------------------
85  'a':3A,4B 'b':2A 'ba':1237
86 (1 row)
88 --Base tsquery test
89 SELECT '1'::tsquery;
90  tsquery 
91 ---------
92  '1'
93 (1 row)
95 SELECT '1 '::tsquery;
96  tsquery 
97 ---------
98  '1'
99 (1 row)
101 SELECT ' 1'::tsquery;
102  tsquery 
103 ---------
104  '1'
105 (1 row)
107 SELECT ' 1 '::tsquery;
108  tsquery 
109 ---------
110  '1'
111 (1 row)
113 SELECT '''1 2'''::tsquery;
114  tsquery 
115 ---------
116  '1 2'
117 (1 row)
119 SELECT E'''1 \\''2'''::tsquery;
120  tsquery 
121 ---------
122  '1 ''2'
123 (1 row)
125 SELECT '!1'::tsquery;
126  tsquery 
127 ---------
128  !'1'
129 (1 row)
131 SELECT '1|2'::tsquery;
132   tsquery  
133 -----------
134  '1' | '2'
135 (1 row)
137 SELECT '1|!2'::tsquery;
138   tsquery   
139 ------------
140  '1' | !'2'
141 (1 row)
143 SELECT '!1|2'::tsquery;
144   tsquery   
145 ------------
146  !'1' | '2'
147 (1 row)
149 SELECT '!1|!2'::tsquery;
150    tsquery   
151 -------------
152  !'1' | !'2'
153 (1 row)
155 SELECT '!(!1|!2)'::tsquery;
156      tsquery      
157 ------------------
158  !( !'1' | !'2' )
159 (1 row)
161 SELECT '!(!1|2)'::tsquery;
162      tsquery     
163 -----------------
164  !( !'1' | '2' )
165 (1 row)
167 SELECT '!(1|!2)'::tsquery;
168      tsquery     
169 -----------------
170  !( '1' | !'2' )
171 (1 row)
173 SELECT '!(1|2)'::tsquery;
174     tsquery     
175 ----------------
176  !( '1' | '2' )
177 (1 row)
179 SELECT '1&2'::tsquery;
180   tsquery  
181 -----------
182  '1' & '2'
183 (1 row)
185 SELECT '!1&2'::tsquery;
186   tsquery   
187 ------------
188  !'1' & '2'
189 (1 row)
191 SELECT '1&!2'::tsquery;
192   tsquery   
193 ------------
194  '1' & !'2'
195 (1 row)
197 SELECT '!1&!2'::tsquery;
198    tsquery   
199 -------------
200  !'1' & !'2'
201 (1 row)
203 SELECT '(1&2)'::tsquery;
204   tsquery  
205 -----------
206  '1' & '2'
207 (1 row)
209 SELECT '1&(2)'::tsquery;
210   tsquery  
211 -----------
212  '1' & '2'
213 (1 row)
215 SELECT '!(1)&2'::tsquery;
216   tsquery   
217 ------------
218  !'1' & '2'
219 (1 row)
221 SELECT '!(1&2)'::tsquery;
222     tsquery     
223 ----------------
224  !( '1' & '2' )
225 (1 row)
227 SELECT '1|2&3'::tsquery;
228      tsquery     
229 -----------------
230  '1' | '2' & '3'
231 (1 row)
233 SELECT '1|(2&3)'::tsquery;
234      tsquery     
235 -----------------
236  '1' | '2' & '3'
237 (1 row)
239 SELECT '(1|2)&3'::tsquery;
240        tsquery       
241 ---------------------
242  ( '1' | '2' ) & '3'
243 (1 row)
245 SELECT '1|2&!3'::tsquery;
246      tsquery      
247 ------------------
248  '1' | '2' & !'3'
249 (1 row)
251 SELECT '1|!2&3'::tsquery;
252      tsquery      
253 ------------------
254  '1' | !'2' & '3'
255 (1 row)
257 SELECT '!1|2&3'::tsquery;
258      tsquery      
259 ------------------
260  !'1' | '2' & '3'
261 (1 row)
263 SELECT '!1|(2&3)'::tsquery;
264      tsquery      
265 ------------------
266  !'1' | '2' & '3'
267 (1 row)
269 SELECT '!(1|2)&3'::tsquery;
270        tsquery        
271 ----------------------
272  !( '1' | '2' ) & '3'
273 (1 row)
275 SELECT '(!1|2)&3'::tsquery;
276        tsquery        
277 ----------------------
278  ( !'1' | '2' ) & '3'
279 (1 row)
281 SELECT '1|(2|(4|(5|6)))'::tsquery;
282            tsquery           
283 -----------------------------
284  '1' | '2' | '4' | '5' | '6'
285 (1 row)
287 SELECT '1|2|4|5|6'::tsquery;
288            tsquery           
289 -----------------------------
290  '1' | '2' | '4' | '5' | '6'
291 (1 row)
293 SELECT '1&(2&(4&(5&6)))'::tsquery;
294            tsquery           
295 -----------------------------
296  '1' & '2' & '4' & '5' & '6'
297 (1 row)
299 SELECT '1&2&4&5&6'::tsquery;
300            tsquery           
301 -----------------------------
302  '1' & '2' & '4' & '5' & '6'
303 (1 row)
305 SELECT '1&(2&(4&(5|6)))'::tsquery;
306              tsquery             
307 ---------------------------------
308  '1' & '2' & '4' & ( '5' | '6' )
309 (1 row)
311 SELECT '1&(2&(4&(5|!6)))'::tsquery;
312              tsquery              
313 ----------------------------------
314  '1' & '2' & '4' & ( '5' | !'6' )
315 (1 row)
317 SELECT E'1&(''2''&('' 4''&(\\|5 | ''6 \\'' !|&'')))'::tsquery;
318                  tsquery                  
319 ------------------------------------------
320  '1' & '2' & ' 4' & ( '|5' | '6 '' !|&' )
321 (1 row)
323 SELECT $$'\\as'$$::tsquery;
324  tsquery 
325 ---------
326  '\\as'
327 (1 row)
329 SELECT 'a:* & nbb:*ac | doo:a* | goo'::tsquery;
330                tsquery                
331 --------------------------------------
332  'a':* & 'nbb':*AC | 'doo':*A | 'goo'
333 (1 row)
335 SELECT '!!b'::tsquery;
336  tsquery 
337 ---------
338  !!'b'
339 (1 row)
341 SELECT '!!!b'::tsquery;
342  tsquery 
343 ---------
344  !!!'b'
345 (1 row)
347 SELECT '!(!b)'::tsquery;
348  tsquery 
349 ---------
350  !!'b'
351 (1 row)
353 SELECT 'a & !!b'::tsquery;
354    tsquery   
355 -------------
356  'a' & !!'b'
357 (1 row)
359 SELECT '!!a & b'::tsquery;
360    tsquery   
361 -------------
362  !!'a' & 'b'
363 (1 row)
365 SELECT '!!a & !!b'::tsquery;
366     tsquery    
367 ---------------
368  !!'a' & !!'b'
369 (1 row)
371 --comparisons
372 SELECT 'a' < 'b & c'::tsquery as "true";
373  true 
374 ------
376 (1 row)
378 SELECT 'a' > 'b & c'::tsquery as "false";
379  false 
380 -------
382 (1 row)
384 SELECT 'a | f' < 'b & c'::tsquery as "false";
385  false 
386 -------
388 (1 row)
390 SELECT 'a | ff' < 'b & c'::tsquery as "false";
391  false 
392 -------
394 (1 row)
396 SELECT 'a | f | g' < 'b & c'::tsquery as "false";
397  false 
398 -------
400 (1 row)
402 --concatenation
403 SELECT numnode( 'new'::tsquery );
404  numnode 
405 ---------
406        1
407 (1 row)
409 SELECT numnode( 'new & york'::tsquery );
410  numnode 
411 ---------
412        3
413 (1 row)
415 SELECT numnode( 'new & york | qwery'::tsquery );
416  numnode 
417 ---------
418        5
419 (1 row)
421 SELECT 'foo & bar'::tsquery && 'asd';
422        ?column?        
423 -----------------------
424  'foo' & 'bar' & 'asd'
425 (1 row)
427 SELECT 'foo & bar'::tsquery || 'asd & fg';
428            ?column?           
429 ------------------------------
430  'foo' & 'bar' | 'asd' & 'fg'
431 (1 row)
433 SELECT 'foo & bar'::tsquery || !!'asd & fg'::tsquery;
434              ?column?              
435 -----------------------------------
436  'foo' & 'bar' | !( 'asd' & 'fg' )
437 (1 row)
439 SELECT 'foo & bar'::tsquery && 'asd | fg';
440              ?column?             
441 ----------------------------------
442  'foo' & 'bar' & ( 'asd' | 'fg' )
443 (1 row)
445 SELECT 'a' <-> 'b & d'::tsquery;
446        ?column?        
447 -----------------------
448  'a' <-> ( 'b' & 'd' )
449 (1 row)
451 SELECT 'a & g' <-> 'b & d'::tsquery;
452             ?column?             
453 ---------------------------------
454  ( 'a' & 'g' ) <-> ( 'b' & 'd' )
455 (1 row)
457 SELECT 'a & g' <-> 'b | d'::tsquery;
458             ?column?             
459 ---------------------------------
460  ( 'a' & 'g' ) <-> ( 'b' | 'd' )
461 (1 row)
463 SELECT 'a & g' <-> 'b <-> d'::tsquery;
464              ?column?              
465 -----------------------------------
466  ( 'a' & 'g' ) <-> ( 'b' <-> 'd' )
467 (1 row)
469 SELECT tsquery_phrase('a <3> g', 'b & d', 10);
470          tsquery_phrase         
471 --------------------------------
472  'a' <3> 'g' <10> ( 'b' & 'd' )
473 (1 row)
475 -- tsvector-tsquery operations
476 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca' as "true";
477  true 
478 ------
480 (1 row)
482 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:B' as "true";
483  true 
484 ------
486 (1 row)
488 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:A' as "true";
489  true 
490 ------
492 (1 row)
494 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:C' as "false";
495  false 
496 -------
498 (1 row)
500 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & ca:CB' as "true";
501  true 
502 ------
504 (1 row)
506 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & c:*C' as "false";
507  false 
508 -------
510 (1 row)
512 SELECT 'a b:89  ca:23A,64b d:34c'::tsvector @@ 'd:AC & c:*CB' as "true";
513  true 
514 ------
516 (1 row)
518 SELECT 'a b:89  ca:23A,64b cb:80c d:34c'::tsvector @@ 'd:AC & c:*C' as "true";
519  true 
520 ------
522 (1 row)
524 SELECT 'a b:89  ca:23A,64c cb:80b d:34c'::tsvector @@ 'd:AC & c:*C' as "true";
525  true 
526 ------
528 (1 row)
530 SELECT 'a b:89  ca:23A,64c cb:80b d:34c'::tsvector @@ 'd:AC & c:*B' as "true";
531  true 
532 ------
534 (1 row)
536 SELECT 'wa:1D wb:2A'::tsvector @@ 'w:*D & w:*A'::tsquery as "true";
537  true 
538 ------
540 (1 row)
542 SELECT 'wa:1D wb:2A'::tsvector @@ 'w:*D <-> w:*A'::tsquery as "true";
543  true 
544 ------
546 (1 row)
548 SELECT 'wa:1A wb:2D'::tsvector @@ 'w:*D <-> w:*A'::tsquery as "false";
549  false 
550 -------
552 (1 row)
554 SELECT 'wa:1A'::tsvector @@ 'w:*A'::tsquery as "true";
555  true 
556 ------
558 (1 row)
560 SELECT 'wa:1A'::tsvector @@ 'w:*D'::tsquery as "false";
561  false 
562 -------
564 (1 row)
566 SELECT 'wa:1A'::tsvector @@ '!w:*A'::tsquery as "false";
567  false 
568 -------
570 (1 row)
572 SELECT 'wa:1A'::tsvector @@ '!w:*D'::tsquery as "true";
573  true 
574 ------
576 (1 row)
578 -- historically, a stripped tsvector matches queries ignoring weights:
579 SELECT strip('wa:1A'::tsvector) @@ 'w:*A'::tsquery as "true";
580  true 
581 ------
583 (1 row)
585 SELECT strip('wa:1A'::tsvector) @@ 'w:*D'::tsquery as "true";
586  true 
587 ------
589 (1 row)
591 SELECT strip('wa:1A'::tsvector) @@ '!w:*A'::tsquery as "false";
592  false 
593 -------
595 (1 row)
597 SELECT strip('wa:1A'::tsvector) @@ '!w:*D'::tsquery as "false";
598  false 
599 -------
601 (1 row)
603 SELECT 'supernova'::tsvector @@ 'super'::tsquery AS "false";
604  false 
605 -------
607 (1 row)
609 SELECT 'supeanova supernova'::tsvector @@ 'super'::tsquery AS "false";
610  false 
611 -------
613 (1 row)
615 SELECT 'supeznova supernova'::tsvector @@ 'super'::tsquery AS "false";
616  false 
617 -------
619 (1 row)
621 SELECT 'supernova'::tsvector @@ 'super:*'::tsquery AS "true";
622  true 
623 ------
625 (1 row)
627 SELECT 'supeanova supernova'::tsvector @@ 'super:*'::tsquery AS "true";
628  true 
629 ------
631 (1 row)
633 SELECT 'supeznova supernova'::tsvector @@ 'super:*'::tsquery AS "true";
634  true 
635 ------
637 (1 row)
639 --phrase search
640 SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <-> 2' AS "true";
641  true 
642 ------
644 (1 row)
646 SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <2> 2' AS "false";
647  false 
648 -------
650 (1 row)
652 SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <-> 3' AS "false";
653  false 
654 -------
656 (1 row)
658 SELECT to_tsvector('simple', '1 2 3 1') @@ '1 <2> 3' AS "true";
659  true 
660 ------
662 (1 row)
664 SELECT to_tsvector('simple', '1 2 1 2') @@ '1 <3> 2' AS "true";
665  true 
666 ------
668 (1 row)
670 SELECT to_tsvector('simple', '1 2 11 3') @@ '1 <-> 3' AS "false";
671  false 
672 -------
674 (1 row)
676 SELECT to_tsvector('simple', '1 2 11 3') @@ '1:* <-> 3' AS "true";
677  true 
678 ------
680 (1 row)
682 SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <-> 2 <-> 3' AS "true";
683  true 
684 ------
686 (1 row)
688 SELECT to_tsvector('simple', '1 2 3 4') @@ '(1 <-> 2) <-> 3' AS "true";
689  true 
690 ------
692 (1 row)
694 SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <-> (2 <-> 3)' AS "true";
695  true 
696 ------
698 (1 row)
700 SELECT to_tsvector('simple', '1 2 3 4') @@ '1 <2> (2 <-> 3)' AS "false";
701  false 
702 -------
704 (1 row)
706 SELECT to_tsvector('simple', '1 2 1 2 3 4') @@ '(1 <-> 2) <-> 3' AS "true";
707  true 
708 ------
710 (1 row)
712 SELECT to_tsvector('simple', '1 2 1 2 3 4') @@ '1 <-> 2 <-> 3' AS "true";
713  true 
714 ------
716 (1 row)
718 -- without position data, phrase search does not match
719 SELECT strip(to_tsvector('simple', '1 2 3 4')) @@ '1 <-> 2 <-> 3' AS "false";
720  false 
721 -------
723 (1 row)
725 select to_tsvector('simple', 'q x q y') @@ 'q <-> (x & y)' AS "false";
726  false 
727 -------
729 (1 row)
731 select to_tsvector('simple', 'q x') @@ 'q <-> (x | y <-> z)' AS "true";
732  true 
733 ------
735 (1 row)
737 select to_tsvector('simple', 'q y') @@ 'q <-> (x | y <-> z)' AS "false";
738  false 
739 -------
741 (1 row)
743 select to_tsvector('simple', 'q y z') @@ 'q <-> (x | y <-> z)' AS "true";
744  true 
745 ------
747 (1 row)
749 select to_tsvector('simple', 'q y x') @@ 'q <-> (x | y <-> z)' AS "false";
750  false 
751 -------
753 (1 row)
755 select to_tsvector('simple', 'q x y') @@ 'q <-> (x | y <-> z)' AS "true";
756  true 
757 ------
759 (1 row)
761 select to_tsvector('simple', 'q x') @@ '(x | y <-> z) <-> q' AS "false";
762  false 
763 -------
765 (1 row)
767 select to_tsvector('simple', 'x q') @@ '(x | y <-> z) <-> q' AS "true";
768  true 
769 ------
771 (1 row)
773 select to_tsvector('simple', 'x y q') @@ '(x | y <-> z) <-> q' AS "false";
774  false 
775 -------
777 (1 row)
779 select to_tsvector('simple', 'x y z') @@ '(x | y <-> z) <-> q' AS "false";
780  false 
781 -------
783 (1 row)
785 select to_tsvector('simple', 'x y z q') @@ '(x | y <-> z) <-> q' AS "true";
786  true 
787 ------
789 (1 row)
791 select to_tsvector('simple', 'y z q') @@ '(x | y <-> z) <-> q' AS "true";
792  true 
793 ------
795 (1 row)
797 select to_tsvector('simple', 'y y q') @@ '(x | y <-> z) <-> q' AS "false";
798  false 
799 -------
801 (1 row)
803 select to_tsvector('simple', 'y y q') @@ '(!x | y <-> z) <-> q' AS "true";
804  true 
805 ------
807 (1 row)
809 select to_tsvector('simple', 'x y q') @@ '(!x | y <-> z) <-> q' AS "true";
810  true 
811 ------
813 (1 row)
815 select to_tsvector('simple', 'y y q') @@ '(x | y <-> !z) <-> q' AS "true";
816  true 
817 ------
819 (1 row)
821 select to_tsvector('simple', 'x q') @@ '(x | y <-> !z) <-> q' AS "true";
822  true 
823 ------
825 (1 row)
827 select to_tsvector('simple', 'x q') @@ '(!x | y <-> z) <-> q' AS "false";
828  false 
829 -------
831 (1 row)
833 select to_tsvector('simple', 'z q') @@ '(!x | y <-> z) <-> q' AS "true";
834  true 
835 ------
837 (1 row)
839 select to_tsvector('simple', 'x y q') @@ '(!x | y) <-> y <-> q' AS "false";
840  false 
841 -------
843 (1 row)
845 select to_tsvector('simple', 'x y q') @@ '(!x | !y) <-> y <-> q' AS "true";
846  true 
847 ------
849 (1 row)
851 select to_tsvector('simple', 'x y q') @@ '(x | !y) <-> y <-> q' AS "true";
852  true 
853 ------
855 (1 row)
857 select to_tsvector('simple', 'x y q') @@ '(x | !!z) <-> y <-> q' AS "true";
858  true 
859 ------
861 (1 row)
863 select to_tsvector('simple', 'x y q y') @@ '!x <-> y' AS "true";
864  true 
865 ------
867 (1 row)
869 select to_tsvector('simple', 'x y q y') @@ '!x <-> !y' AS "true";
870  true 
871 ------
873 (1 row)
875 select to_tsvector('simple', 'x y q y') @@ '!x <-> !!y' AS "true";
876  true 
877 ------
879 (1 row)
881 select to_tsvector('simple', 'x y q y') @@ '!(x <-> y)' AS "false";
882  false 
883 -------
885 (1 row)
887 select to_tsvector('simple', 'x y q y') @@ '!(x <2> y)' AS "true";
888  true 
889 ------
891 (1 row)
893 select strip(to_tsvector('simple', 'x y q y')) @@ '!x <-> y' AS "false";
894  false 
895 -------
897 (1 row)
899 select strip(to_tsvector('simple', 'x y q y')) @@ '!x <-> !y' AS "false";
900  false 
901 -------
903 (1 row)
905 select strip(to_tsvector('simple', 'x y q y')) @@ '!x <-> !!y' AS "false";
906  false 
907 -------
909 (1 row)
911 select strip(to_tsvector('simple', 'x y q y')) @@ '!(x <-> y)' AS "true";
912  true 
913 ------
915 (1 row)
917 select strip(to_tsvector('simple', 'x y q y')) @@ '!(x <2> y)' AS "true";
918  true 
919 ------
921 (1 row)
923 select to_tsvector('simple', 'x y q y') @@ '!foo' AS "true";
924  true 
925 ------
927 (1 row)
929 select to_tsvector('simple', '') @@ '!foo' AS "true";
930  true 
931 ------
933 (1 row)
935 --ranking
936 SELECT ts_rank(' a:1 s:2C d g'::tsvector, 'a | s');
937   ts_rank  
938 -----------
939  0.0911891
940 (1 row)
942 SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | s');
943   ts_rank  
944 -----------
945  0.0303964
946 (1 row)
948 SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | s:*');
949   ts_rank  
950 -----------
951  0.0911891
952 (1 row)
954 SELECT ts_rank(' a:1 sa:2C d g'::tsvector, 'a | sa:*');
955   ts_rank  
956 -----------
957  0.0911891
958 (1 row)
960 SELECT ts_rank(' a:1 s:2B d g'::tsvector, 'a | s');
961  ts_rank  
962 ----------
963  0.151982
964 (1 row)
966 SELECT ts_rank(' a:1 s:2 d g'::tsvector, 'a | s');
967   ts_rank  
968 -----------
969  0.0607927
970 (1 row)
972 SELECT ts_rank(' a:1 s:2C d g'::tsvector, 'a & s');
973  ts_rank  
974 ----------
975  0.140153
976 (1 row)
978 SELECT ts_rank(' a:1 s:2B d g'::tsvector, 'a & s');
979  ts_rank  
980 ----------
981  0.198206
982 (1 row)
984 SELECT ts_rank(' a:1 s:2 d g'::tsvector, 'a & s');
985   ts_rank  
986 -----------
987  0.0991032
988 (1 row)
990 SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a | s');
991  ts_rank_cd 
992 ------------
993         0.3
994 (1 row)
996 SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | s');
997  ts_rank_cd 
998 ------------
999         0.1
1000 (1 row)
1002 SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | s:*');
1003  ts_rank_cd 
1004 ------------
1005         0.3
1006 (1 row)
1008 SELECT ts_rank_cd(' a:1 sa:2C d g'::tsvector, 'a | sa:*');
1009  ts_rank_cd 
1010 ------------
1011         0.3
1012 (1 row)
1014 SELECT ts_rank_cd(' a:1 sa:3C sab:2c d g'::tsvector, 'a | sa:*');
1015  ts_rank_cd 
1016 ------------
1017         0.5
1018 (1 row)
1020 SELECT ts_rank_cd(' a:1 s:2B d g'::tsvector, 'a | s');
1021  ts_rank_cd 
1022 ------------
1023         0.5
1024 (1 row)
1026 SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a | s');
1027  ts_rank_cd 
1028 ------------
1029         0.2
1030 (1 row)
1032 SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a & s');
1033  ts_rank_cd 
1034 ------------
1035    0.133333
1036 (1 row)
1038 SELECT ts_rank_cd(' a:1 s:2B d g'::tsvector, 'a & s');
1039  ts_rank_cd 
1040 ------------
1041        0.16
1042 (1 row)
1044 SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a & s');
1045  ts_rank_cd 
1046 ------------
1047         0.1
1048 (1 row)
1050 SELECT ts_rank_cd(' a:1 s:2A d g'::tsvector, 'a <-> s');
1051  ts_rank_cd 
1052 ------------
1053    0.181818
1054 (1 row)
1056 SELECT ts_rank_cd(' a:1 s:2C d g'::tsvector, 'a <-> s');
1057  ts_rank_cd 
1058 ------------
1059    0.133333
1060 (1 row)
1062 SELECT ts_rank_cd(' a:1 s:2 d g'::tsvector, 'a <-> s');
1063  ts_rank_cd 
1064 ------------
1065         0.1
1066 (1 row)
1068 SELECT ts_rank_cd(' a:1 s:2 d:2A g'::tsvector, 'a <-> s');
1069  ts_rank_cd 
1070 ------------
1071         0.1
1072 (1 row)
1074 SELECT ts_rank_cd(' a:1 s:2,3A d:2A g'::tsvector, 'a <2> s:A');
1075  ts_rank_cd 
1076 ------------
1077   0.0909091
1078 (1 row)
1080 SELECT ts_rank_cd(' a:1 b:2 s:3A d:2A g'::tsvector, 'a <2> s:A');
1081  ts_rank_cd 
1082 ------------
1083   0.0909091
1084 (1 row)
1086 SELECT ts_rank_cd(' a:1 sa:2D sb:2A g'::tsvector, 'a <-> s:*');
1087  ts_rank_cd 
1088 ------------
1089         0.1
1090 (1 row)
1092 SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:*');
1093  ts_rank_cd 
1094 ------------
1095         0.1
1096 (1 row)
1098 SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:* <-> sa:A');
1099  ts_rank_cd 
1100 ------------
1101           0
1102 (1 row)
1104 SELECT ts_rank_cd(' a:1 sa:2A sb:2D g'::tsvector, 'a <-> s:* <-> sa:B');
1105  ts_rank_cd 
1106 ------------
1107           0
1108 (1 row)
1110 SELECT 'a:1 b:2'::tsvector @@ 'a <-> b'::tsquery AS "true";
1111  true 
1112 ------
1114 (1 row)
1116 SELECT 'a:1 b:2'::tsvector @@ 'a <0> b'::tsquery AS "false";
1117  false 
1118 -------
1120 (1 row)
1122 SELECT 'a:1 b:2'::tsvector @@ 'a <1> b'::tsquery AS "true";
1123  true 
1124 ------
1126 (1 row)
1128 SELECT 'a:1 b:2'::tsvector @@ 'a <2> b'::tsquery AS "false";
1129  false 
1130 -------
1132 (1 row)
1134 SELECT 'a:1 b:3'::tsvector @@ 'a <-> b'::tsquery AS "false";
1135  false 
1136 -------
1138 (1 row)
1140 SELECT 'a:1 b:3'::tsvector @@ 'a <0> b'::tsquery AS "false";
1141  false 
1142 -------
1144 (1 row)
1146 SELECT 'a:1 b:3'::tsvector @@ 'a <1> b'::tsquery AS "false";
1147  false 
1148 -------
1150 (1 row)
1152 SELECT 'a:1 b:3'::tsvector @@ 'a <2> b'::tsquery AS "true";
1153  true 
1154 ------
1156 (1 row)
1158 SELECT 'a:1 b:3'::tsvector @@ 'a <3> b'::tsquery AS "false";
1159  false 
1160 -------
1162 (1 row)
1164 SELECT 'a:1 b:3'::tsvector @@ 'a <0> a:*'::tsquery AS "true";
1165  true 
1166 ------
1168 (1 row)
1170 -- tsvector editing operations
1171 SELECT strip('w:12B w:13* w:12,5,6 a:1,3* a:3 w asd:1dc asd'::tsvector);
1172      strip     
1173 ---------------
1174  'a' 'asd' 'w'
1175 (1 row)
1177 SELECT strip('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
1178                     strip                     
1179 ----------------------------------------------
1180  'base' 'hidden' 'rebel' 'spaceship' 'strike'
1181 (1 row)
1183 SELECT strip('base hidden rebel spaceship strike'::tsvector);
1184                     strip                     
1185 ----------------------------------------------
1186  'base' 'hidden' 'rebel' 'spaceship' 'strike'
1187 (1 row)
1189 SELECT ts_delete(to_tsvector('english', 'Rebel spaceships, striking from a hidden base'), 'spaceship');
1190                 ts_delete                 
1191 ------------------------------------------
1192  'base':7 'hidden':6 'rebel':1 'strike':3
1193 (1 row)
1195 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'base');
1196                           ts_delete                           
1197 --------------------------------------------------------------
1198  'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
1199 (1 row)
1201 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'bas');
1202                                ts_delete                               
1203 -----------------------------------------------------------------------
1204  'base':7 'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
1205 (1 row)
1207 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'bases');
1208                                ts_delete                               
1209 -----------------------------------------------------------------------
1210  'base':7 'hidden':6 'rebel':1 'spaceship':2,33A,34B,35C,36 'strike':3
1211 (1 row)
1213 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, 'spaceship');
1214                 ts_delete                 
1215 ------------------------------------------
1216  'base':7 'hidden':6 'rebel':1 'strike':3
1217 (1 row)
1219 SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, 'spaceship');
1220             ts_delete             
1221 ----------------------------------
1222  'base' 'hidden' 'rebel' 'strike'
1223 (1 row)
1225 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceship','rebel']);
1226            ts_delete            
1227 --------------------------------
1228  'base':7 'hidden':6 'strike':3
1229 (1 row)
1231 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceships','rebel']);
1232                           ts_delete                          
1233 -------------------------------------------------------------
1234  'base':7 'hidden':6 'spaceship':2,33A,34B,35C,36 'strike':3
1235 (1 row)
1237 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceshi','rebel']);
1238                           ts_delete                          
1239 -------------------------------------------------------------
1240  'base':7 'hidden':6 'spaceship':2,33A,34B,35C,36 'strike':3
1241 (1 row)
1243 SELECT ts_delete('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector, ARRAY['spaceship','leya','rebel']);
1244            ts_delete            
1245 --------------------------------
1246  'base':7 'hidden':6 'strike':3
1247 (1 row)
1249 SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel']);
1250         ts_delete         
1251 --------------------------
1252  'base' 'hidden' 'strike'
1253 (1 row)
1255 SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel','rebel']);
1256         ts_delete         
1257 --------------------------
1258  'base' 'hidden' 'strike'
1259 (1 row)
1261 SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel', NULL]);
1262 ERROR:  lexeme array may not contain nulls
1263 SELECT unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
1264                    unnest                    
1265 ---------------------------------------------
1266  (base,{7},{D})
1267  (hidden,{6},{D})
1268  (rebel,{1},{D})
1269  (spaceship,"{2,33,34,35,36}","{D,A,B,C,D}")
1270  (strike,{3},{D})
1271 (5 rows)
1273 SELECT unnest('base hidden rebel spaceship strike'::tsvector);
1274     unnest     
1275 ---------------
1276  (base,,)
1277  (hidden,,)
1278  (rebel,,)
1279  (spaceship,,)
1280  (strike,,)
1281 (5 rows)
1283 SELECT * FROM unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
1284   lexeme   |    positions    |   weights   
1285 -----------+-----------------+-------------
1286  base      | {7}             | {D}
1287  hidden    | {6}             | {D}
1288  rebel     | {1}             | {D}
1289  spaceship | {2,33,34,35,36} | {D,A,B,C,D}
1290  strike    | {3}             | {D}
1291 (5 rows)
1293 SELECT * FROM unnest('base hidden rebel spaceship strike'::tsvector);
1294   lexeme   | positions | weights 
1295 -----------+-----------+---------
1296  base      |           | 
1297  hidden    |           | 
1298  rebel     |           | 
1299  spaceship |           | 
1300  strike    |           | 
1301 (5 rows)
1303 SELECT lexeme, positions[1] from unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
1304   lexeme   | positions 
1305 -----------+-----------
1306  base      |         7
1307  hidden    |         6
1308  rebel     |         1
1309  spaceship |         2
1310  strike    |         3
1311 (5 rows)
1313 SELECT tsvector_to_array('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
1314           tsvector_to_array           
1315 --------------------------------------
1316  {base,hidden,rebel,spaceship,strike}
1317 (1 row)
1319 SELECT tsvector_to_array('base hidden rebel spaceship strike'::tsvector);
1320           tsvector_to_array           
1321 --------------------------------------
1322  {base,hidden,rebel,spaceship,strike}
1323 (1 row)
1325 SELECT array_to_tsvector(ARRAY['base','hidden','rebel','spaceship','strike']);
1326               array_to_tsvector               
1327 ----------------------------------------------
1328  'base' 'hidden' 'rebel' 'spaceship' 'strike'
1329 (1 row)
1331 SELECT array_to_tsvector(ARRAY['base','hidden','rebel','spaceship', NULL]);
1332 ERROR:  lexeme array may not contain nulls
1333 -- array_to_tsvector must sort and de-dup
1334 SELECT array_to_tsvector(ARRAY['foo','bar','baz','bar']);
1335  array_to_tsvector 
1336 -------------------
1337  'bar' 'baz' 'foo'
1338 (1 row)
1340 SELECT setweight('w:12B w:13* w:12,5,6 a:1,3* a:3 w asd:1dc asd zxc:81,567,222A'::tsvector, 'c');
1341                         setweight                         
1342 ----------------------------------------------------------
1343  'a':1C,3C 'asd':1C 'w':5C,6C,12C,13C 'zxc':81C,222C,567C
1344 (1 row)
1346 SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c');
1347                         setweight                         
1348 ----------------------------------------------------------
1349  'a':1C,3C 'asd':1C 'w':5C,6C,12C,13C 'zxc':81C,222C,567C
1350 (1 row)
1352 SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a}');
1353                       setweight                       
1354 ------------------------------------------------------
1355  'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81,222A,567
1356 (1 row)
1358 SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a}');
1359                       setweight                       
1360 ------------------------------------------------------
1361  'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81,222A,567
1362 (1 row)
1364 SELECT setweight('a:1,3A asd:1C w:5,6,12B,13A zxc:81,222A,567'::tsvector, 'c', '{a,zxc}');
1365                        setweight                        
1366 --------------------------------------------------------
1367  'a':1C,3C 'asd':1C 'w':5,6,12B,13A 'zxc':81C,222C,567C
1368 (1 row)
1370 SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', '{a,zxc}');
1371             setweight            
1372 ---------------------------------
1373  'a' 'asd' 'w':5,6,12B,13A 'zxc'
1374 (1 row)
1376 SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', ARRAY['a', 'zxc', NULL]);
1377 ERROR:  lexeme array may not contain nulls
1378 SELECT ts_filter('base:7A empir:17 evil:15 first:11 galact:16 hidden:6A rebel:1A spaceship:2A strike:3A victori:12 won:9'::tsvector, '{a}');
1379                           ts_filter                          
1380 -------------------------------------------------------------
1381  'base':7A 'hidden':6A 'rebel':1A 'spaceship':2A 'strike':3A
1382 (1 row)
1384 SELECT ts_filter('base hidden rebel spaceship strike'::tsvector, '{a}');
1385  ts_filter 
1386 -----------
1388 (1 row)
1390 SELECT ts_filter('base hidden rebel spaceship strike'::tsvector, '{a,b,NULL}');
1391 ERROR:  weight array may not contain nulls