Re: ERROR: invalid input syntax for integer: ""

From: Ben Madin <ben(at)ausvet(dot)com(dot)au>
To: Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ERROR: invalid input syntax for integer: ""
Date: 2013-02-06 05:46:08
Message-ID: EB9E5A97-3A82-4126-ADA8-266BA7CA1DE9@ausvet.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Adrian,

On 2013-02-06, at 13:33 , Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> wrote:

> Dim bulb moment.
>
> What happens if you run a simplified version of the query?
>
> One that just LEFT JOINS reports to results ON reportid=rep.id.

A fair question - it only makes it more confusing :

{{{
SELECT rep.id, res8.reportid
FROM reports rep
LEFT JOIN results res8 ON res8.reportid = rep.id AND res8.resulttypeid = 108 AND res8.del = false
LEFT JOIN resultlookup rlu8 ON rlu8.resulttypesid = 108 AND rlu8.id = res8.resultvalue::int
WHERE rep.del IS false
AND rep.projectid = 51
AND rlu8.id = '935';
}}}

works perfectly well - so does:

{{{
SELECT rep.id, round(st_distance_sphere('0101000020BB1000008716D9CEF7A36240643BDF4F8DA741C0', post.the_point::geometry)/1000) as dist
FROM reports rep
LEFT JOIN users u ON rep.link = u.id
LEFT JOIN postcodes post ON u.postcode::integer = post.postcode
LEFT JOIN species spe ON rep.species::text like spe.speccode::text AND spe.synonym = 0
WHERE rep.del IS false
AND rep.projectid = 51
AND round(st_distance_sphere( '0101000020BB1000008716D9CEF7A36240643BDF4F8DA741C0', post.the_point)/1000) < '150'
AND spe.id = '9465';
}}}

but the combination only works on the older db…

{{{
SELECT rep.id, res.reportid,
round(st_distance_sphere('0101000020BB1000008716D9CEF7A36240643BDF4F8DA741C0', post.the_point::geometry)/1000) as dist
FROM reports rep
LEFT JOIN users u ON rep.link = u.id
LEFT JOIN postcodes post ON u.postcode::integer = post.postcode
LEFT JOIN species spe ON rep.species::text like spe.speccode::text AND spe.synonym = 0
LEFT JOIN results res ON res.reportid = rep.id AND res.resulttypeid = 108 AND res.del = false
LEFT JOIN resultlookup rlu ON rlu.resulttypesid = 108 AND rlu.id = res.resultvalue::int
WHERE rep.del IS false
AND rep.projectid = 51
AND round(st_distance_sphere( '0101000020BB1000008716D9CEF7A36240643BDF4F8DA741C0', post.the_point)/1000) < '150'
AND spe.id = '9465'
AND rlu.id = '935';
ERROR: invalid input syntax for integer: ""
}}}

cheers

Ben

--

Ben Madin

t : +61 8 6102 5535
m : +61 448 887 220
e : ben(at)ausvet(dot)com(dot)au

AusVet Animal Health Services
P.O. Box 5467
Broome WA 6725
Australia

AusVet's website: http://www.ausvet.com.au

This transmission is for the intended addressee only and is confidential information. If you have received this transmission in error, please delete it and notify the sender. The contents of this email are the opinion of the writer only and are not endorsed by AusVet Animal Health Services unless expressly stated otherwise. Although AusVet uses virus scanning software we do not accept liability for viruses or similar in any attachments. Thanks for reading.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Bèrto ëd Sèra 2013-02-06 07:37:47 Re: DEFERRABLE NOT NULL constraint
Previous Message Tom Lane 2013-02-06 05:42:11 Re: ERROR: invalid input syntax for integer: ""