PGError: ERROR: missing FROM-clause entry for table

Started by James B. Byrneover 15 years ago3 messagesgeneral
Jump to latest
#1James B. Byrne
byrnejb@harte-lyne.ca

I am getting this error:

PGError: ERROR: missing FROM-clause entry for table "ca_customs_entry"
LINE 1: ..._entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs...

The code is generated by a Ruby-on-Rails-3.0.1 ActiveRecord model:

SELECT "ca_customs_shipments".* FROM "ca_customs_shipments" INNER
JOIN "ca_customs_entries" ON
"ca_customs_entries"."ca_customs_shipment_id" =
"ca_customs_shipments"."id" WHERE
("ca_customs_entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs_entry.is_across_transmitted,
ca_customs_entry.is_across_rejected,
ca_customs_entry.is_across_accepted,
ca_customs_entry.is_cadex_released LIMIT 5 OFFSET 0

From what I have been able to piece together for myself I suspect
that the cause may be the absence of an 'AS "alias"' immediately
following the 'FROM "ca_customs_shipments"' segment. PG evidently
treats this as required element whereas standard SQL does not. If
someone could confirm that my suspicions are well founded then I
will raise an issue to handle the matter with the software
maintainers.

On the other hand, if there is another cause of this then I would
like to have that information as well.

Sincerely,

--
*** E-Mail is NOT a SECURE channel ***
James B. Byrne mailto:ByrneJB@Harte-Lyne.ca
Harte & Lyne Limited http://www.harte-lyne.ca
9 Brockley Drive vox: +1 905 561 1241
Hamilton, Ontario fax: +1 905 561 0757
Canada L8E 3C3

#2Robert Treat
xzilla@users.sourceforge.net
In reply to: James B. Byrne (#1)
Re: PGError: ERROR: missing FROM-clause entry for table

On Thu, Nov 25, 2010 at 9:21 PM, James B. Byrne <byrnejb@harte-lyne.ca>wrote:

I am getting this error:

PGError: ERROR: missing FROM-clause entry for table "ca_customs_entry"
LINE 1: ..._entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs...

The code is generated by a Ruby-on-Rails-3.0.1 ActiveRecord model:

SELECT "ca_customs_shipments".* FROM "ca_customs_shipments" INNER
JOIN "ca_customs_entries" ON
"ca_customs_entries"."ca_customs_shipment_id" =
"ca_customs_shipments"."id" WHERE
("ca_customs_entries"."is_cadex_transmitted" = 'f') ORDER BY
ca_customs_entry.is_across_transmitted,
ca_customs_entry.is_across_rejected,
ca_customs_entry.is_across_accepted,
ca_customs_entry.is_cadex_released LIMIT 5 OFFSET 0

Looks to me like the problem is you are trying to ORDER BY columns in
"ca_customs_entry", but there is no such table for that (don't confuse it
with "ca_customs_entries"). You need to either set a matching alias, or fix
the table name qualifier in those order by columns.

Robert Treat
play: xzilla.net
work: l42.org/lg

#3James B. Byrne
byrnejb@harte-lyne.ca
In reply to: Robert Treat (#2)
Re: PGError: ERROR: missing FROM-clause entry for table

On Thu, November 25, 2010 21:58, Robert Treat wrote:

On Thu, Nov 25, 2010 at 9:21 PM, James B. Byrne
<byrnejb@harte-lyne.ca>wrote:

Looks to me like the problem is you are trying to ORDER BY columns
in
"ca_customs_entry", but there is no such table for that (don't
confuse it
with "ca_customs_entries"). You need to either set a matching
alias, or fix
the table name qualifier in those order by columns.

That was exactly the problem. Thank you very much. I am afraid
that the mental gymnastics that Rails requires--table names are
plural, corresponding model classes are singular--often trips me up.
I would never have seen that error on my own.

--
*** E-Mail is NOT a SECURE channel ***
James B. Byrne mailto:ByrneJB@Harte-Lyne.ca
Harte & Lyne Limited http://www.harte-lyne.ca
9 Brockley Drive vox: +1 905 561 1241
Hamilton, Ontario fax: +1 905 561 0757
Canada L8E 3C3