Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tf6Gx-00HMJ5-Kk for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Feb 2025 23:54:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tf6Gw-00HNZV-6O for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Feb 2025 23:54:34 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tf6Gv-00HNZM-I3 for pgsql-hackers@lists.postgresql.org; Mon, 03 Feb 2025 23:54:33 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tf6Gs-0031Zi-1p for pgsql-hackers@postgresql.org; Mon, 03 Feb 2025 23:54:32 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2166651f752so101558625ad.3 for ; Mon, 03 Feb 2025 15:54:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1738626869; x=1739231669; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:from:to:cc:subject:date:message-id:reply-to; bh=VRk/2Fig6HL4/AJipjEfD7FLPoNIZ3Vlj8Km6lpCwMY=; b=h43r0WkDIJ6fGGm1ZsP8NIUDUkr3UYtZ381gCpr91GbUGQLEdxfihEfp/ITcvMXYS0 nID+nf7jjbvjOw1Y812EUAUfKRCc5OlHByx3ZPsNPMPuf3AdEfGSxk4bFJhFTVSmxx8F eCv+GNVubb8GVex2+m9XEC6WxSv5JdDCAa2vSfPS6jRi3LMwaCJ6I7nkW84MHrN/lNbs PPgA9WLej1AA6K0OWro5D8l/up9sqzlaC/6AOUFpsacWBbCh2qOsUcd6DD5rZemgTij9 1n5YYCR986QEdt8UogOQKX9zHgxbrLYwDD4lrZTSGclRmwnsvm0W/vZz4cCLAVsWFc+u u0+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738626869; x=1739231669; h=mime-version:user-agent:references:in-reply-to:date:to:from:subject :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VRk/2Fig6HL4/AJipjEfD7FLPoNIZ3Vlj8Km6lpCwMY=; b=qzIEOXGIarWb3dbr7FK7Vr4VgxIKMp3WkbJ2fo8kL5ZpI42Pf/j5d5KOSL1w6EHmdD ODuADyIFTlofAfHiF4EpwbfLXdMLQTE0kS0k0B/IeUVeS96Wq4iifkA0sfWuZRI/AmDQ tz9y7JmF6ygFL/wYSnk+7jiSvfM+mnTttUWQAmBIVyImXatuWWaJGHsv+FElTVXyGjia 7eY43AC4WgdvGgltxWS/YTN5gR+7F8w/6MRGvGIqM094Xml4NeK3OSOJctYlQwZ41YNN foTV3RWg9Tn9cNpqaOKj26qrLdCq/Wbe6ccnc+ZwP+5GRicaZ17iO/hhwkJQOlBQ1S2G F/Uw== X-Gm-Message-State: AOJu0YzrYm3esGj4T3ZPY1Z7S4NhrVKKWfn64jWlxtKeuH+VRSAfUoY7 ZPQhCXYbAORVlxNVlQcEZcVLFH1ztjPcxce1oRc+2QoTYsWAZjH6TU5kjAt9HBtTbyJHHiEOy30 = X-Gm-Gg: ASbGncv1XmL3S918jw9YMlrq+fcX1r6u8GM3ktRSftCgU8WBA7GAirjQnkVqtPTpB6V iA2HcvvlaMVzi85AuAtXkwQzVk3MQ7KHUsqC6ym7rsgLQFTwgYY6E7aaeegb2iRpyrjDTI1ZRKy 8LNcfo4ybgLXbO0mgwkXndJNt+yjwut1nVz1Sefa3Vtf9o7N370XEA6Jjs+K3NzpkvrpD6a0uBM kEpJ6DZhnSO+YjPIko6ewp3LLFSnYe0jC1BSJIQrvkG82wtsNzkmhU1GUvodZ6jFfYdKiw409eN uC4TCP91+XUypylbK8dMhCsuLI93PoFZ5qnxHhgFHeABWA2E6aIuzQwYWw== X-Google-Smtp-Source: AGHT+IHja8YjwBKRHvVTtSvPcmgU5uM+aGNYiK117ptQpP0Tx6zVHeGL0m2/nodiCgD1PVMfBvDIzw== X-Received: by 2002:a17:903:2a88:b0:20c:9936:f0ab with SMTP id d9443c01a7336-21dd7e00f28mr344062075ad.47.1738626869354; Mon, 03 Feb 2025 15:54:29 -0800 (PST) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21de33036d9sm83202365ad.200.2025.02.03.15.54.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Feb 2025 15:54:28 -0800 (PST) Message-ID: Subject: Re: injection points for hash aggregation From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Mon, 03 Feb 2025 15:54:27 -0800 In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-OWHvSwO47R3YpmP2KL1R" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-OWHvSwO47R3YpmP2KL1R Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2025-02-03 at 12:45 -0800, Jeff Davis wrote: > * The patch allows forcing the partition fan-out to one. I could > imagine forcing it to a specific value, is there a way to do that? I hit "send" too quickly and this caused test failures in CI. Attaching v2. Changes: * a new injection point to force spilling at 1000 tuples so that the test is deterministic (required some minor refactoring in hash_agg_check_limits()) * added a branch to guard against a shift-by-32, which could not happen in the code before, because the number of partitions was a minimum of 4 * minor refactor of hash_agg_set_limits() to avoid an implicit assumption. This is not directly related, so I added it as a separate patch. Regards, Jeff Davis --=-OWHvSwO47R3YpmP2KL1R Content-Disposition: attachment; filename="v2-0001-Add-injection-points-for-hash-aggregation.patch" Content-Type: text/x-patch; name="v2-0001-Add-injection-points-for-hash-aggregation.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1MTM4ODkyMDZlMDQ4YWJjMjQ5M2QyOTAyNzg3NDA0Zjg2Y2E0NWQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBT dW4sIDIgRmViIDIwMjUgMDU6MjY6NTggLTA4MDAKU3ViamVjdDogW1BBVENIIHYyIDEvMl0gQWRk IGluamVjdGlvbiBwb2ludHMgZm9yIGhhc2ggYWdncmVnYXRpb24uCgotLS0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVBZ2cuYyAgICAgICAgICAgICAgICB8IDYyICsrKysrKysrKysrKysrLS0t CiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUgICAgfCAgMiArLQog Li4uL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvaGFzaGFnZy5vdXQgICAgIHwgNjggKysrKysr KysrKysrKysrKysrKwogc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1 aWxkIHwgIDEgKwogLi4uL21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaGFnZy5zcWwg IHwgMjYgKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9w b2ludHMvZXhwZWN0ZWQvaGFzaGFnZy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2hhc2hhZ2cuc3FsCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFn Zy5jCmluZGV4IDMwMDViNWMwZTNiLi4zNWNmMThlNTI4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cu YwpAQCAtMjY5LDYgKzI2OSw3IEBACiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNpbmNsdWRl ICJ1dGlscy9keW5haGFzaC5oIgogI2luY2x1ZGUgInV0aWxzL2V4cGFuZGVkZGF0dW0uaCIKKyNp bmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sb2d0YXBl LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRp bHMuaCIKQEAgLTE0ODksNiArMTQ5MCwxNCBAQCBidWlsZF9oYXNoX3RhYmxlcyhBZ2dTdGF0ZSAq YWdnc3RhdGUpCiAJCQkJCQkJCQkJICAgcGVyaGFzaC0+YWdnbm9kZS0+bnVtR3JvdXBzLAogCQkJ CQkJCQkJCSAgIG1lbW9yeSk7CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCQlpZiAo SVNfSU5KRUNUSU9OX1BPSU5UX0FUVEFDSEVEKCJoYXNoLWFnZ3JlZ2F0ZS1vdmVyc2l6ZS10YWJs ZSIpKQorCQl7CisJCQluYnVja2V0cyA9IG1lbW9yeSAvIHNpemVvZihUdXBsZUhhc2hFbnRyeURh dGEpOworCQkJSU5KRUNUSU9OX1BPSU5UX0NBQ0hFRCgiaGFzaC1hZ2dyZWdhdGUtb3ZlcnNpemUt dGFibGUiKTsKKwkJfQorI2VuZGlmCisKIAkJYnVpbGRfaGFzaF90YWJsZShhZ2dzdGF0ZSwgc2V0 bm8sIG5idWNrZXRzKTsKIAl9CiAKQEAgLTE4NjAsMTcgKzE4NjksMzYgQEAgaGFzaF9hZ2dfY2hl Y2tfbGltaXRzKEFnZ1N0YXRlICphZ2dzdGF0ZSkKIAkJCQkJCQkJCQkJCQkgdHJ1ZSk7CiAJU2l6 ZQkJaGFzaGtleV9tZW0gPSBNZW1vcnlDb250ZXh0TWVtQWxsb2NhdGVkKGFnZ3N0YXRlLT5oYXNo Y29udGV4dC0+ZWN4dF9wZXJfdHVwbGVfbWVtb3J5LAogCQkJCQkJCQkJCQkJCQl0cnVlKTsKKwli b29sCQlkb19zcGlsbCA9IGZhbHNlOwogCiAJLyoKLQkgKiBEb24ndCBzcGlsbCB1bmxlc3MgdGhl cmUncyBhdCBsZWFzdCBvbmUgZ3JvdXAgaW4gdGhlIGhhc2ggdGFibGUgc28gd2UKLQkgKiBjYW4g YmUgc3VyZSB0byBtYWtlIHByb2dyZXNzIGV2ZW4gaW4gZWRnZSBjYXNlcy4KKwkgKiBTcGlsbCBp ZiBleGNlZWRpbmcgbWVtb3J5IGxpbWl0LiBEb24ndCBzcGlsbCB1bmxlc3MgdGhlcmUncyBhdCBs ZWFzdAorCSAqIG9uZSBncm91cCBpbiB0aGUgaGFzaCB0YWJsZSBzbyB3ZSBjYW4gYmUgc3VyZSB0 byBtYWtlIHByb2dyZXNzIGV2ZW4gaW4KKwkgKiBlZGdlIGNhc2VzLgogCSAqLwotCWlmIChhZ2dz dGF0ZS0+aGFzaF9uZ3JvdXBzX2N1cnJlbnQgPiAwICYmCi0JCShtZXRhX21lbSArIGhhc2hrZXlf bWVtID4gYWdnc3RhdGUtPmhhc2hfbWVtX2xpbWl0IHx8Ci0JCSBuZ3JvdXBzID4gYWdnc3RhdGUt Pmhhc2hfbmdyb3Vwc19saW1pdCkpCisJaWYgKG5ncm91cHMgPiAwICYmIChtZXRhX21lbSArIGhh c2hrZXlfbWVtID4gYWdnc3RhdGUtPmhhc2hfbWVtX2xpbWl0KSkKKwkJZG9fc3BpbGwgPSB0cnVl OworCisJLyoKKwkgKiBTcGlsbCBpZiBleGNlZWRpbmcgbmdyb3VwcyBsaW1pdC4gVGhpcyBpcyBp bXBvcnRhbnQgaWYgdHJhbnNpdGlvbgorCSAqIHZhbHVlcyBtYXkgZ3JvdywgZS5nLiBmb3IgQVJS QVlfQUdHKCkuCisJICovCisJaWYgKG5ncm91cHMgPiBhZ2dzdGF0ZS0+aGFzaF9uZ3JvdXBzX2xp bWl0KQorCQlkb19zcGlsbCA9IHRydWU7CisKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUwor CWlmIChuZ3JvdXBzID4gMTAwMCkKIAl7Ci0JCWhhc2hfYWdnX2VudGVyX3NwaWxsX21vZGUoYWdn c3RhdGUpOworCQlpZiAoSVNfSU5KRUNUSU9OX1BPSU5UX0FUVEFDSEVEKCJoYXNoLWFnZ3JlZ2F0 ZS1zcGlsbC0xMDAwIikpCisJCXsKKwkJCWRvX3NwaWxsID0gdHJ1ZTsKKwkJCUlOSkVDVElPTl9Q T0lOVF9DQUNIRUQoImhhc2gtYWdncmVnYXRlLXNwaWxsLTEwMDAiKTsKKwkJfQogCX0KKyNlbmRp ZgorCisJaWYgKGRvX3NwaWxsKQorCQloYXNoX2FnZ19lbnRlcl9zcGlsbF9tb2RlKGFnZ3N0YXRl KTsKIH0KIAogLyoKQEAgLTE4ODEsNiArMTkwOSw3IEBAIGhhc2hfYWdnX2NoZWNrX2xpbWl0cyhB Z2dTdGF0ZSAqYWdnc3RhdGUpCiBzdGF0aWMgdm9pZAogaGFzaF9hZ2dfZW50ZXJfc3BpbGxfbW9k ZShBZ2dTdGF0ZSAqYWdnc3RhdGUpCiB7CisJSU5KRUNUSU9OX1BPSU5UKCJoYXNoLWFnZ3JlZ2F0 ZS1lbnRlci1zcGlsbC1tb2RlIik7CiAJYWdnc3RhdGUtPmhhc2hfc3BpbGxfbW9kZSA9IHRydWU7 CiAJaGFzaGFnZ19yZWNvbXBpbGVfZXhwcmVzc2lvbnMoYWdnc3RhdGUsIGFnZ3N0YXRlLT50YWJs ZV9maWxsZWQsIHRydWUpOwogCkBAIC0yNjUyLDYgKzI2ODEsNyBAQCBhZ2dfcmVmaWxsX2hhc2hf dGFibGUoQWdnU3RhdGUgKmFnZ3N0YXRlKQogCSAqLwogCWhhc2hhZ2dfcmVjb21waWxlX2V4cHJl c3Npb25zKGFnZ3N0YXRlLCB0cnVlLCB0cnVlKTsKIAorCUlOSkVDVElPTl9QT0lOVCgiaGFzaC1h Z2dyZWdhdGUtcHJvY2Vzcy1iYXRjaCIpOwogCWZvciAoOzspCiAJewogCQlUdXBsZVRhYmxlU2xv dCAqc3BpbGxzbG90ID0gYWdnc3RhdGUtPmhhc2hfc3BpbGxfcnNsb3Q7CkBAIC0yOTAwLDYgKzI5 MzAsMTUgQEAgaGFzaGFnZ19zcGlsbF9pbml0KEhhc2hBZ2dTcGlsbCAqc3BpbGwsIExvZ2ljYWxU YXBlU2V0ICp0YXBlc2V0LCBpbnQgdXNlZF9iaXRzLAogCW5wYXJ0aXRpb25zID0gaGFzaF9jaG9v c2VfbnVtX3BhcnRpdGlvbnMoaW5wdXRfZ3JvdXBzLCBoYXNoZW50cnlzaXplLAogCQkJCQkJCQkJ CQkgdXNlZF9iaXRzLCAmcGFydGl0aW9uX2JpdHMpOwogCisjaWZkZWYgVVNFX0lOSkVDVElPTl9Q T0lOVFMKKwlpZiAoSVNfSU5KRUNUSU9OX1BPSU5UX0FUVEFDSEVEKCJoYXNoLWFnZ3JlZ2F0ZS1z aW5nbGUtcGFydGl0aW9uIikpCisJeworCQlucGFydGl0aW9ucyA9IDE7CisJCXBhcnRpdGlvbl9i aXRzID0gMDsKKwkJSU5KRUNUSU9OX1BPSU5UX0NBQ0hFRCgiaGFzaC1hZ2dyZWdhdGUtc2luZ2xl LXBhcnRpdGlvbiIpOworCX0KKyNlbmRpZgorCiAJc3BpbGwtPnBhcnRpdGlvbnMgPSBwYWxsb2Mw KHNpemVvZihMb2dpY2FsVGFwZSAqKSAqIG5wYXJ0aXRpb25zKTsKIAlzcGlsbC0+bnR1cGxlcyA9 IHBhbGxvYzAoc2l6ZW9mKGludDY0KSAqIG5wYXJ0aXRpb25zKTsKIAlzcGlsbC0+aGxsX2NhcmQg PSBwYWxsb2MwKHNpemVvZihoeXBlckxvZ0xvZ1N0YXRlKSAqIG5wYXJ0aXRpb25zKTsKQEAgLTI5 MDgsNyArMjk0NywxMCBAQCBoYXNoYWdnX3NwaWxsX2luaXQoSGFzaEFnZ1NwaWxsICpzcGlsbCwg TG9naWNhbFRhcGVTZXQgKnRhcGVzZXQsIGludCB1c2VkX2JpdHMsCiAJCXNwaWxsLT5wYXJ0aXRp b25zW2ldID0gTG9naWNhbFRhcGVDcmVhdGUodGFwZXNldCk7CiAKIAlzcGlsbC0+c2hpZnQgPSAz MiAtIHVzZWRfYml0cyAtIHBhcnRpdGlvbl9iaXRzOwotCXNwaWxsLT5tYXNrID0gKG5wYXJ0aXRp b25zIC0gMSkgPDwgc3BpbGwtPnNoaWZ0OworCWlmIChzcGlsbC0+c2hpZnQgPCAzMikKKwkJc3Bp bGwtPm1hc2sgPSAobnBhcnRpdGlvbnMgLSAxKSA8PCBzcGlsbC0+c2hpZnQ7CisJZWxzZQorCQlz cGlsbC0+bWFzayA9IDA7CiAJc3BpbGwtPm5wYXJ0aXRpb25zID0gbnBhcnRpdGlvbnM7CiAKIAlm b3IgKGludCBpID0gMDsgaSA8IG5wYXJ0aXRpb25zOyBpKyspCkBAIC0yOTU3LDcgKzI5OTksMTEg QEAgaGFzaGFnZ19zcGlsbF90dXBsZShBZ2dTdGF0ZSAqYWdnc3RhdGUsIEhhc2hBZ2dTcGlsbCAq c3BpbGwsCiAKIAl0dXBsZSA9IEV4ZWNGZXRjaFNsb3RNaW5pbWFsVHVwbGUoc3BpbGxzbG90LCAm c2hvdWxkRnJlZSk7CiAKLQlwYXJ0aXRpb24gPSAoaGFzaCAmIHNwaWxsLT5tYXNrKSA+PiBzcGls bC0+c2hpZnQ7CisJaWYgKHNwaWxsLT5zaGlmdCA8IDMyKQorCQlwYXJ0aXRpb24gPSAoaGFzaCAm IHNwaWxsLT5tYXNrKSA+PiBzcGlsbC0+c2hpZnQ7CisJZWxzZQorCQlwYXJ0aXRpb24gPSAwOwor CiAJc3BpbGwtPm50dXBsZXNbcGFydGl0aW9uXSsrOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQppbmRleCA0ZjAxNjFmZDMzYS4uZTY4MDk5MWY4ZDQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKQEAgLTExLDcg KzExLDcgQEAgRVhURU5TSU9OID0gaW5qZWN0aW9uX3BvaW50cwogREFUQSA9IGluamVjdGlvbl9w b2ludHMtLTEuMC5zcWwKIFBHRklMRURFU0MgPSAiaW5qZWN0aW9uX3BvaW50cyAtIGZhY2lsaXR5 IGZvciBpbmplY3Rpb24gcG9pbnRzIgogCi1SRUdSRVNTID0gaW5qZWN0aW9uX3BvaW50cyByZWlu ZGV4X2NvbmMKK1JFR1JFU1MgPSBpbmplY3Rpb25fcG9pbnRzIGhhc2hhZ2cgcmVpbmRleF9jb25j CiBSRUdSRVNTX09QVFMgPSAtLWRscGF0aD0kKHRvcF9idWlsZGRpcikvc3JjL3Rlc3QvcmVncmVz cwogCiBJU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlIHN5c2NhY2hlLXVwZGF0ZS1wcnVuZWQKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9oYXNo YWdnLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9oYXNo YWdnLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2M0MjQ3YWY5 N2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv ZXhwZWN0ZWQvaGFzaGFnZy5vdXQKQEAgLTAsMCArMSw2OCBAQAorLS0gVGVzdCBmb3IgaGFzaCBh Z2dyZWdhdGlvbgorQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX2F0dGFjaCgnaGFzaC1hZ2dyZWdhdGUtZW50ZXItc3BpbGwtbW9kZScsICdu b3RpY2UnKTsKKyBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdoYXNo LWFnZ3JlZ2F0ZS1wcm9jZXNzLWJhdGNoJywgJ25vdGljZScpOworIGluamVjdGlvbl9wb2ludHNf YXR0YWNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBmb3Jj ZSBwYXJ0aXRpb24gZmFuLW91dCB0byAxCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J2hhc2gtYWdncmVnYXRlLXNpbmdsZS1wYXJ0aXRpb24nLCAnbm90aWNlJyk7CisgaW5qZWN0aW9u X3BvaW50c19hdHRhY2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisK Ky0tIGZvcmNlIHNwaWxsaW5nIGFmdGVyIDEwMDAgZ3JvdXBzCitTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19hdHRhY2goJ2hhc2gtYWdncmVnYXRlLXNwaWxsLTEwMDAnLCAnbm90aWNlJyk7CisgaW5q ZWN0aW9uX3BvaW50c19hdHRhY2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0NSRUFURSBUQUJMRSBoYXNoYWdnX2lqKHggSU5URUdFUik7CitJTlNFUlQgSU5UTyBo YXNoYWdnX2lqIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNTEwMCkgZzsKK1NFVCBt YXhfcGFyYWxsZWxfd29ya2Vycz0wOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRo ZXI9MDsKK1NFVCBlbmFibGVfc29ydD1GQUxTRTsKK1NFVCB3b3JrX21lbT0nNE1CJzsKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIChTRUxFQ1QgRElTVElOQ1QgeCBGUk9NIGhhc2hhZ2dfaWopIHM7CitO T1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFzaC1hZ2dyZWdh dGUtc3BpbGwtMTAwMAorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0aW9uIHBv aW50IGhhc2gtYWdncmVnYXRlLWVudGVyLXNwaWxsLW1vZGUKK05PVElDRTogIG5vdGljZSB0cmln Z2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1zaW5nbGUtcGFydGl0aW9u CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFzaC1hZ2dy ZWdhdGUtcHJvY2Vzcy1iYXRjaAorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5qZWN0 aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLXNwaWxsLTEwMDAKK05PVElDRTogIG5vdGljZSB0cmln Z2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1lbnRlci1zcGlsbC1tb2Rl CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFzaC1hZ2dy ZWdhdGUtc2luZ2xlLXBhcnRpdGlvbgorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5q ZWN0aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLXByb2Nlc3MtYmF0Y2gKK05PVElDRTogIG5vdGlj ZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1zcGlsbC0xMDAw CitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFzaC1hZ2dy ZWdhdGUtZW50ZXItc3BpbGwtbW9kZQorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5q ZWN0aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLXNpbmdsZS1wYXJ0aXRpb24KK05PVElDRTogIG5v dGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1wcm9jZXNz LWJhdGNoCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQgaGFz aC1hZ2dyZWdhdGUtc3BpbGwtMTAwMAorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBmb3IgaW5q ZWN0aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLWVudGVyLXNwaWxsLW1vZGUKK05PVElDRTogIG5v dGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1zaW5nbGUt cGFydGl0aW9uCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQg aGFzaC1hZ2dyZWdhdGUtcHJvY2Vzcy1iYXRjaAorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJlZCBm b3IgaW5qZWN0aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLXNwaWxsLTEwMDAKK05PVElDRTogIG5v dGljZSB0cmlnZ2VyZWQgZm9yIGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1lbnRlci1z cGlsbC1tb2RlCitOT1RJQ0U6ICBub3RpY2UgdHJpZ2dlcmVkIGZvciBpbmplY3Rpb24gcG9pbnQg aGFzaC1hZ2dyZWdhdGUtc2luZ2xlLXBhcnRpdGlvbgorTk9USUNFOiAgbm90aWNlIHRyaWdnZXJl ZCBmb3IgaW5qZWN0aW9uIHBvaW50IGhhc2gtYWdncmVnYXRlLXByb2Nlc3MtYmF0Y2gKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgNTEwMAorKDEgcm93KQorCitEUk9QIFRBQkxFIGhhc2hhZ2dfaWo7CitE Uk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmpl Y3Rpb25fcG9pbnRzL21lc29uLmJ1aWxkCmluZGV4IDI1OTA0NWU1YzJkLi5kNjExNDk3MTJmZCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1aWxk CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZApAQCAt MzUsNiArMzUsNyBAQCB0ZXN0cyArPSB7CiAgICdyZWdyZXNzJzogewogICAgICdzcWwnOiBbCiAg ICAgICAnaW5qZWN0aW9uX3BvaW50cycsCisgICAgICAnaGFzaGFnZycsCiAgICAgICAncmVpbmRl eF9jb25jJywKICAgICBdLAogICAgICdyZWdyZXNzX2FyZ3MnOiBbJy0tZGxwYXRoJywgbWVzb24u YnVpbGRfcm9vdCgpIC8gJ3NyYy90ZXN0L3JlZ3Jlc3MnXSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaGFnZy5zcWwgYi9zcmMvdGVzdC9tb2R1 bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2hhc2hhZ2cuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi41MWQ4MTQ2MjNmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaGFnZy5zcWwKQEAgLTAsMCArMSwy NiBAQAorLS0gVGVzdCBmb3IgaGFzaCBhZ2dyZWdhdGlvbgorQ1JFQVRFIEVYVEVOU0lPTiBpbmpl Y3Rpb25fcG9pbnRzOworCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19zZXRfbG9jYWwoKTsKKwor U0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdoYXNoLWFnZ3JlZ2F0ZS1lbnRlci1zcGls bC1tb2RlJywgJ25vdGljZScpOworU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdoYXNo LWFnZ3JlZ2F0ZS1wcm9jZXNzLWJhdGNoJywgJ25vdGljZScpOworCistLSBmb3JjZSBwYXJ0aXRp b24gZmFuLW91dCB0byAxCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2hhc2gtYWdn cmVnYXRlLXNpbmdsZS1wYXJ0aXRpb24nLCAnbm90aWNlJyk7CisKKy0tIGZvcmNlIHNwaWxsaW5n IGFmdGVyIDEwMDAgZ3JvdXBzCitTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2hhc2gt YWdncmVnYXRlLXNwaWxsLTEwMDAnLCAnbm90aWNlJyk7CisKK0NSRUFURSBUQUJMRSBoYXNoYWdn X2lqKHggSU5URUdFUik7CitJTlNFUlQgSU5UTyBoYXNoYWdnX2lqIFNFTEVDVCBnIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsNTEwMCkgZzsKKworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzPTA7CitT RVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcj0wOworU0VUIGVuYWJsZV9zb3J0PUZB TFNFOworU0VUIHdvcmtfbWVtPSc0TUInOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSAoU0VMRUNU IERJU1RJTkNUIHggRlJPTSBoYXNoYWdnX2lqKSBzOworCitEUk9QIFRBQkxFIGhhc2hhZ2dfaWo7 CitEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOwotLSAKMi4zNC4xCgo= --=-OWHvSwO47R3YpmP2KL1R Content-Disposition: attachment; filename="v2-0002-Minor-refactor-of-hash_agg_set_limits.patch" Content-Type: text/x-patch; name="v2-0002-Minor-refactor-of-hash_agg_set_limits.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjMWE2MTk1MDBhNDFkZWU2NTQ4NjhlZmU0ODBiMGI4YTdjNjdkYzRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDMgRmViIDIwMjUgMTU6MTM6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIHYyIDIvMl0gTWlu b3IgcmVmYWN0b3Igb2YgaGFzaF9hZ2dfc2V0X2xpbWl0cygpLgoKQXZvaWQgaW1wbGljaXQgYXNz dW1wdGlvbiB0aGF0IGlucHV0X2dyb3VwcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwKdG8gb25l LiBUaGUgYXNzdW1wdGlvbiBhcHBlYXJzIHRvIGJlIHRydWUsIGJ1dCBpdCdzIGVhc2llciB0byBy ZWFkCndpdGhvdXQgaXQuCgpBbHNvLCBhIGJyYW5jaCB0aGF0IGF2b2lkZWQgdW5kZXJmbG93IHdo aWxlIGNhbGN1bGF0aW5nIGEgbWF4CndhcyBoYXJkIHRvIHJlYWQ7IHJlcGxhY2Ugd2l0aCBzc2l6 ZV90IHR5cGVzIGFuZCBhIE1heCgpLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cu YyB8IDE4ICsrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IDM1Y2YxOGU1Mjgy Li5mYjQ2N2VjOTg3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtMTgwOSw4ICsxODA5LDgg QEAgaGFzaF9hZ2dfc2V0X2xpbWl0cyhkb3VibGUgaGFzaGVudHJ5c2l6ZSwgZG91YmxlIGlucHV0 X2dyb3VwcywgaW50IHVzZWRfYml0cywKIAkJCQkJaW50ICpudW1fcGFydGl0aW9ucykKIHsKIAlp bnQJCQlucGFydGl0aW9uczsKLQlTaXplCQlwYXJ0aXRpb25fbWVtOwotCVNpemUJCWhhc2hfbWVt X2xpbWl0ID0gZ2V0X2hhc2hfbWVtb3J5X2xpbWl0KCk7CisJc3NpemVfdAkJcGFydGl0aW9uX21l bTsKKwlzc2l6ZV90CQloYXNoX21lbV9saW1pdCA9IGdldF9oYXNoX21lbW9yeV9saW1pdCgpOwog CiAJLyogaWYgbm90IGV4cGVjdGVkIHRvIHNwaWxsLCB1c2UgYWxsIG9mIGhhc2hfbWVtICovCiAJ aWYgKGlucHV0X2dyb3VwcyAqIGhhc2hlbnRyeXNpemUgPD0gaGFzaF9tZW1fbGltaXQpCkBAIC0x ODE4LDcgKzE4MTgsNyBAQCBoYXNoX2FnZ19zZXRfbGltaXRzKGRvdWJsZSBoYXNoZW50cnlzaXpl LCBkb3VibGUgaW5wdXRfZ3JvdXBzLCBpbnQgdXNlZF9iaXRzLAogCQlpZiAobnVtX3BhcnRpdGlv bnMgIT0gTlVMTCkKIAkJCSpudW1fcGFydGl0aW9ucyA9IDA7CiAJCSptZW1fbGltaXQgPSBoYXNo X21lbV9saW1pdDsKLQkJKm5ncm91cHNfbGltaXQgPSBoYXNoX21lbV9saW1pdCAvIGhhc2hlbnRy eXNpemU7CisJCSpuZ3JvdXBzX2xpbWl0ID0gTWF4KCptZW1fbGltaXQgLyBoYXNoZW50cnlzaXpl LCAxKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMTg0MSwxNyArMTg0MSwxMSBAQCBoYXNoX2FnZ19z ZXRfbGltaXRzKGRvdWJsZSBoYXNoZW50cnlzaXplLCBkb3VibGUgaW5wdXRfZ3JvdXBzLCBpbnQg dXNlZF9iaXRzLAogCS8qCiAJICogRG9uJ3Qgc2V0IHRoZSBsaW1pdCBiZWxvdyAzLzQgb2YgaGFz aF9tZW0uIEluIHRoYXQgY2FzZSwgd2UgYXJlIGF0IHRoZQogCSAqIG1pbmltdW0gbnVtYmVyIG9m IHBhcnRpdGlvbnMsIHNvIHdlIGFyZW4ndCBnb2luZyB0byBkcmFtYXRpY2FsbHkgZXhjZWVkCi0J ICogd29yayBtZW0gYW55d2F5LgorCSAqIHdvcmsgbWVtIGFueXdheS4gVXNlIHNzaXplX3QgdG8g YXZvaWQgdW5kZXJmbG93IGR1cmluZyBzdWJ0cmFjdGlvbi4KIAkgKi8KLQlpZiAoaGFzaF9tZW1f bGltaXQgPiA0ICogcGFydGl0aW9uX21lbSkKLQkJKm1lbV9saW1pdCA9IGhhc2hfbWVtX2xpbWl0 IC0gcGFydGl0aW9uX21lbTsKLQllbHNlCi0JCSptZW1fbGltaXQgPSBoYXNoX21lbV9saW1pdCAq IDAuNzU7CisJKm1lbV9saW1pdCA9IE1heChoYXNoX21lbV9saW1pdCAtIHBhcnRpdGlvbl9tZW0s IGhhc2hfbWVtX2xpbWl0ICogMC43NSk7CiAKLQlpZiAoKm1lbV9saW1pdCA+IGhhc2hlbnRyeXNp emUpCi0JCSpuZ3JvdXBzX2xpbWl0ID0gKm1lbV9saW1pdCAvIGhhc2hlbnRyeXNpemU7Ci0JZWxz ZQotCQkqbmdyb3Vwc19saW1pdCA9IDE7CisJKm5ncm91cHNfbGltaXQgPSBNYXgoKm1lbV9saW1p dCAvIGhhc2hlbnRyeXNpemUsIDEpOwogfQogCiAvKgotLSAKMi4zNC4xCgo= --=-OWHvSwO47R3YpmP2KL1R--