postgresql/src/backend
Amit Kapila 14e9b2a752 Prohibit pushing subqueries containing window function calculation to
workers.

Allowing window function calculation in workers leads to inconsistent
results because if the input row ordering is not fully deterministic, the
output of window functions might vary across workers.  The fix is to treat
them as parallel-restricted.

In the passing, improve the coding pattern in max_parallel_hazard_walker
so that it has a chain of mutually-exclusive if ... else if ... else if
... else if ... IsA tests.

Reported-by: Marko Tiikkaja
Bug: 15324
Author: Amit Kapila
Reviewed-by: Tom Lane
Backpatch-through: 9.6
Discussion: https://postgr.es/m/CAL9smLAnfPJCDUUG4ckX2iznj53V7VSMsYefzZieN93YxTNOcw@mail.gmail.com
2018-09-04 10:28:08 +05:30
..
access During the split, set checksum on an empty hash index page. 2018-09-04 08:35:42 +05:30
bootstrap Use a ResourceOwner to track buffer pins in all cases. 2018-07-18 12:15:16 -04:00
catalog Remove pg_constraint.conincluding 2018-09-03 12:59:26 -03:00
commands Avoid using potentially-under-aligned page buffers. 2018-09-01 15:27:17 -04:00
executor Set scan direction appropriately for SubPlans (bug #15336) 2018-08-17 15:44:13 +01:00
foreign Remove bogus "extern" annotations on function definitions. 2018-02-19 12:07:44 -05:00
jit LLVMJIT: LLVMGetHostCPUFeatures now is upstream, use LLMV version if available. 2018-08-24 10:21:38 -07:00
lib doc: Update redirecting links 2018-07-16 10:48:05 +02:00
libpq Suppress uninitialized-variable warning in new SCRAM code. 2018-08-24 10:51:10 -04:00
main Update copyright for 2018 2018-01-02 23:30:12 -05:00
nodes Disable support for partitionwise joins in problematic cases. 2018-08-31 20:34:06 +09:00
optimizer Prohibit pushing subqueries containing window function calculation to 2018-09-04 10:28:08 +05:30
parser Fix lexing of standard multi-character operators in edge cases. 2018-08-23 21:42:40 +01:00
partitioning Fix typos. 2018-08-27 09:32:59 +12:00
po Translation updates 2018-06-25 12:37:18 +02:00
port Remove obsolete netbsd dynloader code 2018-08-13 23:21:01 +02:00
postmaster Implement "pg_ctl logrotate" command 2018-09-01 19:46:49 +03:00
regex Clean up warnings from -Wimplicit-fallthrough. 2018-05-01 19:35:08 -04:00
replication Fix memory leak in TRUNCATE decoding 2018-09-03 02:10:24 +02:00
rewrite Fix set of NLS translation issues 2018-08-21 15:17:13 +09:00
snowball Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
statistics Fix typos. 2018-08-27 09:32:59 +12:00
storage Avoid using potentially-under-aligned page buffers. 2018-09-01 15:27:17 -04:00
tcop Introduce minimal C99 usage to verify compiler support. 2018-08-23 18:36:07 -07:00
tsearch Hand code string to integer conversion for performance. 2018-07-22 14:58:23 -07:00
utils Remove pg_constraint.conincluding 2018-09-03 12:59:26 -03:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
Makefile Rearrange makefile rules for running Gen_fmgrtab.pl. 2018-05-03 17:54:18 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
nls.mk Translation updates 2018-06-25 12:37:18 +02:00