Revision 30f912a41378bd0ce363276b2e6b9f590520af1d authored by Andrew Gierth on 28 January 2021, 10:53:10 UTC, committed by Andrew Gierth on 28 January 2021, 11:09:49 UTC
When building aggregate expression steps, strict checks need a bailout
jump for when a null value is encountered, so there is a list of steps
that require later adjustment. Adding entries to that list for steps
that aren't actually strict would be harmless, except that there is an
Assert which catches them. This leads to spurious errors on asserts
builds, for data sets that trigger parallel aggregation of an
aggregate with a non-strict deserialization function (no such
aggregates exist in the core system).

Repair by not adding the adjustment entry when it's not needed.

Backpatch back to 11 where the code was introduced.

Per a report from Darafei (Komzpa) of the PostGIS project; analysis
and patch by me.

Discussion: https://postgr.es/m/87mty7peb3.fsf@news-spur.riddles.org.uk
1 parent d43e235
Raw File
.gitattributes
*		whitespace=space-before-tab,trailing-space
*.[chly]	whitespace=space-before-tab,trailing-space,indent-with-non-tab,tabwidth=4
*.dsl		whitespace=space-before-tab,trailing-space,tab-in-indent
*.patch		-whitespace
*.pl		whitespace=space-before-tab,trailing-space,tabwidth=4
*.po		whitespace=space-before-tab,trailing-space,tab-in-indent,-blank-at-eof
*.sgml		whitespace=space-before-tab,trailing-space,tab-in-indent,-blank-at-eol
*.x[ms]l	whitespace=space-before-tab,trailing-space,tab-in-indent

# Avoid confusing ASCII underlines with leftover merge conflict markers
README		conflict-marker-size=32
README.*	conflict-marker-size=32

# Certain data files that contain special whitespace, and other special cases
*.data						-whitespace
contrib/pgcrypto/sql/pgp-armor.sql		whitespace=-blank-at-eol
src/backend/catalog/sql_features.txt		whitespace=space-before-tab,blank-at-eof,-blank-at-eol

# Test output files that contain extra whitespace
*.out					-whitespace
contrib/*/output/*.source		-whitespace
src/test/regress/output/*.source	-whitespace
src/interfaces/ecpg/test/expected/*	-whitespace
src/interfaces/libpq/test/expected.out	whitespace=-blank-at-eof

# These files are maintained or generated elsewhere.  We take them as is.
configure				-whitespace
ppport.h				-whitespace
src/backend/regex/COPYRIGHT		-whitespace
src/backend/regex/re_syntax.n		-whitespace
src/backend/snowball/libstemmer/*.c	-whitespace
src/backend/utils/mb/Unicode/*-std.txt	-whitespace
src/include/snowball/libstemmer/*	-whitespace
src/timezone/data/*			-whitespace
back to top