| From: | "Hiroshi Inoue" <Inoue(at)tpf(dot)co(dot)jp> |
|---|---|
| To: | "Tom Lane" <tgl(at)hub(dot)org> |
| Cc: | <pgsql-committers(at)postgresql(dot)org> |
| Subject: | RE: pgsql/src/backend/utils/cache (fcache.c) |
| Date: | 2000-08-10 01:40:59 |
| Message-ID: | 001501c0026c$0933ff20$2801007e@tpf.co.jp |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
> -----Original Message-----
> From: Tom Lane
>
> Modified Files:
> fcache.c
>
> ----------------------------- Log Message -----------------------------
>
> Remove 'func_tlist' from Func expression nodes, likewise 'param_tlist'
> from Param nodes, per discussion a few days ago on pghackers. Add new
> expression node type FieldSelect that implements the functionality where
> it's actually needed. Clean up some other unused fields in Func nodes
> as well.
> NOTE: initdb forced due to change in stored expression trees for rules.
>
I see the following Assert in GetDynamicFuncArgType().
/* TEST: I bet this routine is unnecessary ... */
Assert(arg->vartype == tup->t_data->t_oid);
Seems the Assert() fails in misc regression test at
SELECT p.name, p.hobbies.name FROM person* p;.
etc ...(pararell regression test invokes postmaster without -A
option unfortunately).
The definition of hobbies() is as follows.
CREATE FUNCTION hobbies(person)
RETURNS setof hobbies_r
AS 'select * from hobbies_r where person = $1.name'
LANGUAGE 'sql';
When a subclass of person is passed to the hobbies() function
the Assert() seems to fail.
In additon this example gives me some other questions.
1) Could PL/pgSQL functions handle input tuple parameter
properly when the class of the tuple has subclasses ?
2) Could functions return multiple subclasses when returning
(setof) tuple(s) ?
If so,could FieldSelect Nodes handle such cases properly ?
Regards.
Hiroshi Inoue
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Hiroshi Inoue | 2000-08-10 02:33:20 | pgsql/src/include/access (nbtree.h) |
| Previous Message | Thomas Lockhart | 2000-08-09 14:13:05 | pgsql/src/backend/utils/adt (like.c) |