What I've done instead is not to weaken type checking, but simply to postpone all checking of the body of a SQL function to runtime if it has any polymorphic arguments. At runtime, we know the actual types for the arguments, and we know the actual assigned result type, and then we can run the normal checking operations without any problem.
As usual, big improvement in what I submitted. Thanks.
Applied patch attached, just FYI. (It still needs documentation updates, which I trust you will supply later.)
Yup, you have my gold plated IOU on the doc cleanup for all this stuff.
One note; this change
[snip]Oid ! get_fn_expr_rettype(FunctionCallInfo fcinfo) {
Oid ! get_fn_expr_rettype(FmgrInfo *flinfo) {
is a good example why some things, particularly PLs, are better off being in the main source tree rather than on gborg (or someplace else). PL/R uses get_fn_expr_rettype() and get_fn_expr_argtype(), so it's now broken as of CVS tip :(
I know the license issue is the primary reason why PL/R is not in the main source tree, but I bring it up because I think the tendency to push things out and over to gborg has been too strong lately.
Joe
---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly