Re: [HACKERS] WIP: Faster Expression Processing v4
От | Andres Freund |
---|---|
Тема | Re: [HACKERS] WIP: Faster Expression Processing v4 |
Дата | |
Msg-id | 20170314011104.mtcepqxip7qo5ax4@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] WIP: Faster Expression Processing v4 (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: [HACKERS] WIP: Faster Expression Processing v4
|
Список | pgsql-hackers |
Hi, On 2017-03-13 01:03:51 -0700, Andres Freund wrote: > What's basically missing here is: > - pgindent run and minimizing resulting damage Running into a bit of an issue here - pgindent mangles something like EEO_SWITCH (op->opcode) { EEO_CASE(EEO_DONE): goto out; EEO_CASE(EEO_INNER_FETCHSOME): /* XXX: worthwhile to check tts_nvalid inline first? */ slot_getsomeattrs(innerslot,op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_OUTER_FETCHSOME): slot_getsomeattrs(outerslot, op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_SCAN_FETCHSOME): slot_getsomeattrs(scanslot, op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_INNER_VAR): { int attnum = op->d.var.attnum; /* * Can't assert tts_nvalid, as wholerow var evaluation or such * could havematerialized the slot - but the contents are * still valid :/ */ Assert(op->d.var.attnum>= 0); *op->resnull = innerslot->tts_isnull[attnum]; *op->resvalue = innerslot->tts_values[attnum]; EEO_DISPATCH(op); } into EEO_SWITCH(op->opcode) { EEO_CASE(EEO_DONE): goto out; EEO_CASE(EEO_INNER_FETCHSOME): /* XXX: worthwhile to check tts_nvalid inline first? */ slot_getsomeattrs(innerslot,op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_OUTER_FETCHSOME): slot_getsomeattrs(outerslot, op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_SCAN_FETCHSOME): slot_getsomeattrs(scanslot, op->d.fetch.last_var); EEO_DISPATCH(op); EEO_CASE(EEO_INNER_VAR): { int attnum = op->d.var.attnum; /* * Can't assert tts_nvalid, as wholerow var evaluation or such * could have materializedthe slot - but the contents are still * valid :/ */ Assert(op->d.var.attnum >=0); *op->resnull = innerslot->tts_isnull[attnum]; *op->resvalue = innerslot->tts_values[attnum]; EEO_DISPATCH(op); } which is a bit annoying. (the EEO_CASE is either a jump label or a case statement, depending on computed goto availability). It seems we could either: 1) live with the damage 2) disable pgindent 3) move the : inside EEO_CASE's definition, and only use {} blocks. I'm inclined to go for 3). Opinions? - Andres
В списке pgsql-hackers по дате отправления: