mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Resurrect the code for the rewrite(ARRAY[...]) aggregate function,
and put it into contrib/tsearch2 compatibility module.
This commit is contained in:
@ -472,6 +472,24 @@ select rewrite('bar & new & qq & foo & york', 'select keyword, sample from test
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY['moscow', keyword, sample] ) from test_tsquery;
|
||||
rewrite
|
||||
---------------------
|
||||
'moskva' | 'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY['moscow & hotel', keyword, sample] ) from test_tsquery;
|
||||
rewrite
|
||||
-----------------------------------
|
||||
( 'moskva' | 'moscow' ) & 'hotel'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY['bar & new & qq & foo & york', keyword, sample] ) from test_tsquery;
|
||||
rewrite
|
||||
-------------------------------------------------------------------------------------
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
select keyword from test_tsquery where keyword @> 'new';
|
||||
keyword
|
||||
----------------
|
||||
@ -495,6 +513,42 @@ select keyword from test_tsquery where keyword <@ 'moscow';
|
||||
'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow') as query where keyword <@ query;
|
||||
rewrite
|
||||
---------------------
|
||||
'moskva' | 'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow & hotel') as query where keyword <@ query;
|
||||
rewrite
|
||||
-----------------------------------
|
||||
( 'moskva' | 'moscow' ) & 'hotel'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'bar & new & qq & foo & york') as query where keyword <@ query;
|
||||
rewrite
|
||||
-------------------------------------------------------------------------------------
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow') as query where query @> keyword;
|
||||
rewrite
|
||||
---------------------
|
||||
'moskva' | 'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow & hotel') as query where query @> keyword;
|
||||
rewrite
|
||||
-----------------------------------
|
||||
( 'moskva' | 'moscow' ) & 'hotel'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'bar & new & qq & foo & york') as query where query @> keyword;
|
||||
rewrite
|
||||
-------------------------------------------------------------------------------------
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
create index qq on test_tsquery using gist (keyword gist_tp_tsquery_ops);
|
||||
set enable_seqscan='off';
|
||||
select keyword from test_tsquery where keyword @> 'new';
|
||||
@ -520,6 +574,42 @@ select keyword from test_tsquery where keyword <@ 'moscow';
|
||||
'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow') as query where keyword <@ query;
|
||||
rewrite
|
||||
---------------------
|
||||
'moskva' | 'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow & hotel') as query where keyword <@ query;
|
||||
rewrite
|
||||
-----------------------------------
|
||||
( 'moskva' | 'moscow' ) & 'hotel'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'bar & new & qq & foo & york') as query where keyword <@ query;
|
||||
rewrite
|
||||
-------------------------------------------------------------------------------------
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow') as query where query @> keyword;
|
||||
rewrite
|
||||
---------------------
|
||||
'moskva' | 'moscow'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'moscow & hotel') as query where query @> keyword;
|
||||
rewrite
|
||||
-----------------------------------
|
||||
( 'moskva' | 'moscow' ) & 'hotel'
|
||||
(1 row)
|
||||
|
||||
select rewrite( ARRAY[query, keyword, sample] ) from test_tsquery, to_tsquery('english', 'bar & new & qq & foo & york') as query where query @> keyword;
|
||||
rewrite
|
||||
-------------------------------------------------------------------------------------
|
||||
'citi' & 'foo' & ( 'bar' | 'qq' ) & ( 'nyc' | ( 'big' & 'appl' | 'new' & 'york' ) )
|
||||
(1 row)
|
||||
|
||||
set enable_seqscan='on';
|
||||
select lexize('simple', 'ASD56 hsdkf');
|
||||
lexize
|
||||
|
Reference in New Issue
Block a user