mergejoin error message executing in 7.2 - Mailing list pgsql-sql

From kevin rowe
Subject mergejoin error message executing in 7.2
Date
Msg-id 000701c33fc1$b83dc600$3401a8c0@kevin
Whole thread Raw
Responses Re: mergejoin error message executing in 7.2  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
hi there,

I have a problem trying to execute a complex query that was designed in
7.3.2 to a machine running 7.2.x

this is the error message

FULL JOIN is only supported with mergejoinable join conditions

this is the source string for a jdbc prepared statement. (it has ordering
clause added at the end using string concatenation)
this string works fine in 7.3.2 but fails runtime in 7.2.

Does anyone know what the problem is?
I can't find the message on the net anywhere except in the 'C' source on
postgres's developer channel or some japanese site (sigh).
strSQL =    "SELECT stock," +                   "       p.description," +                   "       p.stockgroup," +
              "       o.ordercurrent," +                   "       o.type," +                   "       s.quantity," +
                "       a.ordercurrent, " +                   "       a.type " +                   "  FROM " +
        "       (SELECT stock,ordercurrent,type,line " +                   "          FROM orderlines o " +
     "         WHERE o.theorder = ? " +                   "           AND (o.TYPE='P' OR o.TYPE='T') ) AS o" +
        "  FULL OUTER JOIN " +                   "       (SELECT DISTINCT ON (stock) stock,quantity " +
 "          FROM standingorders s " +                   "         WHERE s.account = ? " +                   "
ANDs.dayno = ? " +                   "           AND s.delivery = ? "+                   "           AND commencedate
<=? " +                   "         ORDER BY stock, commencedate DESC) AS s " +                   " USING (stock) " +
               "  FULL OUTER JOIN " +                   "       (SELECT stock,ordercurrent,type " +                   "
        FROM orderlines ol " +                   "         WHERE ol.theorder = ? " +                   "           AND
ol.TYPE<>'P'" +                   "           AND ol.TYPE<>'T' ) AS a " +                   " USING (stock) " +
         " INNER JOIN stockitems p ON (p.id=stock) " +                   " WHERE p.status='N' " +                   "
ORDERBY ";
 

Any help greatly appreciated.

Regards,
Kevin



pgsql-sql by date:

Previous
From: "Alon Noy"
Date:
Subject: passing a record as a function argument in pl/pgsql
Next
From: Tom Lane
Date:
Subject: Re: mergejoin error message executing in 7.2