postgresql/src
Andres Freund ac88807f9b jit: Re-allow JIT compilation of execGrouping.c hashtable comparisons.
In the course of 5567d12ce0, 356687bd8 and 317ffdfeaa, I changed
BuildTupleHashTable[Ext]'s call to ExecBuildGroupingEqual to not pass
in the parent node, but NULL. Which in turn prevents the tuple
equality comparator from being JIT compiled.  While that fixes
bug #15486, it is not actually necessary after all of the above commits,
as we don't re-build the comparator when using the new
BuildTupleHashTableExt() interface (as the content of the hashtable
are reset, but the TupleHashTable itself is not).

Therefore re-allow jit compilation for callers that use
BuildTupleHashTableExt with a separate context for "metadata" and
content.

As in the previous commit, there's ongoing work to make this easier to
test to prevent such regressions in the future, but that
infrastructure is not going to be backpatchable.

The performance impact of not JIT compiling hashtable equality
comparators can be substantial e.g. for aggregation queries that
aggregate a lot of input rows to few output rows (when there are a lot
of output groups, there will be fewer comparisons).

Author: Andres Freund
Discussion: https://postgr.es/m/20190927072053.njf6prdl3vb7y7qb@alap3.anarazel.de
Backpatch: 11, just as 5567d12ce0
2019-09-29 16:24:32 -07:00
..
backend jit: Re-allow JIT compilation of execGrouping.c hashtable comparisons. 2019-09-29 16:24:32 -07:00
bin Have pg_rewind run crash recovery before rewinding 2019-09-27 16:40:01 -03:00
common Refactor logic to remove trailing CR/LF characters from strings 2019-08-09 11:05:14 +09:00
fe_utils Split out recovery confing-writing code from pg_basebackup 2019-09-25 14:35:24 -03:00
include Implement jsonpath .datetime() method 2019-09-25 22:51:51 +03:00
interfaces Fix bogus order of error checks in new channel_binding code. 2019-09-29 12:35:53 -04:00
makefiles Remove support for non-ELF BSD systems 2019-07-01 23:56:20 +01:00
pl Split tuptoaster.c into three separate files. 2019-09-05 13:15:10 -04:00
port Use explicit_bzero 2019-09-05 08:30:42 +02:00
template Yet further rethinking of build changes for macOS Mojave. 2018-11-02 18:54:00 -04:00
test Allow SSL TAP tests to run on Windows 2019-09-29 17:48:37 -04:00
timezone Update time zone data files to tzdata release 2019c. 2019-09-20 19:53:33 -04:00
tools Split out recovery confing-writing code from pg_basebackup 2019-09-25 14:35:24 -03:00
tutorial Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
.gitignore
DEVELOPERS
Makefile Fix partial-build problems introduced by having more generated headers. 2018-04-09 16:42:10 -04:00
Makefile.global.in Don't disable ccache when building with coverage support 2019-09-24 10:00:56 +02:00
Makefile.shlib Remove support for non-ELF BSD systems 2019-07-01 23:56:20 +01:00
nls-global.mk NLS: Fix backend gettext triggers 2019-09-23 09:04:20 +02:00