BUG #14010: Multi-valued Index-only scans do not properly handle nulls in search
От | gtakahashi@palantir.com |
---|---|
Тема | BUG #14010: Multi-valued Index-only scans do not properly handle nulls in search |
Дата | |
Msg-id | 20160309165136.8903.83559@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #14010: Multi-valued Index-only scans do not properly handle nulls in search
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 14010 Logged by: Glen Takahashi Email address: gtakahashi@palantir.com PostgreSQL version: 9.3.6 Operating system: Red Hat Enterprise Linux Server release 6.7 Description: Example table: a | b ---+-------- a | b a | [NULL] a | [NULL] (repeated 100's of times) b | a select a,b from test_table where (a,b) > ('a','a') order by a,b; returns: a | b ---+--- a | b b | a (2 rows) create index on test_table (a,b); The same query now returns: a | b ---+--- a | b (1 row) However, the query without using `order by` returns the right values! select a,b from test where (a,b) > ('a','a'); a | b ---+--- a | b b | a (2 rows) If there are sufficiently small enough number of nulls in between (I got differing numbers from 100-200 depending on the table), the query will instead use a Quicksort for what I can only assume is optimization to avoid reading random pages, and will actually return the right value. I was able to get this to reproduce 100% of the time when using > 256 nulls in between ('a','b') and ('b','a');
В списке pgsql-bugs по дате отправления: