RE: pgsql/src/backend/utils/cache (fcache.c)

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

In response to

Responses

Browse pgsql-committers by date

  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)