Partitioned tables not using index for min and max 8.2.7?

From: Tim Haak <timh(at)lucidview(dot)net>
To: pgsql-sql(at)postgresql(dot)org
Subject: Partitioned tables not using index for min and max 8.2.7?
Date: 2009-07-01 16:42:39
Message-ID: 4A4B91FF.8040308@lucidview.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi

I am running the following query again a partitioned table in 8.2.7. It
does index scans which is unexpected as there are indexes for the
log_date column.

min(log_date) from data.table

"Aggregate (cost=739932.02..739932.02 rows=1 width=8)"
" -> Append (cost=0.00..685106.21 rows=21930321 width=8)"
" -> Seq Scan on table (cost=0.00..33827.10 rows=1215710 width=8)"
" -> Seq Scan on table_yy2009mm03 table (cost=0.00..88056.39
rows=438839 width=8)"
" -> Seq Scan on table_yy2009mm04 table (cost=0.00..204606.67
rows=7344967 width=8)"
" -> Seq Scan on table_yy2009mm05 table (cost=0.00..159210.91
rows=5735091 width=8)"
" -> Seq Scan on table_yy2009mm06 table (cost=0.00..199393.74
rows=7195574 width=8)"
" -> Seq Scan on table_yy2009mm07 table (cost=0.00..11.40
rows=140 width=8)"

though if i run it only agains the one table it is significantly faster
and uses the index

select min(log_date) from only data.table

"Result (cost=0.06..0.07 rows=1 width=0)"
" InitPlan"
" -> Limit (cost=0.00..0.06 rows=1 width=8)"
" -> Index Scan using idx_table_log_date_only on table
(cost=0.00..68272.93 rows=1215710 width=8)"
" Filter: (log_date IS NOT NULL)"

Am I doing something wrong or is this expected.

I tried the old method of

SELECT col FROM table ORDER BY col DESC LIMIT 1

But it does not work either.

--
Tim Haak
Email: timh(at)lucidview(dot)net
Tel: +27 12 658 9019

Attachment Content-Type Size
timh.vcf text/x-vcard 170 bytes

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tena Sakai 2009-07-01 17:02:28 Re: it's not NULL, then what is it?
Previous Message Tamayo, Damian-p65828 2009-07-01 16:40:54 Xpath() return xml[]