Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8427ad0

Browse files
author
Artur Zakirov
committed
Fix inconsistency result with index scan using negation query.
For example, the following queries have returned wrong results:SELECT t FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '!gave & way');SELECT t FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '!gave & wooded & !look');But the following query have returned right result:SELECT t FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', 'gave & !way');Now all queries return right results.
1 parent0700d5d commit8427ad0

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

‎expected/rum.out

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '(gave
8282
2
8383
(1 row)
8484

85+
SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '(gave | !half) <-> way');
86+
count
87+
-------
88+
3
89+
(1 row)
90+
91+
SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '!gave & way');
92+
count
93+
-------
94+
3
95+
(1 row)
96+
97+
SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', '!gave & wooded & !look');
98+
count
99+
-------
100+
1
101+
(1 row)
102+
85103
SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english',
86104
'def <-> fgr');
87105
count

‎rumget.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2020,7 +2020,8 @@ scanGetItemFast(IndexScanDesc scan, RumKey *advancePast,
20202020
if (!callConsistentFn(&so->rumstate,key))
20212021
{
20222022
consistentResult= false;
2023-
entryShift(k,so, false);
2023+
for (j=k;j<so->totalentries;j++)
2024+
entryShift(j,so, false);
20242025
continue;
20252026
}
20262027
}

‎sql/rum.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ SELECT count(*) FROM test_rum WHERE a @@ to_tsquery('pg_catalog.english', 'among
2828
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','structure&ancient');
2929
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','(complimentary|sight)&(sending|heart)');
3030
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','(gave | half) <-> way');
31+
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','(gave | !half) <-> way');
32+
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','!gave & way');
33+
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english','!gave & wooded & !look');
3134
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english',
3235
'def <-> fgr');
3336
SELECTcount(*)FROM test_rumWHERE a @@ to_tsquery('pg_catalog.english',

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp