2
-- first, define the datatype. Turn off echoing so that expected file
3
-- does not depend on contents of seg.sql.
6
psql:tsearch.sql:9: NOTICE: type "txtidx" is not yet defined
7
DETAIL: Creating a shell type definition.
8
psql:tsearch.sql:14: NOTICE: argument type txtidx is only a shell
9
psql:tsearch.sql:38: NOTICE: type "query_txt" is not yet defined
10
DETAIL: Creating a shell type definition.
11
psql:tsearch.sql:43: NOTICE: argument type query_txt is only a shell
12
psql:tsearch.sql:55: NOTICE: type "mquery_txt" is not yet defined
13
DETAIL: Creating a shell type definition.
14
psql:tsearch.sql:61: NOTICE: argument type mquery_txt is only a shell
15
psql:tsearch.sql:156: NOTICE: type "gtxtidx" is not yet defined
16
DETAIL: Creating a shell type definition.
17
psql:tsearch.sql:161: NOTICE: argument type gtxtidx is only a shell
49
SELECT '\'1 2\''::txtidx;
55
SELECT '\'1 \\\'2\''::txtidx;
61
SELECT '\'1 \\\'2\'3'::txtidx;
67
SELECT '\'1 \\\'2\' 3'::txtidx;
73
SELECT '\'1 \\\'2\' \' 3\' 4 '::txtidx;
80
SELECT '1'::query_txt;
86
SELECT '1 '::query_txt;
92
SELECT ' 1'::query_txt;
98
SELECT ' 1 '::query_txt;
104
SELECT '\'1 2\''::query_txt;
110
SELECT '\'1 \\\'2\''::query_txt;
116
SELECT '!1'::query_txt;
122
SELECT '1|2'::query_txt;
128
SELECT '1|!2'::query_txt;
134
SELECT '!1|2'::query_txt;
140
SELECT '!1|!2'::query_txt;
146
SELECT '!(!1|!2)'::query_txt;
152
SELECT '!(!1|2)'::query_txt;
158
SELECT '!(1|!2)'::query_txt;
164
SELECT '!(1|2)'::query_txt;
170
SELECT '1&2'::query_txt;
176
SELECT '!1&2'::query_txt;
182
SELECT '1&!2'::query_txt;
188
SELECT '!1&!2'::query_txt;
194
SELECT '(1&2)'::query_txt;
200
SELECT '1&(2)'::query_txt;
206
SELECT '!(1)&2'::query_txt;
212
SELECT '!(1&2)'::query_txt;
218
SELECT '1|2&3'::query_txt;
224
SELECT '1|(2&3)'::query_txt;
230
SELECT '(1|2)&3'::query_txt;
232
---------------------
236
SELECT '1|2&!3'::query_txt;
242
SELECT '1|!2&3'::query_txt;
248
SELECT '!1|2&3'::query_txt;
254
SELECT '!1|(2&3)'::query_txt;
260
SELECT '!(1|2)&3'::query_txt;
262
----------------------
266
SELECT '(!1|2)&3'::query_txt;
268
----------------------
272
SELECT '1|(2|(4|(5|6)))'::query_txt;
274
-----------------------------------------
275
'1' | ( '2' | ( '4' | ( '5' | '6' ) ) )
278
SELECT '1|2|4|5|6'::query_txt;
280
-----------------------------------------
281
( ( ( '1' | '2' ) | '4' ) | '5' ) | '6'
284
SELECT '1&(2&(4&(5&6)))'::query_txt;
286
-----------------------------
287
'1' & '2' & '4' & '5' & '6'
290
SELECT '1&2&4&5&6'::query_txt;
292
-----------------------------
293
'1' & '2' & '4' & '5' & '6'
296
SELECT '1&(2&(4&(5|6)))'::query_txt;
298
---------------------------------
299
'1' & '2' & '4' & ( '5' | '6' )
302
SELECT '1&(2&(4&(5|!6)))'::query_txt;
304
----------------------------------
305
'1' & '2' & '4' & ( '5' | !'6' )
308
SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::query_txt;
310
------------------------------------------
311
'1' & '2' & ' 4' & ( '|5' | '6 \' !|&' )
314
SELECT '1'::mquery_txt;
320
SELECT '1 '::mquery_txt;
326
SELECT ' 1'::mquery_txt;
332
SELECT ' 1 '::mquery_txt;
338
SELECT '\'1 2\''::mquery_txt;
344
SELECT '\'1 \\\'2\''::mquery_txt;
350
SELECT '!1'::mquery_txt;
356
SELECT '1|2'::mquery_txt;
362
SELECT '1|!2'::mquery_txt;
368
SELECT '!1|2'::mquery_txt;
374
SELECT '!1|!2'::mquery_txt;
380
SELECT '!(!1|!2)'::mquery_txt;
386
SELECT '!(!1|2)'::mquery_txt;
392
SELECT '!(1|!2)'::mquery_txt;
398
SELECT '!(1|2)'::mquery_txt;
404
SELECT '1&2'::mquery_txt;
410
SELECT '!1&2'::mquery_txt;
416
SELECT '1&!2'::mquery_txt;
422
SELECT '!1&!2'::mquery_txt;
428
SELECT '(1&2)'::mquery_txt;
434
SELECT '1&(2)'::mquery_txt;
440
SELECT '!(1)&2'::mquery_txt;
446
SELECT '!(1&2)'::mquery_txt;
452
SELECT '1|2&3'::mquery_txt;
458
SELECT '1|(2&3)'::mquery_txt;
464
SELECT '(1|2)&3'::mquery_txt;
466
---------------------
470
SELECT '1|2&!3'::mquery_txt;
476
SELECT '1|!2&3'::mquery_txt;
482
SELECT '!1|2&3'::mquery_txt;
488
SELECT '!1|(2&3)'::mquery_txt;
494
SELECT '!(1|2)&3'::mquery_txt;
496
----------------------
500
SELECT '(!1|2)&3'::mquery_txt;
502
----------------------
506
SELECT '1|(2|(4|(5|6)))'::mquery_txt;
508
-----------------------------------------
509
'1' | ( '2' | ( '4' | ( '5' | '6' ) ) )
512
SELECT '1|2|4|5|6'::mquery_txt;
514
-----------------------------------------
515
( ( ( '1' | '2' ) | '4' ) | '5' ) | '6'
518
SELECT '1&(2&(4&(5&6)))'::mquery_txt;
520
-----------------------------
521
'1' & '2' & '4' & '5' & '6'
524
SELECT '1&2&4&5&6'::mquery_txt;
526
-----------------------------
527
'1' & '2' & '4' & '5' & '6'
530
SELECT '1&(2&(4&(5|6)))'::mquery_txt;
532
---------------------------------
533
'1' & '2' & '4' & ( '5' | '6' )
536
SELECT '1&(2&(4&(5|!6)))'::mquery_txt;
538
----------------------------------
539
'1' & '2' & '4' & ( '5' | !'6' )
542
SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::mquery_txt;
544
---------------------------------
545
'1' & '2' & '4' & ( '5' | '6' )
548
SELECT 'querty-fgries | http://www.google.com/index.html | www.rambler.ru/index.shtml'::mquery_txt;
550
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
551
( 'querty-fgri' & 'querti' & 'fgri' | 'www.google.com/index.html' & 'www.google.com' & '/index.html' ) | 'www.rambler.ru/index.shtml' & 'www.rambler.ru' & '/index.shtml'
554
CREATE TABLE test_txtidx( t text, a txtidx );
555
\copy test_txtidx from 'data/test_tsearch.data'
556
SELECT count(*) FROM test_txtidx WHERE a @@ 'wr|qh';
562
SELECT count(*) FROM test_txtidx WHERE a @@ 'wr&qh';
568
SELECT count(*) FROM test_txtidx WHERE a @@ 'eq&yt';
574
SELECT count(*) FROM test_txtidx WHERE a @@ 'eq|yt';
580
SELECT count(*) FROM test_txtidx WHERE a @@ '(eq&yt)|(wr&qh)';
586
SELECT count(*) FROM test_txtidx WHERE a @@ '(eq|yt)&(wr|qh)';
592
SELECT count(*) FROM test_txtidx WHERE a ## 'wR|qh';
598
SELECT count(*) FROM test_txtidx WHERE a ## 'wR&qh';
604
SELECT count(*) FROM test_txtidx WHERE a ## 'eq&yt';
610
SELECT count(*) FROM test_txtidx WHERE a ## 'eq|yt';
616
SELECT count(*) FROM test_txtidx WHERE a ## '(eq&yt)|(wR&qh)';
622
SELECT count(*) FROM test_txtidx WHERE a ## '(eq|yt)&(wR|qh)';
628
create index wowidx on test_txtidx using gist (a);
629
SELECT count(*) FROM test_txtidx WHERE a @@ 'wr|qh';
635
SELECT count(*) FROM test_txtidx WHERE a @@ 'wr&qh';
641
SELECT count(*) FROM test_txtidx WHERE a @@ 'eq&yt';
647
SELECT count(*) FROM test_txtidx WHERE a @@ 'eq|yt';
653
SELECT count(*) FROM test_txtidx WHERE a @@ '(eq&yt)|(wr&qh)';
659
SELECT count(*) FROM test_txtidx WHERE a @@ '(eq|yt)&(wr|qh)';
665
SELECT count(*) FROM test_txtidx WHERE a ## 'wR|qh';
671
SELECT count(*) FROM test_txtidx WHERE a ## 'wR&qh';
677
SELECT count(*) FROM test_txtidx WHERE a ## 'eq&yt';
683
SELECT count(*) FROM test_txtidx WHERE a ## 'eq|yt';
689
SELECT count(*) FROM test_txtidx WHERE a ## '(eq&yt)|(wR&qh)';
695
SELECT count(*) FROM test_txtidx WHERE a ## '(eq|yt)&(wR|qh)';
701
SELECT txt2txtidx('345 qwe@efd.r \' http://www.com/ http://aew.werc.ewr/?ad=qwe&dw 1aew.werc.ewr/?ad=qwe&dw 2aew.werc.ewr http://3aew.werc.ewr/?ad=qwe&dw http://4aew.werc.ewr http://5aew.werc.ewr:8100/? ad=qwe&dw 6aew.werc.ewr:8100/?ad=qwe&dw 7aew.werc.ewr:8100/?ad=qwe&dw=%20%32 +4.0e-10 qwe qwe qwqwe 234.435 455 5.005 teodor@stack.net qwe-wer asdf <fr>qwer jf sdjk<we hjwer <werrwe> ewr1> ewri2 <a href="qwe<qwe>">
702
/usr/local/fff /awdf/dwqe/4325 rewt/ewr wefjn /wqe-324/ewr gist.h gist.h.c gist.c. readline 4.2 4.2. 4.2, readline-4.2 readline-4.2. 234
703
<i <b> wow < jqw <> qwerty');
705
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
706
'ad' 'dw' 'jf' '234' '345' '4.2' '455' 'jqw' 'qwe' 'wer' 'wow' 'asdf' 'ewr1' 'qwer' 'sdjk' '5.005' 'ewri2' 'qwqwe' 'wefjn' 'gist.c' 'gist.h' 'qwerti' '234.435' ':8100/?' 'qwe-wer' 'readlin' 'www.com' '+4.0e-10' 'gist.h.c' 'rewt/ewr' 'qwe@efd.r' 'readline-4' '/?ad=qwe&dw' '/wqe-324/ewr' 'aew.werc.ewr' '1aew.werc.ewr' '2aew.werc.ewr' '3aew.werc.ewr' '4aew.werc.ewr' '5aew.werc.ewr' '6aew.werc.ewr' '7aew.werc.ewr' '/usr/local/fff' '/awdf/dwqe/4325' ':8100/?ad=qwe&dw' 'teodor@stack.net' '5aew.werc.ewr:8100/?' ':8100/?ad=qwe&dw=%20%32' 'aew.werc.ewr/?ad=qwe&dw' '1aew.werc.ewr/?ad=qwe&dw' '3aew.werc.ewr/?ad=qwe&dw' '6aew.werc.ewr:8100/?ad=qwe&dw' '7aew.werc.ewr:8100/?ad=qwe&dw=%20%32'
709
SELECT txtidxsize(txt2txtidx('345 qw'));
715
SELECT txtidxsize(txt2txtidx('345 qwe@efd.r \' http://www.com/ http://aew.werc.ewr/?ad=qwe&dw 1aew.werc.ewr/?ad=qwe&dw 2aew.werc.ewr http://3aew.werc.ewr/?ad=qwe&dw http://4aew.werc.ewr http://5aew.werc.ewr:8100/? ad=qwe&dw 6aew.werc.ewr:8100/?ad=qwe&dw 7aew.werc.ewr:8100/?ad=qwe&dw=%20%32 +4.0e-10 qwe qwe qwqwe 234.435 455 5.005 teodor@stack.net qwe-wer asdf <fr>qwer jf sdjk<we hjwer <werrwe> ewr1> ewri2 <a href="qwe<qwe>">
716
/usr/local/fff /awdf/dwqe/4325 rewt/ewr wefjn /wqe-324/ewr gist.h gist.h.c gist.c. readline 4.2 4.2. 4.2, readline-4.2 readline-4.2. 234
717
<i <b> wow < jqw <> qwerty'));
723
INSERT INTO test_txtidx (a) VALUES ('345 qwerty');
724
CREATE TRIGGER txtidxupdate
725
BEFORE UPDATE OR INSERT ON test_txtidx
726
FOR EACH ROW EXECUTE PROCEDURE tsearch(a, t);
727
INSERT INTO test_txtidx (t) VALUES ('345 qwerty');
728
SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty';
734
SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty';
740
UPDATE test_txtidx SET t = null WHERE t = '345 qwerty';
741
SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty';
747
SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty';