Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf025f23

Browse files
committed
Prevent numeric overflows in parallel numeric aggregates.
Formerly various numeric aggregate functions supported parallelaggregation by having each worker convert partial aggregate values toNumeric and use numeric_send() as part of serializing their state.That's problematic, since the range of Numeric is smaller than that ofNumericVar, so it's possible for it to overflow (on either side of thedecimal point) in cases that would succeed in non-parallel mode.Fix by serializing NumericVars instead, to avoid the overflow risk andensure that parallel and non-parallel modes work the same.A side benefit is that this improves the efficiency of theserialization/deserialization code, which can make a noticeabledifference to performance with large numbers of parallel workers.No back-patch due to risk from changing the binary format of theaggregate serialization states, as well as lack of prior fieldcomplaints and low probability of such overflows in practice.Patch by me. Thanks to David Rowley for review and performancetesting, and Ranier Vilela for an additional suggestion.Discussion:https://postgr.es/m/CAEZATCUmeFWCrq2dNzZpRj5+6LfN85jYiDoqm+ucSXhb9U2TbA@mail.gmail.com
1 parent903d9aa commitf025f23

File tree

3 files changed

+203
-138
lines changed

3 files changed

+203
-138
lines changed

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp