postgresql/src
Andres Freund cc415a56d0 Basic planner and executor integration for JIT.
This adds simple cost based plan time decision about whether JIT
should be performed. jit_above_cost, jit_optimize_above_cost are
compared with the total cost of a plan, and if the cost is above them
JIT is performed / optimization is performed respectively.

For that PlannedStmt and EState have a jitFlags (es_jit_flags) field
that stores information about what JIT operations should be performed.

EState now also has a new es_jit field, which can store a
JitContext. When there are no errors the context is released in
standard_ExecutorEnd().

It is likely that the default values for jit_[optimize_]above_cost
will need to be adapted further, but in my test these values seem to
work reasonably.

Author: Andres Freund, with feedback by Peter Eisentraut
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de
2018-03-22 11:51:58 -07:00
..
backend Basic planner and executor integration for JIT. 2018-03-22 11:51:58 -07:00
bin UINT64CONST'fy long constants in pgbench 2018-03-22 19:38:54 +03:00
common restrict -> pg_restrict 2018-03-15 10:02:59 -03:00
fe_utils Add \if support to pgbench 2018-03-22 17:42:03 +03:00
include Basic planner and executor integration for JIT. 2018-03-22 11:51:58 -07:00
interfaces Attempt to fix build with unusual OpenSSL versions 2018-03-20 16:44:52 -04:00
makefiles Always use -fPIC, not -fpic, when building shared libraries with gcc. 2017-06-01 13:32:55 -04:00
pl Fix overflow handling in plpgsql's integer FOR loops. 2018-03-17 15:38:15 -04:00
port Add an assertion that we don't pass NULL to snprintf("%s"). 2018-02-14 15:06:01 -05:00
template Force "restrict" not to be used when compiling with xlc. 2017-10-13 12:15:06 -07:00
test Implement partition-wise grouping/aggregation. 2018-03-22 12:49:48 -04:00
timezone Update time zone data files to tzdata release 2018c. 2018-01-27 16:42:28 -05:00
tools Add helpers for emitting LLVM IR. 2018-03-22 11:51:58 -07:00
tutorial Update copyright for 2018 2018-01-02 23:30:12 -05:00
.gitignore
DEVELOPERS
Makefile Basic JIT provider and error handling infrastructure. 2018-03-21 19:28:28 -07:00
Makefile.global.in Support for optimizing and emitting code in LLVM JIT provider. 2018-03-22 11:05:22 -07:00
Makefile.shlib Add C++ support to configure. 2018-03-20 15:48:48 -07:00
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00