ERROR: Gin doesn't support full scan due to it's awful inefficiency
От | Charlie Savage |
---|---|
Тема | ERROR: Gin doesn't support full scan due to it's awful inefficiency |
Дата | |
Msg-id | 44FDF8DD.9000703@savagexi.com обсуждение исходный текст |
Ответы |
Re: ERROR: Gin doesn't support full scan due to it's awful
|
Список | pgsql-general |
I've run across another GIN index issue - using postgresql 8.1.4 on Window/Linux with the GIN/tsearch2 patch. I have two tables like this: CREATE TABLE maps ( id serial, query tsearch2.tsquery ) CREATE TABLE features ( id serial, vector tsearch2.tsvector ) CREATE INDEX idx_features_tags_vector ON features USING gin (tags_vector); Where maps.query contains cached tsquery (they are cached for performance reasons). When I run this query: select * from maps, features where to_tsquery('test') @@ features.tags_vector I get this error: ERROR: Gin doesn't support full scan due to it's awful inefficiency Here is explain (from a very small test database): Nested Loop (cost=0.00..1878.71 rows=370 width=208) -> Seq Scan on maps (cost=0.00..14.80 rows=480 width=136) -> Index Scan using idx_features_tags_vector on features (cost=0.00..3.87 rows=1 width=72) Index Cond: ("outer".query @@ features.tags_vector) I thought that this would solve my problem: set enable_indexscan to off; But it does not. Interestingly, this does work: select * from features where to_tsquery('test') @@ features.tags_vector; Explain: Index Scan using idx_features_tags_vector on features (cost=0.00..3.87 rows=1 width=72) Index Cond: ('''test'''::tsquery @@ tags_vector) At first I thought the issue was that you couldn't use an Index Scan on gin index, but that now seems like an incorrect conclusion. So, two things: 1. How do I work around this issue? 2. Seems like postgresql should be smart enough to pick a query that will run. Thanks, Charlie
В списке pgsql-general по дате отправления: