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