Is this a bug in 7.1?
Is this a bug or missing feature in 7.1? or have I got the SQL
wrong?
bray=# SELECT DISTINCT p.id, p.name, a.town
bray-# FROM (
bray(# SELECT id, name
bray(# FROM customer
bray(# UNION
bray(# SELECT id, name
bray(# FROM supplier
bray(# ) AS p
bray-# LEFT OUTER JOIN address AS a
bray-# ON p.address = a.id
bray-# WHERE p.id = '22002';
ERROR: function applied to tuple is not supported for subSELECTs
What does the error message mean? I can't see where a function
is involved.
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"Who is like Thee among the gods, O Lord? Who is like
Thee, majestic in holiness, awesome in praises,
working wonders?"
Exodus 15:11
"Oliver Elphick" wrote:
Is this a bug or missing feature in 7.1? or have I got the SQL
wrong?bray=# SELECT DISTINCT p.id, p.name, a.town
bray-# FROM (
bray(# SELECT id, name
bray(# FROM customer
bray(# UNION
bray(# SELECT id, name
bray(# FROM supplier
bray(# ) AS p
bray-# LEFT OUTER JOIN address AS a
bray-# ON p.address = a.id
bray-# WHERE p.id = '22002';
The SQL was wrong; I had missed out "address" from the fields in the
subselect. However, the error message was very misleading:
ERROR: function applied to tuple is not supported for subSELECTs
What does the error message mean? I can't see where a function
is involved.
--
Oliver Elphick Oliver.Elphick@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47 6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839 932A 614D 4C34 3E1D 0C1C
========================================
"Who is like Thee among the gods, O Lord? Who is like
Thee, majestic in holiness, awesome in praises,
working wonders?"
Exodus 15:11
Import Notes
Reply to msg id not found: olly@lfix.co.uk | Resolved by subject fallback
From: "Oliver Elphick" <olly@lfix.co.uk>
"Oliver Elphick" wrote:
Is this a bug or missing feature in 7.1? or have I got the SQL
wrong?bray=# SELECT DISTINCT p.id, p.name, a.town
bray-# FROM (
bray(# SELECT id, name
bray(# FROM customer
bray(# UNION
bray(# SELECT id, name
bray(# FROM supplier
bray(# ) AS p
bray-# LEFT OUTER JOIN address AS a
bray-# ON p.address = a.id
bray-# WHERE p.id = '22002';The SQL was wrong; I had missed out "address" from the fields in the
subselect. However, the error message was very misleading:ERROR: function applied to tuple is not supported for subSELECTs
What does the error message mean? I can't see where a function
is involved.
Misleading, but does make some sense. Looks like you can define a function
with a table-name as parameter and use it as though an attribute:
create function foo(tbl) returns...
select tbl.foo;
Seems to call the function foo(...) - something to do with defining your own
types?
- Richard Huxton
"Oliver Elphick" <olly@lfix.co.uk> writes:
bray=# SELECT DISTINCT p.id, p.name, a.town
bray-# FROM (
bray(# SELECT id, name
bray(# FROM customer
bray(# UNION
bray(# SELECT id, name
bray(# FROM supplier
bray(# ) AS p
bray-# LEFT OUTER JOIN address AS a
bray-# ON p.address = a.id
bray-# WHERE p.id = '22002';
ERROR: function applied to tuple is not supported for subSELECTs
What does the error message mean?
table.functionname is an ancient PostQUEL notation for functions that
take whole tuples --- think "address(p)" and you'll have a better idea
what the parser is seeing here.
This notation is something we're probably going to have to retire soon,
since I doubt it will play well with schema notation (too hard to guess
what foo.bar.baz means). I doubt anyone but the regression tests still
use the PostQUEL notation for function calls anyway.
regards, tom lane