Brent Verner <brent@rcfile.org> writes:
> these are the steps leading up the the assignment of the fscked
> fcache->fcinfo.arg[i] at execQual.c:603, which is what will eventually
> blow up ExecEvalFieldSelect.
That looks OK as far as it goes. Inside ExecEvalVar, you need to look
at the tuple_type data structure in more detail, specificallyp *tuple_type->attrs[0]p *tuple_type->attrs[1]
(I think the leading * is correct here, try omitting it if gdb gets
unhappy.)
> (gdb) print *variable
> $57 = {type = T_Var, varno = 65001, varattno = 1, vartype = 21220,
> vartypmod = 8, varlevelsup = 0, varnoold = 1, varoattno = 0}
That part looks promising --- vartypmod is sizeof(Pointer) not -1,
so the front-end part of my patch seems to be working. What I suspect
we'll find is that the tupledesc doesn't show sizeof the first field to
be 8 the way we want. Which would imply that I missed a place (or
multiple places :-() that needs to know about the convention for typmod
of a tuple datatype.
regards, tom lane