Hi, On 2020-12-07 16:32:32 -0500, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > I think it'd be a better to rely on the backend's definition of > > ExecEvalBoolSubroutine etc. For the functions implementing expression > > steps I've found that far easier to work with over time (because you can > > get LLVM to issue type mismatch errors when the signature changes, > > instead of seeing compile failures). > > I'm a little unclear on what you mean here? There wasn't such a > thing as ExecEvalBoolSubroutine until I added it in this patch.
Basically that I suggest doing what I did in the prototype patch I attached, mirroring what it did with TypeExecEvalSubroutine for the new ExecEvalBoolSubroutine case. > What did you think of the idea of merging EEOP_SBSREF_OLD / ASSIGN / FETCH > into a single step type distinguished only by the callback function? I don't have a strong opinion on this. I guess find it a bit easier to understand the generated "program" if the opcodes are distinct (I've a pending patch printing the opcode sequence). Especially as the payload is just function pointers. So I think I'd just merge the *implementation* of the steps, but leave the different opcodes around? Greetings, Andres Freund