Hi, On 2019-10-28 15:05:01 -0400, Robert Haas wrote: > On Fri, Sep 27, 2019 at 3:21 AM Andres Freund <and...@anarazel.de> wrote: > > - JIT-Expr: whether the expression was JIT compiled (might e.g. not be > > the case because no parent was provided) > > - JIT-Deform-{Scan,Outer,Inner}: wether necessary, and whether JIT > > accelerated. > > > > I don't like these names much, but ... > > > > For the deform cases I chose to display > > a) the function name if JIT compiled > > b) "false" if the expression is JIT compiled, deforming is > > necessary, but deforming is not JIT compiled (e.g. because the slot type > > wasn't fixed) > > c) "null" if not necessary, with that being omitted in text mode. > > I mean, why not just omit in all modes if it's not necessary? I don't > see that making the information we produce randomly inconsistent > between modes is buying us anything.
Because that's the normal way to represent something non-existing for formats like json? There's a lot of information we show always for !text format, even if not really applicable to the context (e.g. Triggers for select statements). I think there's an argument to made to deviate in this case, but I don't think it's obvious. Abstract formatting reasons aside, it's actually useful to see where we know we're dealing with tuples that don't need to be deformed and thus overhead due to that cannot be relevant. Not sure if there's sufficient consumers for that, but ... We e.g. should verify that the "none" doesn't suddenly vanish, because we broke the information that let us infer that we don't need tuple deforming - and that's easier to understand if there's an explicit field, rather than reasining from absence. IMO. Greetings, Andres Freund