As for the 'select @1' problem:
785 targetOid = func_select_candidate(1, &arg,
candidates);
786 tup = SearchSysCacheTuple(OPRNAME,
787
PointerGetDatum(op),
788
ObjectIdGetDatum(InvalidOid),
789
ObjectIdGetDatum(*targetOid),
790
CharGetDatum('l'));
(gdb) print targetOid
$1 = (unsigned int *) 0x0
Ahem... dereferencing a NULL? Bad bad bad.
PARSEDEBUG gives:
unary_oper_get_candidates: start scan for '@'
unary_oper_get_candidates: found candidate '@' for type float4
unary_oper_get_candidates: found candidate '@' for type float8
unary_oper_get_candidates: found 2 candidates
func_select_candidate- candidate has 0 matches
func_select_candidate- choose candidate as best match
func_select_candidate- candidate has 0 matches
func_select_candidate- choose candidate as possible match
func_select_candidate- column #0 input type is int4
Anyone know where the error is supposed to be generated?
JP Sugarbroad