Re: to pg - Mailing list pgsql-general

From Alban Hertroys
Subject Re: to pg
Date
Msg-id CAF-3MvP_8bXGk23tdsO36tYAWd7nZUV0LH9GGLOC5FxRM99GrQ@mail.gmail.com
Whole thread Raw
In response to to pg  (Ramesh T <rameshparnanditech@gmail.com>)
Responses Re: to pg
List pgsql-general
On 25 September 2015 at 13:08, Ramesh T <rameshparnanditech@gmail.com> wrote:
> CREATE UNIQUE INDEX idx_load_pick ON  pick (case picked when picked='y' then
> load_id else null end );
>
> how can i convert case expressed to postgres..above it is oracle.

Assuming that your queries are written in such a way that Oracle is
indeed using that index and you want your queries to use the index as
well in PG:

CREATE UNIQUE INDEX idx_load_pick ON (load_id) WHERE CASE picked WHEN
'y' THEN load_id ELSE NULL END IS NOT NULL;

That's definitely written a bit redundantly, that's Oracle's fault.

If your queries aren't like that, it's as Ladislav wrote. Much simpler in PG!


To make Oracle use your original index, your queries are probably of a
form containing snippets like:

SELECT *
FROM foo
WHERE CASE picked WHEN 'y' THEN load_id ELSE NULL END IS NOT NULL

BTW, your CASE statement isn't exactly valid, even in Oracle. Your
comparison is in fact this: picked = picked='y'.

--
If you can't see the forest for the trees,
Cut the trees and you'll see there is no forest.


pgsql-general by date:

Previous
From: Francisco Reyes
Date:
Subject: Re: Dropped connections with pg_basebackup
Next
From: Tom Lane
Date:
Subject: Re: to pg