Hi,

On Sat, 12 Mar 2005, Mike Rylander wrote:

Back to the original question on this thread, and using PG 8.0.1.
Perhaps someone would like to poke holes in this (other than the need
to set up fkeys and indexes on the inherited tables...):

-------------------------------------------------------------------------------

begin;
create schema partition_test;
set search_path to partition_test,public;

create table test_base ( id serial, value text, partitioner timestamp
with time zone default now());
create table test_2005_03 () inherits (test_base);
create table test_2005_04 () inherits (test_base);

create rule base_partitioner_test_2005_03 as on insert
       to test_base where partitioner AT TIME ZONE 'UTC' between
'2005-03-01'::timestamp and '2005-04-01'::timestamp
               do instead insert into test_2005_03 values (NEW.*);

create rule base_partitioner_test_2005_04 as on insert
       to test_base where partitioner AT TIME ZONE 'UTC' between
'2005-04-01'::timestamp and '2005-05-01'::timestamp
               do instead insert into test_2005_04 values (NEW.*);

insert into test_base (value) values ('first string');
insert into test_base (value, partitioner) values ('a string',
'2004-01-30 10:17:08');
insert into test_base (value, partitioner) values ('a string',
'2005-04-01 14:17:08');

explain analyze select * from test_base;
select tableoid::regclass,* from test_base;

rollback;

-------------------------------------------------------------------------------

any ideas how we would get

        select * from test_base where partitioner between a and b

to just look in the correct partition and not doing a full sweep over
the other partitions or the base.

Greetings
Christian

--
Christian Kratzer                       [EMAIL PROTECTED]
CK Software GmbH                        http://www.cksoft.de/
Phone: +49 7452 889 135                 Fax: +49 7452 889 136

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to