Add FIELDNO_* macro designating offset into structs required for JIT.
authorAndres Freund <andres@anarazel.de>
Wed, 24 Jan 2018 07:20:02 +0000 (23:20 -0800)
committerAndres Freund <andres@anarazel.de>
Thu, 22 Mar 2018 21:45:59 +0000 (14:45 -0700)
commit7ced1d1247286399df53823eb76cacaf6d7fdb22
treef7a9116a7c47d3b2f729ed3602008199558c3b0b
parentfb46ac26fe493839d6cf3ab8d20bc62a285f7649
Add FIELDNO_* macro designating offset into structs required for JIT.

For any interesting JIT target, fields inside structs need to be
accessed. b96d550e contains infrastructure for syncing the definition
of types between postgres C code and runtime code generation with
LLVM. But that doesn't sync the number or names of fields inside
structs, just the types (including padding etc).

One option would be to hardcode the offset numbers in the JIT code,
but that'd be hard to keep in sync. Instead add macros indicating the
field offset to the fields that need to be accessed. Not pretty, but
manageable.

Author: Andres Freund
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de
src/include/access/htup.h
src/include/access/htup_details.h
src/include/executor/nodeAgg.h
src/include/executor/tuptable.h
src/include/fmgr.h
src/include/nodes/execnodes.h