[SQL] Partitioning by letter question

2010-01-29 Thread John Lister
Hi, I was wondering if this was possible. I'm trying to partition a 
table, which is straightforward enough thanks to the great 
documentation, but i have a question:


If I partition using something like a product_id for example and have 
check constraints such as (id>=1000 and id<2000) then everything is fine 
and the planner correctly uses the right subset of the tables. However I 
would like to partition by the first letter and using something like 
this substr(word,1,1)='a' is ignored by the planner. From reading the 
docs I understand that complicated check constraints are ignored, but 
this doesn't seem overly complicated.


Am i doing  something wrong or is there another better way to do this

Thanks

John

--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql


Re: [SQL] Partitioning by letter question

2010-01-29 Thread Scott Marlowe
On Fri, Jan 29, 2010 at 3:24 PM, John Lister
 wrote:
> Hi, I was wondering if this was possible. I'm trying to partition a table,
> which is straightforward enough thanks to the great documentation, but i
> have a question:
>
> If I partition using something like a product_id for example and have check
> constraints such as (id>=1000 and id<2000) then everything is fine and the
> planner correctly uses the right subset of the tables. However I would like
> to partition by the first letter and using something like this
> substr(word,1,1)='a' is ignored by the planner. From reading the docs I
> understand that complicated check constraints are ignored, but this doesn't
> seem overly complicated.
>
> Am i doing  something wrong or is there another better way to do this

Have you tried:

(word >= 'a' and word <'b')

?

-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql