postgresql/src/backend/utils
Andres Freund 2a0faed9d7 Add expression compilation support to LLVM JIT provider.
In addition to the interpretation of expressions (which back
evaluation of WHERE clauses, target list projection, aggregates
transition values etc) support compiling expressions to native code,
using the infrastructure added in earlier commits.

To avoid duplicating a lot of code, only support emitting code for
cases that are likely to be performance critical. For expression steps
that aren't deemed that, use the existing interpreter.

The generated code isn't great - some architectural changes are
required to address that. But this already yields a significant
speedup for some analytics queries, particularly with WHERE clauses
filtering a lot, or computing multiple aggregates.

Author: Andres Freund
Tested-By: Thomas Munro
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de

Disable JITing for VALUES() nodes.

VALUES() nodes are only ever executed once. This is primarily helpful
for debugging, when forcing JITing even for cheap queries.

Author: Andres Freund
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de
2018-03-22 14:45:59 -07:00
..
adt Fix mishandling of quoted-list GUC values in pg_dump and ruleutils.c. 2018-03-21 20:03:28 -04:00
cache Fix improper uses of canonicalize_qual(). 2018-03-11 18:10:42 -04:00
error Update copyright for 2018 2018-01-02 23:30:12 -05:00
fmgr Add expression compilation support to LLVM JIT provider. 2018-03-22 14:45:59 -07:00
hash Update copyright for 2018 2018-01-02 23:30:12 -05:00
init Fix cross-checking of ReservedBackends/max_wal_senders/MaxConnections. 2018-03-08 11:25:26 -05:00
mb Update headers of generated files 2018-02-24 14:54:17 -05:00
misc Add expression compilation support to LLVM JIT provider. 2018-03-22 14:45:59 -07:00
mmgr Fix crash when canceling parallel query 2018-02-16 16:21:24 -05:00
resowner Basic JIT provider and error handling infrastructure. 2018-03-21 19:28:28 -07:00
sort Avoid another valgrind complaint about write() of uninitalized bytes. 2018-02-22 09:28:12 -05:00
time Rename TransactionChain functions 2018-03-16 13:18:06 -04:00
.gitignore Generate fmgr prototypes automatically 2017-01-17 14:06:07 -05:00
Gen_dummy_probes.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
Gen_dummy_probes.sed Update copyright for 2018 2018-01-02 23:30:12 -05:00
Gen_fmgrtab.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
Makefile Replace binary search in fmgr_isbuiltin with a lookup array. 2017-10-04 00:22:38 -07:00
errcodes.txt Support all SQL:2011 options for window frame clauses. 2018-02-07 00:06:56 -05:00
generate-errcodes.pl Update copyright for 2018 2018-01-02 23:30:12 -05:00
probes.d Support parallel btree index builds. 2018-02-02 13:32:44 -05:00