Re: partition text/varchar check problem - Mailing list pgsql-performance

From Tom Lane
Subject Re: partition text/varchar check problem
Date
Msg-id 29283.1166284128@sss.pgh.pa.us
Whole thread Raw
In response to partition text/varchar check problem  (jamcito <jamcito@poczta.fm>)
Responses Re: partition text/varchar check problem -- solved
List pgsql-performance
jamcito <jamcito@poczta.fm> writes:
> I am trying to make partitions:

> CREATE TABLE data_a (CHECK (name LIKE varchar 'a%')
> ) INHERITS (data);
> --
> CREATE TABLE data_b (CHECK (name LIKE varchar 'b%')
> ) INHERITS (data);

That's not going to work because the planner is unable to prove anything
about the behavior of LIKE --- there is nothing in the system that
offers a relationship between the = operator and the LIKE operator.
You'll need something like

    CHECK (name >= 'a' AND name < 'b')
    CHECK (name >= 'b' AND name < 'c')

etc.  (These work for a query like "WHERE name = 'foo'" because
the >= < and = operators are all members of the same btree opclass,
so the planner knows how to reason about them.)

            regards, tom lane

pgsql-performance by date:

Previous
From: jamcito
Date:
Subject: partition text/varchar check problem
Next
From: Ron
Date:
Subject: Re: New to PostgreSQL, performance considerations