On Tue, Feb 3, 2009 at 5:40 PM, Jan Pazdziora <jpazdzi...@redhat.com> wrote:

> On Tue, Feb 03, 2009 at 04:21:29PM +0530, Gurjeet Singh wrote:
> > >
> > > _query_latest_version = rhnSQL.Statement("""
> > >    SELECT nvl(version, 0) version, version orig_version, cert,
> > >           TO_CHAR(issued, 'YYYY-MM-DD HH24:MI:SS') issued,
> > >           TO_CHAR(expires, 'YYYY-MM-DD HH24:MI:SS') expires
> > >      FROM rhnSatelliteCert
> > >     WHERE label = :label
> > >     ORDER BY version DESC NULLS LAST
> > > """)
> > >
> > > So rhnSatelliteCert needs some mappings, I think the TO_CHAR looks
> > > usable in PostgreSQL, is it just the nvl that needs to change here?
> > >
> > > You can see quite a few other queries in the file, I don't know how
> > > many of them are going to end up getting called but this is the first
> > > one I hit.
> >
> > As Jan said, nvl() is provided by Orafce. But I'd recommend using ANSI
> > standard COALESCE() for the purpose as that is available in both Oracle
> and
> > Postgres.
> >
> > BTW, I am more worried about the NULLS LAST part of the query. As I have
> > mentioned in the
> > Worklog<https://fedorahosted.org/spacewalk/wiki/PostgresWorklog>,
> > this feature is available in Postgres only since 8.3. And I have no
> freakin'
> > clue how to get the same behaviour in PG < 8.3!
>
> How about
>
>        order by decode(version, null, 1, 0), version
>
> ?


Yup... that'll work, but will mess up the ordering if more than one of
version's values is non-null.

SQL> select * from t order by decode( a, null, 1, 0 );

         A
----------
         1
         2
         4
         3



6 rows selected.

And again, I'd ask for CASE expression instead of DECODE.

ORDER BY
    CASE WHEN version IS NULL
         THEN -1 /*this should be less than any possible value of version*/
         ELSE version
    END
    DESC;

Or if we are too paranoid, we can replace -1 with

(select min(version)-1 from table)

;)

Best regards,
-- 
gurjeet[.sin...@enterprisedb.com
EnterpriseDB      http://www.enterprisedb.com

singh.gurj...@{ gmail | hotmail | indiatimes | yahoo }.com
_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to