@@ -9,6 +9,7 @@ INSERT INTO test_invrum VALUES ('(a|b)&c'::tsquery);
99INSERT INTO test_invrum VALUES ('(!(a|b))&c'::tsquery);
1010INSERT INTO test_invrum VALUES ('(a|b)&(c|d)'::tsquery);
1111INSERT INTO test_invrum VALUES ('!a'::tsquery);
12+ INSERT INTO test_invrum VALUES ('a&!(b&c)'::tsquery);
1213INSERT INTO test_invrum VALUES ('(a|a1|a2|a3|a4|a5)&(b|b1|b2|b3|b4|b5|b6)&!(c|c1|c2|c3)'::tsquery);
1314SELECT * FROM test_invrum WHERE q @@ ''::tsvector;
1415 q
@@ -20,12 +21,13 @@ SELECT * FROM test_invrum WHERE q @@ ''::tsvector;
2021(4 rows)
2122
2223SELECT * FROM test_invrum WHERE q @@ 'a'::tsvector;
23- q
24- ----------------
24+ q
25+ ----------------------
2526 'a' | 'b'
2627 !( 'a' & 'b' )
2728 'a' & !'b'
28- (3 rows)
29+ 'a' & !( 'b' & 'c' )
30+ (4 rows)
2931
3032SELECT * FROM test_invrum WHERE q @@ 'b'::tsvector;
3133 q
@@ -42,8 +44,9 @@ SELECT * FROM test_invrum WHERE q @@ 'a b'::tsvector;
4244 'a' | 'b'
4345 'a' & 'b'
4446 !'a' | 'b'
47+ 'a' & !( 'b' & 'c' )
4548 ( 'a' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' ) & ( 'b' | 'b1' | 'b2' | 'b3' | 'b4' | 'b5' | 'b6' ) & !( 'c' | 'c1' | 'c2' | 'c3' )
46- (4 rows)
49+ (5 rows)
4750
4851SELECT * FROM test_invrum WHERE q @@ 'c'::tsvector;
4952 q
@@ -63,7 +66,8 @@ SELECT * FROM test_invrum WHERE q @@ 'a c'::tsvector;
6366 'a' & !'b'
6467 ( 'a' | 'b' ) & 'c'
6568 ( 'a' | 'b' ) & ( 'c' | 'd' )
66- (5 rows)
69+ 'a' & !( 'b' & 'c' )
70+ (6 rows)
6771
6872SELECT * FROM test_invrum WHERE q @@ 'b c'::tsvector;
6973 q
@@ -102,7 +106,8 @@ SELECT * FROM test_invrum WHERE q @@ 'a d'::tsvector;
102106 !( 'a' & 'b' )
103107 'a' & !'b'
104108 ( 'a' | 'b' ) & ( 'c' | 'd' )
105- (4 rows)
109+ 'a' & !( 'b' & 'c' )
110+ (5 rows)
106111
107112SELECT * FROM test_invrum WHERE q @@ 'b d'::tsvector;
108113 q
@@ -121,8 +126,9 @@ SELECT * FROM test_invrum WHERE q @@ 'a b d'::tsvector;
121126 'a' & 'b'
122127 !'a' | 'b'
123128 ( 'a' | 'b' ) & ( 'c' | 'd' )
129+ 'a' & !( 'b' & 'c' )
124130 ( 'a' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' ) & ( 'b' | 'b1' | 'b2' | 'b3' | 'b4' | 'b5' | 'b6' ) & !( 'c' | 'c1' | 'c2' | 'c3' )
125- (5 rows)
131+ (6 rows)
126132
127133SELECT * FROM test_invrum WHERE q @@ 'c d'::tsvector;
128134 q
@@ -142,7 +148,8 @@ SELECT * FROM test_invrum WHERE q @@ 'a c d'::tsvector;
142148 'a' & !'b'
143149 ( 'a' | 'b' ) & 'c'
144150 ( 'a' | 'b' ) & ( 'c' | 'd' )
145- (5 rows)
151+ 'a' & !( 'b' & 'c' )
152+ (6 rows)
146153
147154CREATE INDEX test_invrum_idx ON test_invrum USING rum(q);
148155SET enable_seqscan = OFF;
@@ -152,12 +159,13 @@ SELECT * FROM test_invrum WHERE q @@ ''::tsvector;
152159(0 rows)
153160
154161SELECT * FROM test_invrum WHERE q @@ 'a'::tsvector;
155- q
156- ----------------
162+ q
163+ ----------------------
157164 'a' | 'b'
158165 !( 'a' & 'b' )
159166 'a' & !'b'
160- (3 rows)
167+ 'a' & !( 'b' & 'c' )
168+ (4 rows)
161169
162170SELECT * FROM test_invrum WHERE q @@ 'b'::tsvector;
163171 q
@@ -234,7 +242,8 @@ SELECT * FROM test_invrum WHERE q @@ 'a d'::tsvector;
234242 !( 'a' & 'b' )
235243 'a' & !'b'
236244 ( 'a' | 'b' ) & ( 'c' | 'd' )
237- (4 rows)
245+ 'a' & !( 'b' & 'c' )
246+ (5 rows)
238247
239248SELECT * FROM test_invrum WHERE q @@ 'b d'::tsvector;
240249 q
0 commit comments