sorry, mistakenly leave out another try: backend> select *, complete(CAST (Person AS record)) from Person QUERY: select *, complete(CAST (Person AS record)) from Person ERROR: Relation reference "person" cannot be used in an expression On 1/25/06, andrew <andrew.ylzhou@xxxxxxxxx> wrote: > Sorry, I modified the parser code and forgot abt it. Now there is no > problem in creating the function. But there is another problem. I > create a function to accept record type parameter. But when I call it > on a specific composite type, error is reported. The followings are > what I have done: > > backend> create function complete(record) returns int4 as > '$libdir/qualityudf' language C > QUERY: create function complete(record) returns int4 as > '$libdir/qualityudf' language C > > backend> select *, complete(Person) from Person > QUERY: select *, complete(Person) from Person > > ERROR: Function complete(person) does not exist > Unable to identify a function that satisfies the given argument types > You may need to add explicit typecasts > > On 1/25/06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > > andrew <andrew.ylzhou@xxxxxxxxx> writes: > > > ERROR: parser: parse error at or near "record" at character 21 > > > in Warn_restart code > > > > > What is the problem here? Did you test it on 7.3? > > > > Yeah, 7.3.13 to be exact. (There have been a couple of changes in the > > parser in the 7.3 branch, according to the CVS logs, but none look to > > be related to this.) Where did that "in Warn_restart code" bit come > > from? There's no such string anywhere in the 7.3 sources. Perhaps you > > are playing with a copy that someone has modified/broken? > > > > regards, tom lane > > > > > -- > andrew > -- andrew