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.96) (envelope-from ) id 1wBIJb-000v1p-0Y for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 20:18:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wBIJZ-00ERVf-0n for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Apr 2026 20:18:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wBIJY-00ERVV-2q for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 20:18:53 +0000 Received: from mail-vs1-xe31.google.com ([2607:f8b0:4864:20::e31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wBIJX-00000000Pg6-24S2 for pgsql-hackers@lists.postgresql.org; Fri, 10 Apr 2026 20:18:53 +0000 Received: by mail-vs1-xe31.google.com with SMTP id ada2fe7eead31-605a27fa8d5so1538769137.1 for ; Fri, 10 Apr 2026 13:18:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775852329; cv=none; d=google.com; s=arc-20240605; b=ibh9flsYPcLlcOCB6iEm4QurJQVr7Sk2oKg+AhSF3QbaOf3X0mjinIJ0aR+TADx4rk nCyl/w78BvMRzFPPX4y4bdFwGVeCGuBIPXE+avoietw1wZMAKRmktlVCqdSUELjwQMLu DIHeOya+EoLnQR539dFL+xbz5Xy0kA9zokx8CI1kxhdai8++RP7lCDWX4Q9g7XV9Oe/x p9/QNa+VPXTWs2VGAci7lYktRni1sFu495b3NcNWwXNekm+HqVd+uKv7BZvxolJOUDwA mazVKJbfWjcmILUjhpwFHtbhCBDNax++WTRNfvePnrgsh7+OCYng+Gx2KYN3CgbQCaPI xRAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=F/nhI+ck0V3bruulsjlJJB1L+9wUYKkGGygRTZVdnKs=; fh=B8BFyyZe/3mSJIder0nVmHfh2GHp1mhG3d3TwSOAXzU=; b=TfjjaQ6HVvyv6oL+SNvm4flL09YpXVYUQIC1L/+dUtpEA/eLaLrBXnRkJ1xiXR0qIu A2KQhNGKnKFNsUHi6GDPgnGZvZEq6n6y7wWyTdcnCs28POhcb8Ga+gh53gIeHGVOAJud yOa7d+qXC16LUDke0wMge3FomqQnqkDHjwVWNzQYVE4cTQuIPaxauyHZ5waVXzCERWq3 PV22ESRuPSCpe9eWk1I5nqUphrdVBdEF+vBki/btm+iioywbY5DXePouNoss17CsfJed KivXw/uboMTmPqOsI/2oyn82ZbI4CJsoetoEP2+neLL/GnO93078GYv8IwWVEnHyJ40T p4Kw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775852329; x=1776457129; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=F/nhI+ck0V3bruulsjlJJB1L+9wUYKkGGygRTZVdnKs=; b=VrpZrxzbzBkF/ERlZSFFd9fjKE0+vYHLstsJXJHDwanv/U4fxCIdtgjSHPQ0wOa+IJ r8AJQsuojPdyY1Xp/gAJfub/klAKWgIO1d72eSwgBK56DsZEQ4GH1+Ol2LVSgGlvkm6W QMAZrQOnUoN2I4/bxRm+P5YRs7PShnMYQsjGFG8OHQFFCE9DUSFIoluwcQp+j3KJHSA+ 3lMgmiDS80UUEigep0uPjYrfZQ4m3Vm+3Dw/h3ef8ejIuvlwT7/h1O2fo1VoORDHmO7f VRR5KAEiSQP1SV82fiT9Y09SZTyW9urUr6gDa65LB3PL4vhP3qj8qG/zIFgwSneNe5Bz 9HmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775852329; x=1776457129; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=F/nhI+ck0V3bruulsjlJJB1L+9wUYKkGGygRTZVdnKs=; b=AmEhWVVtUDG8hdtRneul7TnvAhdjYDz4djlVxwLbhv87nx1RAeW/IkhrQ5MIVCX3la ukYe80MQyfdwVcPHSufxF6kTgtV8XGI1oNpIpap8axTlMsgg6CQEMaezMg6jYWbo+AX1 3JGroNeH3SLjWAFW0okFcf7KzTEoXDQ021DSAr62wr+uoA2bAMFjWsMbQuuUegIq7hmt nayPrI84cOZYCNvnkvuNhRxwVUz8Sz1HRoTd4t7NEGYhswCNdTOxjBDSRlr/3MG/Jx1s 0r8iKbznQp5QN6/xaUoa5ECW75cw+Uvm4FuydRQ97c0LRNdQZgJ0its1qbi5W1IwVX0L QbIw== X-Gm-Message-State: AOJu0YwN6ZYYwU+BHtYFcKaaSnFZFleaylwcrqlrICqi9tsj7wocWw6t MLSczrwccFxZU+JF2Idm9aFfaKXMyhxif5YTqgOdWRtKn53EZY6z743M6xvfIBpa1YKsMKttn6+ YptQBwcIzKxRbaocBb9DeKse2eAYqL+FD2k73 X-Gm-Gg: AeBDietSxf5w3rZv2w0aK+Zo7d6i12muoOv2fxV5IX8Moh+ciPTasZiaxgUoWrg/0/k xGnKhWI/mRnMO4ZisSwiufeRHBUWl7qpIWqAePa0/LqobAiiGEL9CiyA/AYcw9dqhL7IfloPEqL 7Eh8h+JvErXeTOOYuDl88DFdrH2IEqcHk2Tp49zcL7x6gtEG7EKI3o106oFS12WFp63k2jhKHGj 9JKXO51JJogmG3MazqJiDaxBvdpOmbstWTrTH+Sa0zBfQNj4zlJo/tW02OjHSFRQiofHrqNTfUo zk1WMdxlHPsYRxJr+luKuronxH9NWuEBmU2/7Bf+iCjm/r+t X-Received: by 2002:a05:6102:b15:b0:608:ad9c:4c36 with SMTP id ada2fe7eead31-609ff1c4907mr2515207137.11.1775852329140; Fri, 10 Apr 2026 13:18:49 -0700 (PDT) MIME-Version: 1.0 From: SATYANARAYANA NARLAPURAM Date: Fri, 10 Apr 2026 13:18:36 -0700 X-Gm-Features: AQROBzCOaIf5ljmln-9dpyUOiNWe1OGbyBVE75dJTlBoNaY8Ust25CsKnHIecEU Message-ID: Subject: Infinite Autovacuum loop caused by failing virtual generated column expression To: PostgreSQL Hackers , nagata@sraoss.co.jp Content-Type: multipart/mixed; boundary="00000000000040ac0a064f20d7f5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000040ac0a064f20d7f5 Content-Type: multipart/alternative; boundary="00000000000040ac0a064f20d7f3" --00000000000040ac0a064f20d7f3 Content-Type: text/plain; charset="UTF-8" Hi Hackers, PG19 added support for stats on virtual generated columns [1]. Creating extended statistics on a virtual generated column whose expression can raise an error leads to ANALYZE failing repeatedly, and autovacuum retrying indefinitely. This floods the server logs and also wastes resources. Vacuum analyze on that column (without extended stats) succeeds. In order to avoid retry storms, I think we have two options. (1) skipping the offending row from the sample, (2) skipping the extended stats computation for that table with a warning message. At least this avoid autovacuum infinite retry. Attached a draft patch for the option (2). Thoughts? Repro: CREATE TABLE t ( id int PRIMARY KEY, a int, gen int GENERATED ALWAYS AS (100 / a) VIRTUAL ); INSERT INTO t VALUES (1, 10), (2, 5), (3, 0); -- This succeeds (per-column stats don't evaluate the expression for every row) ANALYZE t; -- Add extended statistics referencing the virtual gen col CREATE STATISTICS t_stat ON a, gen FROM t; -- This fails ANALYZE t; -- ERROR: division by zero -- this succeeds ANALYZE t(gen) [1]: https://www.postgresql.org/message-id/flat/20250422181006.dd6f9d1d81299f5b2ad55e1a%40sraoss.co.jp Thanks, Satya --00000000000040ac0a064f20d7f3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

PG19 added support for stat= s on virtual generated columns [1]. Creating extended statistics on a virtu= al generated column whose expression can raise an error leads to ANALYZE fa= iling repeatedly, and autovacuum retrying indefinitely. This floods the ser= ver logs and also wastes resources. Vacuum analyze on that column=C2=A0(wit= hout extended stats) succeeds.

In order to avoid r= etry storms, I think we have two options. (1) skipping=C2=A0the offending r= ow from the sample, (2) skipping the extended stats computation for that ta= ble with a warning message. At least this avoid autovacuum infinite retry. = Attached a draft patch for the option (2). Thoughts?


Repro:

CREATE TABLE t (
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 id int PRIMARY KEY,
=C2=A0 =C2=A0 =C2=A0 =C2=A0= a int,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 gen int GENERATED ALWAYS AS (100 / a= ) VIRTUAL
=C2=A0 =C2=A0 );
=C2=A0 =C2=A0 INSERT INTO t VALUES (1, 10)= , (2, 5), (3, 0);

=C2=A0 =C2=A0 -- This succeeds (per-column stats d= on't evaluate the expression for every row)
=C2=A0 =C2=A0 ANALYZE t;=

=C2=A0 =C2=A0 -- Add extended statistics referencing the virtual ge= n col
=C2=A0 =C2=A0 CREATE STATISTICS t_stat ON a, gen FROM t;

= =C2=A0 =C2=A0 -- This fails
=C2=A0 =C2=A0 ANALYZE t;
=C2=A0 =C2=A0 --= ERROR: =C2=A0division by zero

-- this succeed= s
ANALYZE t(gen)

=C2=A0
Thanks,
Satya



= --00000000000040ac0a064f20d7f3-- --00000000000040ac0a064f20d7f5 Content-Type: application/octet-stream; name="v1-0001-fix-analyze-extended-stats-virtual-gen-col.patch" Content-Disposition: attachment; filename="v1-0001-fix-analyze-extended-stats-virtual-gen-col.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mntcj6s11 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYyBiL3Ny Yy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMuYwppbmRleCAyYjgzMzU1ZC4uYmEy NWRkNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMu YworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMKQEAgLTMzLDYg KzMzLDcgQEAKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92 YWN1dW0uaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVkZSAi dXRpbHMvcmVzb3duZXIuaCIKICNpbmNsdWRlICJzdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzX2lu dGVybmFsLmgiCiAjaW5jbHVkZSAic3RhdGlzdGljcy9zdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAi dXRpbHMvYWNsLmgiCkBAIC0xOTQsNDIgKzE5NSwxMTIgQEAgQnVpbGRSZWxhdGlvbkV4dFN0YXRp c3RpY3MoUmVsYXRpb24gb25lcmVsLCBib29sIGluaCwgZG91YmxlIHRvdGFscm93cywKIAkJaWYg KHN0YXR0YXJnZXQgPT0gMCkKIAkJCWNvbnRpbnVlOwogCi0JCS8qIGV2YWx1YXRlIGV4cHJlc3Np b25zIChpZiB0aGUgc3RhdGlzdGljcyBvYmplY3QgaGFzIGFueSkgKi8KLQkJZGF0YSA9IG1ha2Vf YnVpbGRfZGF0YShvbmVyZWwsIHN0YXQsIG51bXJvd3MsIHJvd3MsIHN0YXRzLCBzdGF0dGFyZ2V0 KTsKLQotCQkvKiBjb21wdXRlIHN0YXRpc3RpYyBvZiBlYWNoIHJlcXVlc3RlZCB0eXBlICovCi0J CWZvcmVhY2gobGMyLCBzdGF0LT50eXBlcykKKwkJLyoKKwkJICogV3JhcCBleHByZXNzaW9uIGV2 YWx1YXRpb24gYW5kIHN0YXRzIGNvbXB1dGF0aW9uIGluIFBHX1RSWSBzbworCQkgKiB0aGF0IGVy cm9ycyBmcm9tIGV2YWx1YXRpbmcgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIGV4cHJlc3Npb25z CisJCSAqIChlLmcuIGRpdmlzaW9uIGJ5IHplcm8pIGRvbid0IGNhdXNlIEFOQUxZWkUgdG8gZmFp bCBlbnRpcmVseS4KKwkJICogU2tpcCB0aGUgc3RhdGlzdGljcyBvYmplY3QgYW5kIGlzc3VlIGEg V0FSTklORyBpbnN0ZWFkLgorCQkgKgorCQkgKiBVc2VkIGNoaWxkIFJlc291cmNlT3duZXIgc28g dGhhdCBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZAorCQkgKiBkdXJpbmcgZXhwcmVzc2lvbiBldmFs dWF0aW9uIGFyZSBwcm9wZXJseSByZWxlYXNlZCBvbiAKKwkJICogZXJyb3Igd2l0aG91dCBsZWFr aW5nLgorCQkgKi8KIAkJewotCQkJY2hhcgkJdCA9IChjaGFyKSBsZmlyc3RfaW50KGxjMik7Ci0K LQkJCWlmICh0ID09IFNUQVRTX0VYVF9ORElTVElOQ1QpCi0JCQkJbmRpc3RpbmN0ID0gc3RhdGV4 dF9uZGlzdGluY3RfYnVpbGQodG90YWxyb3dzLCBkYXRhKTsKLQkJCWVsc2UgaWYgKHQgPT0gU1RB VFNfRVhUX0RFUEVOREVOQ0lFUykKLQkJCQlkZXBlbmRlbmNpZXMgPSBzdGF0ZXh0X2RlcGVuZGVu Y2llc19idWlsZChkYXRhKTsKLQkJCWVsc2UgaWYgKHQgPT0gU1RBVFNfRVhUX01DVikKLQkJCQlt Y3YgPSBzdGF0ZXh0X21jdl9idWlsZChkYXRhLCB0b3RhbHJvd3MsIHN0YXR0YXJnZXQpOwotCQkJ ZWxzZSBpZiAodCA9PSBTVEFUU19FWFRfRVhQUkVTU0lPTlMpCisJCQlSZXNvdXJjZU93bmVyIG9s ZG93bmVyID0gQ3VycmVudFJlc291cmNlT3duZXI7CisJCQlSZXNvdXJjZU93bmVyIGNoaWxkOwor CisJCQljaGlsZCA9IFJlc291cmNlT3duZXJDcmVhdGUob2xkb3duZXIsICJCdWlsZEV4dFN0YXRp c3RpY3MiKTsKKwkJCUN1cnJlbnRSZXNvdXJjZU93bmVyID0gY2hpbGQ7CisKKwkJCVBHX1RSWSgp OwogCQkJewotCQkJCUFubEV4cHJEYXRhICpleHByZGF0YTsKLQkJCQlpbnQJCQluZXhwcnM7CisJ CQkJLyogZXZhbHVhdGUgZXhwcmVzc2lvbnMgKGlmIHRoZSBzdGF0aXN0aWNzIGhhcyBhbnkpICov CisJCQkJZGF0YSA9IG1ha2VfYnVpbGRfZGF0YShvbmVyZWwsIHN0YXQsIG51bXJvd3MsIHJvd3Ms CisJCQkJCQkJCQkgICBzdGF0cywgc3RhdHRhcmdldCk7CiAKLQkJCQkvKiBzaG91bGQgbm90IGhh cHBlbiwgdGhhbmtzIHRvIGNoZWNrcyB3aGVuIGRlZmluaW5nIHN0YXRzICovCi0JCQkJaWYgKCFz dGF0LT5leHBycykKLQkJCQkJZWxvZyhFUlJPUiwgInJlcXVlc3RlZCBleHByZXNzaW9uIHN0YXRz LCBidXQgdGhlcmUgYXJlIG5vIGV4cHJlc3Npb25zIik7CisJCQkJLyogY29tcHV0ZSBzdGF0aXN0 aWMgb2YgZWFjaCByZXF1ZXN0ZWQgdHlwZSAqLworCQkJCWZvcmVhY2gobGMyLCBzdGF0LT50eXBl cykKKwkJCQl7CisJCQkJCWNoYXIJCXQgPSAoY2hhcikgbGZpcnN0X2ludChsYzIpOworCisJCQkJ CWlmICh0ID09IFNUQVRTX0VYVF9ORElTVElOQ1QpCisJCQkJCQluZGlzdGluY3QgPSBzdGF0ZXh0 X25kaXN0aW5jdF9idWlsZCh0b3RhbHJvd3MsIGRhdGEpOworCQkJCQllbHNlIGlmICh0ID09IFNU QVRTX0VYVF9ERVBFTkRFTkNJRVMpCisJCQkJCQlkZXBlbmRlbmNpZXMgPSBzdGF0ZXh0X2RlcGVu ZGVuY2llc19idWlsZChkYXRhKTsKKwkJCQkJZWxzZSBpZiAodCA9PSBTVEFUU19FWFRfTUNWKQor CQkJCQkJbWN2ID0gc3RhdGV4dF9tY3ZfYnVpbGQoZGF0YSwgdG90YWxyb3dzLCBzdGF0dGFyZ2V0 KTsKKwkJCQkJZWxzZSBpZiAodCA9PSBTVEFUU19FWFRfRVhQUkVTU0lPTlMpCisJCQkJCXsKKwkJ CQkJCUFubEV4cHJEYXRhICpleHByZGF0YTsKKwkJCQkJCWludAkJCW5leHByczsKKworCQkJCQkJ Lyogc2hvdWxkIG5vdCBoYXBwZW4sIHRoYW5rcyB0byBjaGVja3MgKi8KKwkJCQkJCWlmICghc3Rh dC0+ZXhwcnMpCisJCQkJCQkJZWxvZyhFUlJPUiwgInJlcXVlc3RlZCBleHByZXNzaW9uIHN0YXRz LCBidXQgdGhlcmUgYXJlIG5vIGV4cHJlc3Npb25zIik7CisKKwkJCQkJCWV4cHJkYXRhID0gYnVp bGRfZXhwcl9kYXRhKHN0YXQtPmV4cHJzLCBzdGF0dGFyZ2V0KTsKKwkJCQkJCW5leHBycyA9IGxp c3RfbGVuZ3RoKHN0YXQtPmV4cHJzKTsKKworCQkJCQkJY29tcHV0ZV9leHByX3N0YXRzKG9uZXJl bCwgZXhwcmRhdGEsIG5leHBycywKKwkJCQkJCQkJCQkgICByb3dzLCBudW1yb3dzKTsKKworCQkJ CQkJZXhwcnN0YXRzID0gc2VyaWFsaXplX2V4cHJfc3RhdHMoZXhwcmRhdGEsIG5leHBycyk7CisJ CQkJCX0KKwkJCQl9CiAKLQkJCQlleHByZGF0YSA9IGJ1aWxkX2V4cHJfZGF0YShzdGF0LT5leHBy cywgc3RhdHRhcmdldCk7Ci0JCQkJbmV4cHJzID0gbGlzdF9sZW5ndGgoc3RhdC0+ZXhwcnMpOwor CQkJCS8qIHN0b3JlIHRoZSBzdGF0aXN0aWNzIGluIHRoZSBjYXRhbG9nICovCisJCQkJc3RhdGV4 dF9zdG9yZShzdGF0LT5zdGF0T2lkLCBpbmgsCisJCQkJCQkJICBuZGlzdGluY3QsIGRlcGVuZGVu Y2llcywgbWN2LCBleHByc3RhdHMsIHN0YXRzKTsKKworCQkJCS8qIFN1Y2Nlc3M6IHJlbGVhc2Ug Y2hpbGQgUmVzb3VyY2VPd25lciBub3JtYWxseSAqLworCQkJCUN1cnJlbnRSZXNvdXJjZU93bmVy ID0gb2xkb3duZXI7CisJCQkJUmVzb3VyY2VPd25lclJlbGVhc2UoY2hpbGQsCisJCQkJCQkJCQkg UkVTT1VSQ0VfUkVMRUFTRV9CRUZPUkVfTE9DS1MsCisJCQkJCQkJCQkgZmFsc2UsIGZhbHNlKTsK KwkJCQlSZXNvdXJjZU93bmVyUmVsZWFzZShjaGlsZCwKKwkJCQkJCQkJCSBSRVNPVVJDRV9SRUxF QVNFX0xPQ0tTLAorCQkJCQkJCQkJIGZhbHNlLCBmYWxzZSk7CisJCQkJUmVzb3VyY2VPd25lclJl bGVhc2UoY2hpbGQsCisJCQkJCQkJCQkgUkVTT1VSQ0VfUkVMRUFTRV9BRlRFUl9MT0NLUywKKwkJ CQkJCQkJCSBmYWxzZSwgZmFsc2UpOworCQkJCVJlc291cmNlT3duZXJEZWxldGUoY2hpbGQpOwor CQkJfQorCQkJUEdfQ0FUQ0goKTsKKwkJCXsKKwkJCQlFcnJvckRhdGEgICplZGF0YTsKKworCQkJ CS8qIFJlbGVhc2UgbGVha2VkIHJlc291cmNlcyBmcm9tIHRoZSBjaGlsZCBSZXNvdXJjZU93bmVy ICovCisJCQkJQ3VycmVudFJlc291cmNlT3duZXIgPSBjaGlsZDsKKwkJCQlSZXNvdXJjZU93bmVy UmVsZWFzZShjaGlsZCwKKwkJCQkJCQkJCSBSRVNPVVJDRV9SRUxFQVNFX0JFRk9SRV9MT0NLUywK KwkJCQkJCQkJCSBmYWxzZSwgZmFsc2UpOworCQkJCVJlc291cmNlT3duZXJSZWxlYXNlKGNoaWxk LAorCQkJCQkJCQkJIFJFU09VUkNFX1JFTEVBU0VfTE9DS1MsCisJCQkJCQkJCQkgZmFsc2UsIGZh bHNlKTsKKwkJCQlSZXNvdXJjZU93bmVyUmVsZWFzZShjaGlsZCwKKwkJCQkJCQkJCSBSRVNPVVJD RV9SRUxFQVNFX0FGVEVSX0xPQ0tTLAorCQkJCQkJCQkJIGZhbHNlLCBmYWxzZSk7CisJCQkJQ3Vy cmVudFJlc291cmNlT3duZXIgPSBvbGRvd25lcjsKKwkJCQlSZXNvdXJjZU93bmVyRGVsZXRlKGNo aWxkKTsKKworCQkJCS8qIFNhdmUgdGhlIGVycm9yLCBpc3N1ZSBhIFdBUk5JTkcgYW5kIGNvbnRp bnVlICovCisJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKGN4dCk7CisJCQkJZWRhdGEgPSBDb3B5 RXJyb3JEYXRhKCk7CisJCQkJRmx1c2hFcnJvclN0YXRlKCk7CiAKLQkJCQljb21wdXRlX2V4cHJf c3RhdHMob25lcmVsLCBleHByZGF0YSwgbmV4cHJzLCByb3dzLCBudW1yb3dzKTsKKwkJCQllcmVw b3J0KFdBUk5JTkcsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1dBUk5JTkcpLAorCQkJCQkJIGVy cm1zZygic2tpcHBpbmcgc3RhdGlzdGljcyBvYmplY3QgXCIlcy4lc1wiIGZvciByZWxhdGlvbiBc IiVzLiVzXCIiLAorCQkJCQkJCQlzdGF0LT5zY2hlbWEsIHN0YXQtPm5hbWUsCisJCQkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShvbmVyZWwtPnJkX3JlbC0+cmVsbmFtZXNwYWNlKSwKKwkJCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob25lcmVsKSksCisJCQkJCQkgZXJyZGV0YWlsKCIlcyIs IGVkYXRhLT5tZXNzYWdlKSkpOwogCi0JCQkJZXhwcnN0YXRzID0gc2VyaWFsaXplX2V4cHJfc3Rh dHMoZXhwcmRhdGEsIG5leHBycyk7CisJCQkJRnJlZUVycm9yRGF0YShlZGF0YSk7CiAJCQl9CisJ CQlQR19FTkRfVFJZKCk7CiAJCX0KIAotCQkvKiBzdG9yZSB0aGUgc3RhdGlzdGljcyBpbiB0aGUg Y2F0YWxvZyAqLwotCQlzdGF0ZXh0X3N0b3JlKHN0YXQtPnN0YXRPaWQsIGluaCwKLQkJCQkJICBu ZGlzdGluY3QsIGRlcGVuZGVuY2llcywgbWN2LCBleHByc3RhdHMsIHN0YXRzKTsKLQogCQkvKiBm b3IgcmVwb3J0aW5nIHByb2dyZXNzICovCiAJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0o UFJPR1JFU1NfQU5BTFlaRV9FWFRfU1RBVFNfQ09NUFVURUQsCiAJCQkJCQkJCQkgKytleHRfY250 KTsK --00000000000040ac0a064f20d7f5 Content-Type: application/octet-stream; name="v1-0001-test-analyze-extended-stats-virtual-gen-col.patch" Content-Disposition: attachment; filename="v1-0001-test-analyze-extended-stats-virtual-gen-col.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mntcj6rt0 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAppbmRleCAzNzA3MGMxYS4uNzIz NGQ2YjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQKQEAgLTMyMDcs NiArMzIwNywxNCBAQCBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1Qg KiBGUk9NIHZpcnR1YWxfZ2VuX3N0YXRzIFdIRVJFIHcgPSAwJwogKDEgcm93KQogCiBEUk9QIFRB QkxFIHZpcnR1YWxfZ2VuX3N0YXRzOworLS0gZXh0ZW5kZWQgc3RhdGlzdGljcyBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIHdob3NlIGV4cHJlc3Npb25zIGNhbiBlcnJvcgorQ1JFQVRFIFRB QkxFIHZpcnR1YWxfZ2VuX2VyciAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg LyAwKSBWSVJUVUFMKTsKK0lOU0VSVCBJTlRPIHZpcnR1YWxfZ2VuX2VyciBWQUxVRVMgKDEpLCAo MiksICgzKTsKK0NSRUFURSBTVEFUSVNUSUNTIHZpcnR1YWxfZ2VuX2Vycl9zIE9OIGEsIGIgRlJP TSB2aXJ0dWFsX2dlbl9lcnI7CitBTkFMWVpFIHZpcnR1YWxfZ2VuX2VycjsgIC0tIHNob3VsZCB3 YXJuLCBub3QgZmFpbAorV0FSTklORzogIHNraXBwaW5nIHN0YXRpc3RpY3Mgb2JqZWN0ICJwdWJs aWMudmlydHVhbF9nZW5fZXJyX3MiIGZvciByZWxhdGlvbiAicHVibGljLnZpcnR1YWxfZ2VuX2Vy ciIKK0RFVEFJTDogIGRpdmlzaW9uIGJ5IHplcm8KK0RST1AgVEFCTEUgdmlydHVhbF9nZW5fZXJy OwogLS0gUGVybWlzc2lvbiB0ZXN0cy4gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNlZSBz cGVjaWZpYyBkYXRhIHZhbHVlcyBpbgogLS0gdGhlIGV4dGVuZGVkIHN0YXRpc3RpY3MsIGlmIHRo ZXkgbGFjayBwZXJtaXNzaW9uIHRvIHNlZSB0aG9zZSB2YWx1ZXMgaW4KIC0tIHRoZSB1bmRlcmx5 aW5nIHRhYmxlLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4dC5zcWwKaW5kZXggM2NjNjAxMmIuLjEw OTE4ZmZiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4dC5zcWwKQEAgLTE2MDgsNiArMTYwOCwx MyBAQCBTRUxFQ1QgKiBGUk9NIGNoZWNrX2VzdGltYXRlZF9yb3dzKCdTRUxFQ1QgKiBGUk9NIHZp cnR1YWxfZ2VuX3N0YXRzIFdIRVJFIHcgPSAwJwogCiBEUk9QIFRBQkxFIHZpcnR1YWxfZ2VuX3N0 YXRzOwogCistLSBleHRlbmRlZCBzdGF0aXN0aWNzIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMgd2hvc2UgZXhwcmVzc2lvbnMgY2FuIGVycm9yCitDUkVBVEUgVEFCTEUgdmlydHVhbF9nZW5f ZXJyIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDApIFZJUlRVQUwpOwor SU5TRVJUIElOVE8gdmlydHVhbF9nZW5fZXJyIFZBTFVFUyAoMSksICgyKSwgKDMpOworQ1JFQVRF IFNUQVRJU1RJQ1MgdmlydHVhbF9nZW5fZXJyX3MgT04gYSwgYiBGUk9NIHZpcnR1YWxfZ2VuX2Vy cjsKK0FOQUxZWkUgdmlydHVhbF9nZW5fZXJyOyAgLS0gc2hvdWxkIHdhcm4sIG5vdCBmYWlsCitE Uk9QIFRBQkxFIHZpcnR1YWxfZ2VuX2VycjsKKwogLS0gUGVybWlzc2lvbiB0ZXN0cy4gVXNlcnMg c2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNlZSBzcGVjaWZpYyBkYXRhIHZhbHVlcyBpbgogLS0gdGhl IGV4dGVuZGVkIHN0YXRpc3RpY3MsIGlmIHRoZXkgbGFjayBwZXJtaXNzaW9uIHRvIHNlZSB0aG9z ZSB2YWx1ZXMgaW4KIC0tIHRoZSB1bmRlcmx5aW5nIHRhYmxlLgo= --00000000000040ac0a064f20d7f5--