diff options
| author | Bruce Momjian | 2002-10-18 18:41:22 +0000 |
|---|---|---|
| committer | Bruce Momjian | 2002-10-18 18:41:22 +0000 |
| commit | aa4c702eac936964649f905741b4a99f4b489200 (patch) | |
| tree | 517d3c28aa3d28eb95b19c8676c940b5cefe2031 /contrib/tsearch | |
| parent | fb9bc342fffc157d6ca4b635aeeaccb3c1370b91 (diff) | |
Update /contrib for "autocommit TO 'on'".
Create objects in public schema.
Make spacing/capitalization consistent.
Remove transaction block use for object creation.
Remove unneeded function GRANTs.
Diffstat (limited to 'contrib/tsearch')
| -rw-r--r-- | contrib/tsearch/expected/tsearch.out | 207 | ||||
| -rw-r--r-- | contrib/tsearch/sql/tsearch.sql | 204 | ||||
| -rw-r--r-- | contrib/tsearch/tsearch.sql.in | 165 |
3 files changed, 308 insertions, 268 deletions
diff --git a/contrib/tsearch/expected/tsearch.out b/contrib/tsearch/expected/tsearch.out index 85aa978655..0c8831189f 100644 --- a/contrib/tsearch/expected/tsearch.out +++ b/contrib/tsearch/expected/tsearch.out @@ -9,539 +9,539 @@ psql:tsearch.sql:40: WARNING: ProcedureCreate: type query_txt is not yet define psql:tsearch.sql:45: WARNING: Argument type "query_txt" is only a shell psql:tsearch.sql:57: WARNING: ProcedureCreate: type mquery_txt is not yet defined psql:tsearch.sql:63: WARNING: Argument type "mquery_txt" is only a shell -psql:tsearch.sql:133: WARNING: ProcedureCreate: type gtxtidx is not yet defined -psql:tsearch.sql:138: WARNING: Argument type "gtxtidx" is only a shell +psql:tsearch.sql:158: WARNING: ProcedureCreate: type gtxtidx is not yet defined +psql:tsearch.sql:163: WARNING: Argument type "gtxtidx" is only a shell --txtidx -select '1'::txtidx; +SELECT '1'::txtidx; txtidx -------- '1' (1 row) -select '1 '::txtidx; +SELECT '1 '::txtidx; txtidx -------- '1' (1 row) -select ' 1'::txtidx; +SELECT ' 1'::txtidx; txtidx -------- '1' (1 row) -select ' 1 '::txtidx; +SELECT ' 1 '::txtidx; txtidx -------- '1' (1 row) -select '1 2'::txtidx; +SELECT '1 2'::txtidx; txtidx --------- '1' '2' (1 row) -select '\'1 2\''::txtidx; +SELECT '\'1 2\''::txtidx; txtidx -------- '1 2' (1 row) -select '\'1 \\\'2\''::txtidx; +SELECT '\'1 \\\'2\''::txtidx; txtidx --------- '1 \'2' (1 row) -select '\'1 \\\'2\'3'::txtidx; +SELECT '\'1 \\\'2\'3'::txtidx; txtidx ------------- '3' '1 \'2' (1 row) -select '\'1 \\\'2\' 3'::txtidx; +SELECT '\'1 \\\'2\' 3'::txtidx; txtidx ------------- '3' '1 \'2' (1 row) -select '\'1 \\\'2\' \' 3\' 4 '::txtidx; +SELECT '\'1 \\\'2\' \' 3\' 4 '::txtidx; txtidx ------------------ '4' ' 3' '1 \'2' (1 row) --query_txt -select '1'::query_txt; +SELECT '1'::query_txt; query_txt ----------- '1' (1 row) -select '1 '::query_txt; +SELECT '1 '::query_txt; query_txt ----------- '1' (1 row) -select ' 1'::query_txt; +SELECT ' 1'::query_txt; query_txt ----------- '1' (1 row) -select ' 1 '::query_txt; +SELECT ' 1 '::query_txt; query_txt ----------- '1' (1 row) -select '\'1 2\''::query_txt; +SELECT '\'1 2\''::query_txt; query_txt ----------- '1 2' (1 row) -select '\'1 \\\'2\''::query_txt; +SELECT '\'1 \\\'2\''::query_txt; query_txt ----------- '1 \'2' (1 row) -select '!1'::query_txt; +SELECT '!1'::query_txt; query_txt ----------- !'1' (1 row) -select '1|2'::query_txt; +SELECT '1|2'::query_txt; query_txt ----------- '1' | '2' (1 row) -select '1|!2'::query_txt; +SELECT '1|!2'::query_txt; query_txt ------------ '1' | !'2' (1 row) -select '!1|2'::query_txt; +SELECT '!1|2'::query_txt; query_txt ------------ !'1' | '2' (1 row) -select '!1|!2'::query_txt; +SELECT '!1|!2'::query_txt; query_txt ------------- !'1' | !'2' (1 row) -select '!(!1|!2)'::query_txt; +SELECT '!(!1|!2)'::query_txt; query_txt ------------------ !( !'1' | !'2' ) (1 row) -select '!(!1|2)'::query_txt; +SELECT '!(!1|2)'::query_txt; query_txt ----------------- !( !'1' | '2' ) (1 row) -select '!(1|!2)'::query_txt; +SELECT '!(1|!2)'::query_txt; query_txt ----------------- !( '1' | !'2' ) (1 row) -select '!(1|2)'::query_txt; +SELECT '!(1|2)'::query_txt; query_txt ---------------- !( '1' | '2' ) (1 row) -select '1&2'::query_txt; +SELECT '1&2'::query_txt; query_txt ----------- '1' & '2' (1 row) -select '!1&2'::query_txt; +SELECT '!1&2'::query_txt; query_txt ------------ !'1' & '2' (1 row) -select '1&!2'::query_txt; +SELECT '1&!2'::query_txt; query_txt ------------ '1' & !'2' (1 row) -select '!1&!2'::query_txt; +SELECT '!1&!2'::query_txt; query_txt ------------- !'1' & !'2' (1 row) -select '(1&2)'::query_txt; +SELECT '(1&2)'::query_txt; query_txt ----------- '1' & '2' (1 row) -select '1&(2)'::query_txt; +SELECT '1&(2)'::query_txt; query_txt ----------- '1' & '2' (1 row) -select '!(1)&2'::query_txt; +SELECT '!(1)&2'::query_txt; query_txt ------------ !'1' & '2' (1 row) -select '!(1&2)'::query_txt; +SELECT '!(1&2)'::query_txt; query_txt ---------------- !( '1' & '2' ) (1 row) -select '1|2&3'::query_txt; +SELECT '1|2&3'::query_txt; query_txt ----------------- '1' | '2' & '3' (1 row) -select '1|(2&3)'::query_txt; +SELECT '1|(2&3)'::query_txt; query_txt ----------------- '1' | '2' & '3' (1 row) -select '(1|2)&3'::query_txt; +SELECT '(1|2)&3'::query_txt; query_txt --------------------- ( '1' | '2' ) & '3' (1 row) -select '1|2&!3'::query_txt; +SELECT '1|2&!3'::query_txt; query_txt ------------------ '1' | '2' & !'3' (1 row) -select '1|!2&3'::query_txt; +SELECT '1|!2&3'::query_txt; query_txt ------------------ '1' | !'2' & '3' (1 row) -select '!1|2&3'::query_txt; +SELECT '!1|2&3'::query_txt; query_txt ------------------ !'1' | '2' & '3' (1 row) -select '!1|(2&3)'::query_txt; +SELECT '!1|(2&3)'::query_txt; query_txt ------------------ !'1' | '2' & '3' (1 row) -select '!(1|2)&3'::query_txt; +SELECT '!(1|2)&3'::query_txt; query_txt ---------------------- !( '1' | '2' ) & '3' (1 row) -select '(!1|2)&3'::query_txt; +SELECT '(!1|2)&3'::query_txt; query_txt ---------------------- ( !'1' | '2' ) & '3' (1 row) -select '1|(2|(4|(5|6)))'::query_txt; +SELECT '1|(2|(4|(5|6)))'::query_txt; query_txt ----------------------------------------- '1' | ( '2' | ( '4' | ( '5' | '6' ) ) ) (1 row) -select '1|2|4|5|6'::query_txt; +SELECT '1|2|4|5|6'::query_txt; query_txt ----------------------------------------- ( ( ( '1' | '2' ) | '4' ) | '5' ) | '6' (1 row) -select '1&(2&(4&(5&6)))'::query_txt; +SELECT '1&(2&(4&(5&6)))'::query_txt; query_txt ----------------------------- '1' & '2' & '4' & '5' & '6' (1 row) -select '1&2&4&5&6'::query_txt; +SELECT '1&2&4&5&6'::query_txt; query_txt ----------------------------- '1' & '2' & '4' & '5' & '6' (1 row) -select '1&(2&(4&(5|6)))'::query_txt; +SELECT '1&(2&(4&(5|6)))'::query_txt; query_txt --------------------------------- '1' & '2' & '4' & ( '5' | '6' ) (1 row) -select '1&(2&(4&(5|!6)))'::query_txt; +SELECT '1&(2&(4&(5|!6)))'::query_txt; query_txt ---------------------------------- '1' & '2' & '4' & ( '5' | !'6' ) (1 row) -select '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::query_txt; +SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::query_txt; query_txt ------------------------------------------ '1' & '2' & ' 4' & ( '|5' | '6 \' !|&' ) (1 row) -select '1'::mquery_txt; +SELECT '1'::mquery_txt; mquery_txt ------------ '1' (1 row) -select '1 '::mquery_txt; +SELECT '1 '::mquery_txt; mquery_txt ------------ '1' (1 row) -select ' 1'::mquery_txt; +SELECT ' 1'::mquery_txt; mquery_txt ------------ '1' (1 row) -select ' 1 '::mquery_txt; +SELECT ' 1 '::mquery_txt; mquery_txt ------------ '1' (1 row) -select '\'1 2\''::mquery_txt; +SELECT '\'1 2\''::mquery_txt; mquery_txt ------------ '1' & '2' (1 row) -select '\'1 \\\'2\''::mquery_txt; +SELECT '\'1 \\\'2\''::mquery_txt; mquery_txt ------------ '1' & '2' (1 row) -select '!1'::mquery_txt; +SELECT '!1'::mquery_txt; mquery_txt ------------ !'1' (1 row) -select '1|2'::mquery_txt; +SELECT '1|2'::mquery_txt; mquery_txt ------------ '1' | '2' (1 row) -select '1|!2'::mquery_txt; +SELECT '1|!2'::mquery_txt; mquery_txt ------------ '1' | !'2' (1 row) -select '!1|2'::mquery_txt; +SELECT '!1|2'::mquery_txt; mquery_txt ------------ !'1' | '2' (1 row) -select '!1|!2'::mquery_txt; +SELECT '!1|!2'::mquery_txt; mquery_txt ------------- !'1' | !'2' (1 row) -select '!(!1|!2)'::mquery_txt; +SELECT '!(!1|!2)'::mquery_txt; mquery_txt ------------------ !( !'1' | !'2' ) (1 row) -select '!(!1|2)'::mquery_txt; +SELECT '!(!1|2)'::mquery_txt; mquery_txt ----------------- !( !'1' | '2' ) (1 row) -select '!(1|!2)'::mquery_txt; +SELECT '!(1|!2)'::mquery_txt; mquery_txt ----------------- !( '1' | !'2' ) (1 row) -select '!(1|2)'::mquery_txt; +SELECT '!(1|2)'::mquery_txt; mquery_txt ---------------- !( '1' | '2' ) (1 row) -select '1&2'::mquery_txt; +SELECT '1&2'::mquery_txt; mquery_txt ------------ '1' & '2' (1 row) -select '!1&2'::mquery_txt; +SELECT '!1&2'::mquery_txt; mquery_txt ------------ !'1' & '2' (1 row) -select '1&!2'::mquery_txt; +SELECT '1&!2'::mquery_txt; mquery_txt ------------ '1' & !'2' (1 row) -select '!1&!2'::mquery_txt; +SELECT '!1&!2'::mquery_txt; mquery_txt ------------- !'1' & !'2' (1 row) -select '(1&2)'::mquery_txt; +SELECT '(1&2)'::mquery_txt; mquery_txt ------------ '1' & '2' (1 row) -select '1&(2)'::mquery_txt; +SELECT '1&(2)'::mquery_txt; mquery_txt ------------ '1' & '2' (1 row) -select '!(1)&2'::mquery_txt; +SELECT '!(1)&2'::mquery_txt; mquery_txt ------------ !'1' & '2' (1 row) -select '!(1&2)'::mquery_txt; +SELECT '!(1&2)'::mquery_txt; mquery_txt ---------------- !( '1' & '2' ) (1 row) -select '1|2&3'::mquery_txt; +SELECT '1|2&3'::mquery_txt; mquery_txt ----------------- '1' | '2' & '3' (1 row) -select '1|(2&3)'::mquery_txt; +SELECT '1|(2&3)'::mquery_txt; mquery_txt ----------------- '1' | '2' & '3' (1 row) -select '(1|2)&3'::mquery_txt; +SELECT '(1|2)&3'::mquery_txt; mquery_txt --------------------- ( '1' | '2' ) & '3' (1 row) -select '1|2&!3'::mquery_txt; +SELECT '1|2&!3'::mquery_txt; mquery_txt ------------------ '1' | '2' & !'3' (1 row) -select '1|!2&3'::mquery_txt; +SELECT '1|!2&3'::mquery_txt; mquery_txt ------------------ '1' | !'2' & '3' (1 row) -select '!1|2&3'::mquery_txt; +SELECT '!1|2&3'::mquery_txt; mquery_txt ------------------ !'1' | '2' & '3' (1 row) -select '!1|(2&3)'::mquery_txt; +SELECT '!1|(2&3)'::mquery_txt; mquery_txt ------------------ !'1' | '2' & '3' (1 row) -select '!(1|2)&3'::mquery_txt; +SELECT '!(1|2)&3'::mquery_txt; mquery_txt ---------------------- !( '1' | '2' ) & '3' (1 row) -select '(!1|2)&3'::mquery_txt; +SELECT '(!1|2)&3'::mquery_txt; mquery_txt ---------------------- ( !'1' | '2' ) & '3' (1 row) -select '1|(2|(4|(5|6)))'::mquery_txt; +SELECT '1|(2|(4|(5|6)))'::mquery_txt; mquery_txt ----------------------------------------- '1' | ( '2' | ( '4' | ( '5' | '6' ) ) ) (1 row) -select '1|2|4|5|6'::mquery_txt; +SELECT '1|2|4|5|6'::mquery_txt; mquery_txt ----------------------------------------- ( ( ( '1' | '2' ) | '4' ) | '5' ) | '6' (1 row) -select '1&(2&(4&(5&6)))'::mquery_txt; +SELECT '1&(2&(4&(5&6)))'::mquery_txt; mquery_txt ----------------------------- '1' & '2' & '4' & '5' & '6' (1 row) -select '1&2&4&5&6'::mquery_txt; +SELECT '1&2&4&5&6'::mquery_txt; mquery_txt ----------------------------- '1' & '2' & '4' & '5' & '6' (1 row) -select '1&(2&(4&(5|6)))'::mquery_txt; +SELECT '1&(2&(4&(5|6)))'::mquery_txt; mquery_txt --------------------------------- '1' & '2' & '4' & ( '5' | '6' ) (1 row) -select '1&(2&(4&(5|!6)))'::mquery_txt; +SELECT '1&(2&(4&(5|!6)))'::mquery_txt; mquery_txt ---------------------------------- '1' & '2' & '4' & ( '5' | !'6' ) (1 row) -select '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::mquery_txt; +SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::mquery_txt; mquery_txt --------------------------------- '1' & '2' & '4' & ( '5' | '6' ) (1 row) -select 'querty-fgries | http://www.google.com/index.html | www.rambler.ru/index.shtml'::mquery_txt; +SELECT 'querty-fgries | http://www.google.com/index.html | www.rambler.ru/index.shtml'::mquery_txt; mquery_txt --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ( 'querty-fgri' & 'querti' & 'fgri' | 'www.google.com/index.html' & 'www.google.com' & '/index.html' ) | 'www.rambler.ru/index.shtml' & 'www.rambler.ru' & '/index.shtml' @@ -694,7 +694,7 @@ SELECT count(*) FROM test_txtidx WHERE a ## '(eq|yt)&(wR|qh)'; 11 (1 row) -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>"> +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>"> /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 <i <b> wow < jqw <> qwerty'); txt2txtidx @@ -702,13 +702,13 @@ select txt2txtidx('345 qwe@efd.r \' http://www.com/ http://aew.werc.ewr/?ad=qwe& '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' (1 row) -select txtidxsize(txt2txtidx('345 qw')); +SELECT txtidxsize(txt2txtidx('345 qw')); txtidxsize ------------ 2 (1 row) -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>"> +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>"> /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 <i <b> wow < jqw <> qwerty')); txtidxsize @@ -716,30 +716,31 @@ select txtidxsize(txt2txtidx('345 qwe@efd.r \' http://www.com/ http://aew.werc.e 53 (1 row) -insert into test_txtidx (a) values ('345 qwerty'); -create trigger txtidxupdate before update or insert on test_txtidx -for each row execute procedure tsearch(a, t); -insert into test_txtidx (t) values ('345 qwerty'); -select count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; +INSERT INTO test_txtidx (a) VALUES ('345 qwerty'); +CREATE TRIGGER txtidxupdate +BEFORE UPDATE OR INSERT ON test_txtidx +FOR EACH ROW EXECUTE PROCEDURE tsearch(a, t); +INSERT INTO test_txtidx (t) VALUES ('345 qwerty'); +SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; count ------- 1 (1 row) -select count(*) FROM test_txtidx WHERE a ## '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty'; count ------- 1 (1 row) -update test_txtidx set t = null where t = '345 qwerty'; -select count(*) FROM test_txtidx WHERE a ## '345&qwerty'; +UPDATE test_txtidx SET t = null WHERE t = '345 qwerty'; +SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty'; count ------- 0 (1 row) -select count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; count ------- 1 diff --git a/contrib/tsearch/sql/tsearch.sql b/contrib/tsearch/sql/tsearch.sql index d863fa743c..5b0b50afca 100644 --- a/contrib/tsearch/sql/tsearch.sql +++ b/contrib/tsearch/sql/tsearch.sql @@ -3,101 +3,102 @@ -- does not depend on contents of seg.sql. -- \set ECHO none +SET autocommit TO 'on'; \i tsearch.sql \set ECHO all --txtidx -select '1'::txtidx; -select '1 '::txtidx; -select ' 1'::txtidx; -select ' 1 '::txtidx; -select '1 2'::txtidx; -select '\'1 2\''::txtidx; -select '\'1 \\\'2\''::txtidx; -select '\'1 \\\'2\'3'::txtidx; -select '\'1 \\\'2\' 3'::txtidx; -select '\'1 \\\'2\' \' 3\' 4 '::txtidx; +SELECT '1'::txtidx; +SELECT '1 '::txtidx; +SELECT ' 1'::txtidx; +SELECT ' 1 '::txtidx; +SELECT '1 2'::txtidx; +SELECT '\'1 2\''::txtidx; +SELECT '\'1 \\\'2\''::txtidx; +SELECT '\'1 \\\'2\'3'::txtidx; +SELECT '\'1 \\\'2\' 3'::txtidx; +SELECT '\'1 \\\'2\' \' 3\' 4 '::txtidx; --query_txt -select '1'::query_txt; -select '1 '::query_txt; -select ' 1'::query_txt; -select ' 1 '::query_txt; -select '\'1 2\''::query_txt; -select '\'1 \\\'2\''::query_txt; -select '!1'::query_txt; -select '1|2'::query_txt; -select '1|!2'::query_txt; -select '!1|2'::query_txt; -select '!1|!2'::query_txt; -select '!(!1|!2)'::query_txt; -select '!(!1|2)'::query_txt; -select '!(1|!2)'::query_txt; -select '!(1|2)'::query_txt; -select '1&2'::query_txt; -select '!1&2'::query_txt; -select '1&!2'::query_txt; -select '!1&!2'::query_txt; -select '(1&2)'::query_txt; -select '1&(2)'::query_txt; -select '!(1)&2'::query_txt; -select '!(1&2)'::query_txt; -select '1|2&3'::query_txt; -select '1|(2&3)'::query_txt; -select '(1|2)&3'::query_txt; -select '1|2&!3'::query_txt; -select '1|!2&3'::query_txt; -select '!1|2&3'::query_txt; -select '!1|(2&3)'::query_txt; -select '!(1|2)&3'::query_txt; -select '(!1|2)&3'::query_txt; -select '1|(2|(4|(5|6)))'::query_txt; -select '1|2|4|5|6'::query_txt; -select '1&(2&(4&(5&6)))'::query_txt; -select '1&2&4&5&6'::query_txt; -select '1&(2&(4&(5|6)))'::query_txt; -select '1&(2&(4&(5|!6)))'::query_txt; -select '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::query_txt; -select '1'::mquery_txt; -select '1 '::mquery_txt; -select ' 1'::mquery_txt; -select ' 1 '::mquery_txt; -select '\'1 2\''::mquery_txt; -select '\'1 \\\'2\''::mquery_txt; -select '!1'::mquery_txt; -select '1|2'::mquery_txt; -select '1|!2'::mquery_txt; -select '!1|2'::mquery_txt; -select '!1|!2'::mquery_txt; -select '!(!1|!2)'::mquery_txt; -select '!(!1|2)'::mquery_txt; -select '!(1|!2)'::mquery_txt; -select '!(1|2)'::mquery_txt; -select '1&2'::mquery_txt; -select '!1&2'::mquery_txt; -select '1&!2'::mquery_txt; -select '!1&!2'::mquery_txt; -select '(1&2)'::mquery_txt; -select '1&(2)'::mquery_txt; -select '!(1)&2'::mquery_txt; -select '!(1&2)'::mquery_txt; -select '1|2&3'::mquery_txt; -select '1|(2&3)'::mquery_txt; -select '(1|2)&3'::mquery_txt; -select '1|2&!3'::mquery_txt; -select '1|!2&3'::mquery_txt; -select '!1|2&3'::mquery_txt; -select '!1|(2&3)'::mquery_txt; -select '!(1|2)&3'::mquery_txt; -select '(!1|2)&3'::mquery_txt; -select '1|(2|(4|(5|6)))'::mquery_txt; -select '1|2|4|5|6'::mquery_txt; -select '1&(2&(4&(5&6)))'::mquery_txt; -select '1&2&4&5&6'::mquery_txt; -select '1&(2&(4&(5|6)))'::mquery_txt; -select '1&(2&(4&(5|!6)))'::mquery_txt; -select '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::mquery_txt; -select 'querty-fgries | http://www.google.com/index.html | www.rambler.ru/index.shtml'::mquery_txt; +SELECT '1'::query_txt; +SELECT '1 '::query_txt; +SELECT ' 1'::query_txt; +SELECT ' 1 '::query_txt; +SELECT '\'1 2\''::query_txt; +SELECT '\'1 \\\'2\''::query_txt; +SELECT '!1'::query_txt; +SELECT '1|2'::query_txt; +SELECT '1|!2'::query_txt; +SELECT '!1|2'::query_txt; +SELECT '!1|!2'::query_txt; +SELECT '!(!1|!2)'::query_txt; +SELECT '!(!1|2)'::query_txt; +SELECT '!(1|!2)'::query_txt; +SELECT '!(1|2)'::query_txt; +SELECT '1&2'::query_txt; +SELECT '!1&2'::query_txt; +SELECT '1&!2'::query_txt; +SELECT '!1&!2'::query_txt; +SELECT '(1&2)'::query_txt; +SELECT '1&(2)'::query_txt; +SELECT '!(1)&2'::query_txt; +SELECT '!(1&2)'::query_txt; +SELECT '1|2&3'::query_txt; +SELECT '1|(2&3)'::query_txt; +SELECT '(1|2)&3'::query_txt; +SELECT '1|2&!3'::query_txt; +SELECT '1|!2&3'::query_txt; +SELECT '!1|2&3'::query_txt; +SELECT '!1|(2&3)'::query_txt; +SELECT '!(1|2)&3'::query_txt; +SELECT '(!1|2)&3'::query_txt; +SELECT '1|(2|(4|(5|6)))'::query_txt; +SELECT '1|2|4|5|6'::query_txt; +SELECT '1&(2&(4&(5&6)))'::query_txt; +SELECT '1&2&4&5&6'::query_txt; +SELECT '1&(2&(4&(5|6)))'::query_txt; +SELECT '1&(2&(4&(5|!6)))'::query_txt; +SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::query_txt; +SELECT '1'::mquery_txt; +SELECT '1 '::mquery_txt; +SELECT ' 1'::mquery_txt; +SELECT ' 1 '::mquery_txt; +SELECT '\'1 2\''::mquery_txt; +SELECT '\'1 \\\'2\''::mquery_txt; +SELECT '!1'::mquery_txt; +SELECT '1|2'::mquery_txt; +SELECT '1|!2'::mquery_txt; +SELECT '!1|2'::mquery_txt; +SELECT '!1|!2'::mquery_txt; +SELECT '!(!1|!2)'::mquery_txt; +SELECT '!(!1|2)'::mquery_txt; +SELECT '!(1|!2)'::mquery_txt; +SELECT '!(1|2)'::mquery_txt; +SELECT '1&2'::mquery_txt; +SELECT '!1&2'::mquery_txt; +SELECT '1&!2'::mquery_txt; +SELECT '!1&!2'::mquery_txt; +SELECT '(1&2)'::mquery_txt; +SELECT '1&(2)'::mquery_txt; +SELECT '!(1)&2'::mquery_txt; +SELECT '!(1&2)'::mquery_txt; +SELECT '1|2&3'::mquery_txt; +SELECT '1|(2&3)'::mquery_txt; +SELECT '(1|2)&3'::mquery_txt; +SELECT '1|2&!3'::mquery_txt; +SELECT '1|!2&3'::mquery_txt; +SELECT '!1|2&3'::mquery_txt; +SELECT '!1|(2&3)'::mquery_txt; +SELECT '!(1|2)&3'::mquery_txt; +SELECT '(!1|2)&3'::mquery_txt; +SELECT '1|(2|(4|(5|6)))'::mquery_txt; +SELECT '1|2|4|5|6'::mquery_txt; +SELECT '1&(2&(4&(5&6)))'::mquery_txt; +SELECT '1&2&4&5&6'::mquery_txt; +SELECT '1&(2&(4&(5|6)))'::mquery_txt; +SELECT '1&(2&(4&(5|!6)))'::mquery_txt; +SELECT '1&(\'2\'&(\' 4\'&(\\|5 | \'6 \\\' !|&\')))'::mquery_txt; +SELECT 'querty-fgries | http://www.google.com/index.html | www.rambler.ru/index.shtml'::mquery_txt; CREATE TABLE test_txtidx( t text, a txtidx ); @@ -133,30 +134,31 @@ SELECT count(*) FROM test_txtidx WHERE a ## 'eq|yt'; SELECT count(*) FROM test_txtidx WHERE a ## '(eq&yt)|(wR&qh)'; SELECT count(*) FROM test_txtidx WHERE a ## '(eq|yt)&(wR|qh)'; -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>"> +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>"> /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 <i <b> wow < jqw <> qwerty'); -select txtidxsize(txt2txtidx('345 qw')); +SELECT txtidxsize(txt2txtidx('345 qw')); -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>"> +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>"> /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 <i <b> wow < jqw <> qwerty')); -insert into test_txtidx (a) values ('345 qwerty'); +INSERT INTO test_txtidx (a) VALUES ('345 qwerty'); -create trigger txtidxupdate before update or insert on test_txtidx -for each row execute procedure tsearch(a, t); +CREATE TRIGGER txtidxupdate +BEFORE UPDATE OR INSERT ON test_txtidx +FOR EACH ROW EXECUTE PROCEDURE tsearch(a, t); -insert into test_txtidx (t) values ('345 qwerty'); +INSERT INTO test_txtidx (t) VALUES ('345 qwerty'); -select count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; -select count(*) FROM test_txtidx WHERE a ## '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty'; -update test_txtidx set t = null where t = '345 qwerty'; +UPDATE test_txtidx SET t = null WHERE t = '345 qwerty'; -select count(*) FROM test_txtidx WHERE a ## '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a ## '345&qwerty'; -select count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; +SELECT count(*) FROM test_txtidx WHERE a @@ '345&qwerty'; diff --git a/contrib/tsearch/tsearch.sql.in b/contrib/tsearch/tsearch.sql.in index a709a14758..4577fa02e8 100644 --- a/contrib/tsearch/tsearch.sql.in +++ b/contrib/tsearch/tsearch.sql.in @@ -1,173 +1,213 @@ -BEGIN TRANSACTION; - -- Adjust this setting to control where the objects get created. SET search_path = public; +SET autocommit TO 'on'; + -- TXTIDX type CREATE FUNCTION txtidx_in(cstring) RETURNS txtidx AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE FUNCTION txtidx_out(txtidx) RETURNS cstring AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE TYPE txtidx ( -internallength = -1, -input = txtidx_in, -output = txtidx_out, -storage = extended + INTERNALLENGTH = -1, + INPUT = txtidx_in, + OUTPUT = txtidx_out, + STORAGE = extended ); CREATE FUNCTION txt2txtidx(text) RETURNS txtidx AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE FUNCTION txtidxsize(txtidx) RETURNS int4 AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); --QUERYTYPES --without morphology CREATE FUNCTION qtxt_in(cstring) RETURNS query_txt AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE FUNCTION qtxt_out(query_txt) RETURNS cstring AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE TYPE query_txt ( -internallength = -1, -input = qtxt_in, -output = qtxt_out + INTERNALLENGTH = -1, + INPUT = qtxt_in, + OUTPUT = qtxt_out ); --with morphology CREATE FUNCTION mqtxt_in(cstring) RETURNS mquery_txt AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); --same C output function as for query_txt CREATE FUNCTION mqtxt_out(mquery_txt) RETURNS cstring AS 'MODULE_PATHNAME', 'qtxt_out' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE TYPE mquery_txt ( -internallength = -1, -input = mqtxt_in, -output = mqtxt_out + INTERNALLENGTH = -1, + INPUT = mqtxt_in, + OUTPUT = mqtxt_out ); --only for debug CREATE FUNCTION querytree(query_txt) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE FUNCTION querytree(mquery_txt) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); --operations -CREATE FUNCTION execqtxt(txtidx, query_txt) RETURNS bool - AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +CREATE FUNCTION execqtxt(txtidx, query_txt) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); COMMENT ON FUNCTION execqtxt(txtidx, query_txt) IS 'boolean operation with text index'; -CREATE FUNCTION execqtxt(txtidx, mquery_txt) RETURNS bool - AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +CREATE FUNCTION execqtxt(txtidx, mquery_txt) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); COMMENT ON FUNCTION execqtxt(txtidx, mquery_txt) IS 'boolean operation with text index'; -CREATE FUNCTION rexecqtxt(query_txt, txtidx) RETURNS bool - AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +CREATE FUNCTION rexecqtxt(query_txt, txtidx) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); COMMENT ON FUNCTION rexecqtxt(query_txt, txtidx) IS 'boolean operation with text index'; -CREATE FUNCTION rexecqtxt(mquery_txt, txtidx) RETURNS bool - AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +CREATE FUNCTION rexecqtxt(mquery_txt, txtidx) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); COMMENT ON FUNCTION rexecqtxt(mquery_txt, txtidx) IS 'boolean operation with text index'; CREATE OPERATOR @@ ( - LEFTARG = txtidx, RIGHTARG = query_txt, PROCEDURE = execqtxt, - COMMUTATOR = '~@', RESTRICT = contsel, JOIN = contjoinsel + LEFTARG = txtidx, + RIGHTARG = query_txt, + PROCEDURE = execqtxt, + COMMUTATOR = '~@', + RESTRICT = contsel, + JOIN = contjoinsel ); CREATE OPERATOR ~@ ( - LEFTARG = query_txt, RIGHTARG = txtidx, PROCEDURE = rexecqtxt, - COMMUTATOR = '@@', RESTRICT = contsel, JOIN = contjoinsel + LEFTARG = query_txt, + RIGHTARG = txtidx, + PROCEDURE = rexecqtxt, + COMMUTATOR = '@@', + RESTRICT = contsel, + JOIN = contjoinsel ); CREATE OPERATOR ## ( - LEFTARG = txtidx, RIGHTARG = mquery_txt, PROCEDURE = execqtxt, - COMMUTATOR = '~#', RESTRICT = contsel, JOIN = contjoinsel + LEFTARG = txtidx, + RIGHTARG = mquery_txt, + PROCEDURE = execqtxt, + COMMUTATOR = '~#', + RESTRICT = contsel, + JOIN = contjoinsel ); CREATE OPERATOR ~# ( - LEFTARG = mquery_txt, RIGHTARG = txtidx, PROCEDURE = rexecqtxt, - COMMUTATOR = '##', RESTRICT = contsel, JOIN = contjoinsel + LEFTARG = mquery_txt, + RIGHTARG = txtidx, + PROCEDURE = rexecqtxt, + COMMUTATOR = '##', + RESTRICT = contsel, + JOIN = contjoinsel ); --Trigger -create function tsearch() returns trigger as - 'MODULE_PATHNAME' - language 'C'; +CREATE FUNCTION tsearch() +RETURNS trigger +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; --GiST --GiST key type CREATE FUNCTION gtxtidx_in(cstring) RETURNS gtxtidx AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE FUNCTION gtxtidx_out(gtxtidx) RETURNS cstring AS 'MODULE_PATHNAME' -LANGUAGE 'c' with (isstrict); +LANGUAGE 'C' with (isstrict); CREATE TYPE gtxtidx ( -internallength = -1, -input = gtxtidx_in, -output = gtxtidx_out + INTERNALLENGTH = -1, + INPUT = gtxtidx_in, + OUTPUT = gtxtidx_out ); -- support functions -CREATE FUNCTION gtxtidx_consistent(gtxtidx,internal,int4) RETURNS bool - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_consistent(gtxtidx,internal,int4) +RETURNS bool +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -CREATE FUNCTION gtxtidx_compress(internal) RETURNS internal - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_compress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -CREATE FUNCTION gtxtidx_decompress(internal) RETURNS internal - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_decompress(internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -CREATE FUNCTION gtxtidx_penalty(internal,internal,internal) RETURNS internal - AS 'MODULE_PATHNAME' LANGUAGE 'c' with (isstrict); +CREATE FUNCTION gtxtidx_penalty(internal,internal,internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C' with (isstrict); -CREATE FUNCTION gtxtidx_picksplit(internal, internal) RETURNS internal - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_picksplit(internal, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -CREATE FUNCTION gtxtidx_union(bytea, internal) RETURNS _int4 - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_union(bytea, internal) +RETURNS _int4 +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -CREATE FUNCTION gtxtidx_same(gtxtidx, gtxtidx, internal) RETURNS internal - AS 'MODULE_PATHNAME' LANGUAGE 'c'; +CREATE FUNCTION gtxtidx_same(gtxtidx, gtxtidx, internal) +RETURNS internal +AS 'MODULE_PATHNAME' +LANGUAGE 'C'; -- create the operator class CREATE OPERATOR CLASS gist_txtidx_ops - DEFAULT FOR TYPE txtidx USING gist AS +DEFAULT FOR TYPE txtidx USING gist +AS OPERATOR 1 @@ (txtidx, query_txt) RECHECK , OPERATOR 2 ## (txtidx, mquery_txt) RECHECK , FUNCTION 1 gtxtidx_consistent (gtxtidx, internal, int4), @@ -178,6 +218,3 @@ CREATE OPERATOR CLASS gist_txtidx_ops FUNCTION 6 gtxtidx_picksplit (internal, internal), FUNCTION 7 gtxtidx_same (gtxtidx, gtxtidx, internal), STORAGE gtxtidx; - - -END TRANSACTION; |
