pgsql: Basic JIT provider and error handling infrastructure.

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Basic JIT provider and error handling infrastructure.
Date: 2018-03-22 02:30:44
Message-ID: E1eyq04-0005CM-3b@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Basic JIT provider and error handling infrastructure.

This commit introduces:

1) JIT provider abstraction, which allows JIT functionality to be
implemented in separate shared libraries. That's desirable because
it allows to install JIT support as a separate package, and because
it allows experimentation with different forms of JITing.
2) JITContexts which can be, using functions introduced in follow up
commits, used to emit JITed functions, and have them be cleaned up
on error.
3) The outline of a LLVM JIT provider, which will be fleshed out in
subsequent commits.

Documentation for GUCs added, and for JIT in general, will be added in
later commits.

Author: Andres Freund, with architectural input from Jeff Davis
Discussion: https://postgr.es/m/20170901064131.tazjxwus3k2w3ybh@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/432bb9e04da4d4a1799b1fe7c723b975cb070c43

Modified Files
--------------
src/Makefile | 4 +
src/backend/Makefile | 3 +-
src/backend/jit/Makefile | 22 ++++
src/backend/jit/jit.c | 156 ++++++++++++++++++++++++++
src/backend/jit/llvm/Makefile | 55 +++++++++
src/backend/jit/llvm/llvmjit.c | 113 +++++++++++++++++++
src/backend/jit/llvm/llvmjit_error.cpp | 141 +++++++++++++++++++++++
src/backend/tcop/postgres.c | 3 +
src/backend/utils/misc/guc.c | 22 ++++
src/backend/utils/misc/postgresql.conf.sample | 2 +
src/backend/utils/resowner/resowner.c | 48 ++++++++
src/include/catalog/catversion.h | 2 +-
src/include/catalog/pg_proc.h | 2 +
src/include/jit/jit.h | 46 ++++++++
src/include/jit/llvmjit.h | 51 +++++++++
src/include/utils/resowner_private.h | 7 ++
src/tools/pgindent/exclude_file_patterns | 1 +
src/tools/pgindent/typedefs.list | 3 +
18 files changed, 679 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2018-03-22 03:03:11 pgsql: Add file containing extensions of the LLVM C API.
Previous Message Tom Lane 2018-03-22 00:11:14 pgsql: Prevent extensions from creating custom GUCs that are GUC_LIST_Q