Hello there!
[Please Cc: me in followups.]
I tried the following:
CREATE TABLE a ( int4 id
);
CREATE TABLE b ( int4 id CHECK (id = ANY(SELECT a.id FROM a))
);
Tables are created ok, checking with '\d table' confirms it. But when I
try to insert into table b, e.g.:
INSERT INTO b (id) VALUES (0);
I get:
ERROR: ExecEvalExpr: unknown expression type 108
Of course, the tuple is not inserted.
As quick dig of code showed, type 108 is T_SubLink which is created for
ANY() subselect, and ExecEvalExpr() function does not handle this type of
node. Is it intentional or a bug?
I use 7.0.3, but 7.1.2 code looks pretty the same in ExecEvalExpr(). The
platform is FreeBSD 4.3-R.
TIA for responses,
Alexey.
--
-------------------------------------------------+--------------------------- Yes. We have good news!
| Regards, Alexey V. Neyman Well, that is to say, we have no news. | mailto: avn@any.ru
----------------------------------( Pkunk, SC2 )-+---------------------------