From: | "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com> |
---|---|
To: | Chris Hoover <revoohc(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, "pgsql-admin(at)postgresql(dot)org Admin" <pgsql-admin(at)postgresql(dot)org> |
Subject: | Re: 8.2.4 Won't Build 8.1 Functional Indexes |
Date: | 2007-06-07 04:35:39 |
Message-ID: | 46678B1B.4050303@commandprompt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Chris Hoover wrote:
> Well, the one index:
> CREATE INDEX acceptedbilling_to_date
> The second index is rather stupid, it was an early index before I
> figured out how to split a timestamp.
>
> Anyway, is there a way to make the first index work? Otherwise we end
> up with a seq scan on our billing table which is very painful.
First, please do not top post:
http://www.catb.org/jargon/html/T/top-post.html
Second:
create function mydate(varchar) returns varchar AS $$ select
to_char($1::date,'YYYYMMDD'); $$ LANGUAGE SQL IMMUTABLE;
create index foobar on date_test(mydate(date));
You will need to test this, but it does allow you to create the index.
Sincerely,
Joshua D. Drake
>
> Thanks,
>
> Chris
>
>
> On 6/6/07, *Tom Lane* <tgl(at)sss(dot)pgh(dot)pa(dot)us <mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>> wrote:
>
> Alvaro Herrera <alvherre(at)commandprompt(dot)com
> <mailto:alvherre(at)commandprompt(dot)com>> writes:
> > You can't do this because to_date and other functions are not
> immutable.
> > 8.2 seems to be more picky about this -- the date conversions of
> > timestamptz columns are dependent on the current timezone.
>
> The reason 8.2 is more picky is that the function is less immutable
> thanks to the addition of locale-dependent functionality:
> http://archives.postgresql.org/pgsql-committers/2006-11/msg00264.php
>
> I gather that the underlying column is timestamp without tz, or it would
> never have worked in 8.1 either. That being the case, these index
> definitions seem pretty darn stupid anyway --- why aren't you just
> indexing on date_trunc or a plain cast to date?
>
> regards, tom lane
>
>
--
=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/
Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/
From | Date | Subject | |
---|---|---|---|
Next Message | Jerry Huff | 2007-06-07 06:31:46 | WAL restore |
Previous Message | Ali, Luqman | 2007-06-07 03:27:03 | Re: Encountering errors while using pg_ctl |