在一个简单的分区表中:
-- note: no records stored in base, only inheritors of base
create table base(
base_id bigint,
base_tp char(3) not null,
... );
create table base_abc(
base_id bigserial primary key,
base_tp default 'abc'
check( base_tp = 'abc' ),
...
) inherits( base );
create table base_efg(
base_id bigserial primary key,
base_tp default 'efg'
check( base_tp = 'efg' ),
...
) inherits( base );
如果要使用查询中的 where 子句base_tp
,例如,
select * from base where ... and base_tp='abc'
在 9.2 下,查询会被优化为仅选择表base_abc
,还是会像目前一样查询 a base
、base_abc
和base_efg
?