Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nAyhQ-0005UH-KX for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Jan 2022 18:31:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nAyhP-0007zu-Gp for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Jan 2022 18:31:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nAyhO-0007zl-S5 for pgsql-hackers@lists.postgresql.org; Fri, 21 Jan 2022 18:31:47 +0000 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nAyhK-0003p7-AV for pgsql-hackers@postgresql.org; Fri, 21 Jan 2022 18:31:46 +0000 Received: by mail-ej1-x62e.google.com with SMTP id s13so2409793ejy.3 for ; Fri, 21 Jan 2022 10:31:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to; bh=j2l6TpkdSN+3aB1HRLkwIh74Z7me1BYSS+VzShc9g/A=; b=JUPPh7YFpIrII1iUcKrv7qpiTIO1ZnzY47tSv84tJfOtQPwXox3pntx0OKZZfq2be3 uC1TbBrWDIua46dPevp18i9sThf+VOSrRz230WzZ+Ui7hYd+Kw61F1O+YxhyvK1k/Jsd eBM37s7tukYth2LQ8oBdecpraZVqkbUfBbToTkPDmEOfVuWlKt11ntSwJqcj50DRhS5u VJRgbrkf06sOP9NY12a3GGBn6ccmzW8cdEvhJSMfIan1KZBeKLQJRrbShMm4vnTbmCou KVhjFX1LDchaFYOtvnG9y/5MmDl48LQt4HszgPE+f8HOI7/O4ExTsLQhYCByyFuVUv9g UeIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to; bh=j2l6TpkdSN+3aB1HRLkwIh74Z7me1BYSS+VzShc9g/A=; b=3O8XCihp9hDsfJ+34zRNlcfWPye7/tIU7eLURr8kPU69jfxPq2N9kO43JLrU2Nkh4X fD8cBt9HwKhaFdLxyJNE8ranAuFsqXG8Nf6cHOJwyNOHb3GboP4YSSzmwA11aHgwwLrh AIZwz2kKiCwY271/jTd0uzuZiXsMuU4XT7w12xk5b6RAJktPZ0HdlYTxyupk2hEu8reP GeQruSyHMaOjF0G5kr0vIUYtqroSc7QbUreihcIRpi4AxuYvZkOY5kJmYnwJPWScAF7g 3q0y8fCqGjTTEwCcvib/2cGOm83KnCJK7FV6sJ8aTwSiQU9HKtvTskVjOHDp//9qUIRC VABQ== X-Gm-Message-State: AOAM5308M5ijF2Uyj0hDyRuU3iEQyTNj+82fXUFkpS+opkM1wzwKiuAA eaecRmcEjzP0lG222VNRPF5t+zL9IoNdgQeqspu0un61+UEdSzqvBu4wkFENE8NlLVv19+6puyG KsJUe36sfrDKjjjAXyEeFXqSCgXKbL7McK/UNZ/umZJ1QGK++/Z0XIjPccpeMXd0pM8R8oE0sbR c3q1oQio8zbjCWzoGvQrflCa0ZohK9up4+/vpHt5O1FP3U X-Google-Smtp-Source: ABdhPJz+unXV5qW0LCXLuBXh3ElC/cCPNJ7bqrKF5lwdRU2uQWTXEiy4dF3xNNUfraidyohNOk7b+Q== X-Received: by 2002:a17:906:d045:: with SMTP id bo5mr4361030ejb.92.1642789900853; Fri, 21 Jan 2022 10:31:40 -0800 (PST) Received: from [10.137.0.18] (ip-86-49-251-241.net.upcbroadband.cz. [86.49.251.241]) by smtp.gmail.com with ESMTPSA id g27sm2241951ejf.108.2022.01.21.10.31.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 21 Jan 2022 10:31:40 -0800 (PST) Content-Type: multipart/mixed; boundary="------------oNUBVE0MR1FgbUGMAMvmKydY" Message-ID: <19c248d9-3687-9e0f-0b1a-2adad1de6fbe@enterprisedb.com> Date: Fri, 21 Jan 2022 19:31:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: document the need to analyze partitioned tables Content-Language: en-US To: Justin Pryzby Cc: =?UTF-8?Q?=c3=81lvaro_Herrera?= , yuzuko , pgsql-hackers@postgresql.org References: <20210913035409.GA10647@telsasoft.com> <20211008125822.GJ27491@telsasoft.com> <681e76ad-3a7b-ea3c-b6b0-55946239c49b@enterprisedb.com> <20220121180200.GM23027@telsasoft.com> From: Tomas Vondra In-Reply-To: <20220121180200.GM23027@telsasoft.com> X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------oNUBVE0MR1FgbUGMAMvmKydY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 1/21/22 19:02, Justin Pryzby wrote: > Thanks for looking at this > > On Fri, Jan 21, 2022 at 06:21:57PM +0100, Tomas Vondra wrote: >> Hi, >> >> On 10/8/21 14:58, Justin Pryzby wrote: >>> Cleaned up and attached as a .patch. >>> >>> The patch implementing autoanalyze on partitioned tables should >>> revert relevant portions of this patch. >> >> I went through this patch and I'd like to propose a couple changes, per the >> 0002 patch: >> >> 1) I've reworded the changes in maintenance.sgml a bit. It sounded a bit >> strange before, but I'm not a native speaker so maybe it's worse ... > > + autoanalyze on the parent table. If your queries require statistics on > + parent relations for proper planning, it's necessary to periodically run > > You added two references to "relations", but everything else talks about > "tables", which is all that analyze processes. > Good point, that should use "tables" too. >> 2) Remove unnecessary whitespace changes in perform.sgml. > > Those were a note to myself and to any reviewer - should that be updated too ? > Ah, I see. I don't think that part needs updating - it talks about having to analyze after a bulk load, and that applies to all tables anyway. I don't think it needs to mention partitioned tables need an analyze too. >> 3) Simplify the analyze.sgml changes a bit - it was trying to cram too much >> stuff into a single paragraph, so I split that. >> >> Does that seem OK, or did omit something important? > > + If the table being analyzed has one or more children, > > I think you're referring to both legacy inheritance and and partitioning. That > should be more clear. > I think it applies to both types of partitioning - it's just that in the declarative partitioning case the table is always empty so no stats with inherit=false are built. > + ANALYZE gathers two sets of statistics: once on the rows > + of the parent table only, and a second one including rows of both the parent > + table and all child relations. This second set of statistics is needed when > > I think should say ".. and all of its children". > OK >> FWIW I think it's really confusing we have inheritance and partitioning, and >> partitions and child tables. And sometimes we use partitioning in the >> generic sense (i.e. including the inheritance approach), and sometimes only >> the declarative variant. Same for partitions vs child tables. I can't even >> imagine how confusing this has to be for people just learning this stuff. >> They must be in permanent WTF?! state ... > > The docs were cleaned up some in 0c06534bd. At least the word "partitioned" > should never be used for legacy inheritance - but "partitioning" is. > OK -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------oNUBVE0MR1FgbUGMAMvmKydY Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-documentation-deficiencies-for-ANALYZE-of-partiti.patch" Content-Disposition: attachment; filename*0="v3-0001-documentation-deficiencies-for-ANALYZE-of-partiti.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjNTEwNWYyZjA2N2RmZjU1MzA0NTc5MmQ0YTE3MWZjODM1ZmUyMTA5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlqQHRlbHNhc29m dC5jb20+CkRhdGU6IFRodSwgMjIgSnVsIDIwMjEgMTY6MDY6MTggLTA1MDAKU3ViamVjdDog W1BBVENIIHYzIDEvMl0gZG9jdW1lbnRhdGlvbiBkZWZpY2llbmNpZXMgZm9yIEFOQUxZWkUg b2YgcGFydGl0aW9uZWQKIHRhYmxlcwoKVGhpcyBpcyBwYXJ0aWFsbHkgZXh0cmFjdGVkIGZy b20gMWI1NjE3ZWI4NDRjZDI0NzBhMzM0YzFkMmVlYzY2Y2Y5YjM5YzQxYSwKd2hpY2ggd2Fz IHJldmVydGVkLgotLS0KIGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sIHwgMjcgKysr KysrKysrKysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwgICAg IHwgIDIgKysKIGRvYy9zcmMvc2dtbC9yZWYvYW5hbHl6ZS5zZ21sIHwgMzYgKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0 aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21h aW50ZW5hbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAppbmRleCAz NmY5NzViMWU1Yi4uYjdjODA2Y2M5MDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tYWlu dGVuYW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCkBAIC0y OTAsNiArMjkwLDE0IEBACiAgICAgdG8gbWVhbmluZ2Z1bCBzdGF0aXN0aWNhbCBjaGFuZ2Vz LgogICAgPC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBUdXBsZXMgY2hhbmdlZCBpbiBwYXJ0 aXRpb25zIGFuZCBpbmhlcml0YW5jZSBjaGlsZHJlbiBkbyBub3QgY291bnQgdG93YXJkcwor ICAgIGFuYWx5emUgb24gdGhlIHBhcmVudCB0YWJsZS4gIElmIHRoZSBwYXJlbnQgdGFibGUg aXMgZW1wdHkgb3IgcmFyZWx5CisgICAgY2hhbmdlZCwgaXQgbWF5IG5ldmVyIGJlIHByb2Nl c3NlZCBieSBhdXRvdmFjdXVtLiAgSXQgaXMgbmVjZXNzYXJ5IHRvCisgICAgcGVyaW9kaWNh bGx5IG1hbnVhbCBydW4gPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4gb24gdGhlIHBhcmVu dCB0YWJsZSB0bworICAgIGtlZXAgdGhlIHN0YXRpc3RpY3Mgb2YgaXRzIHRhYmxlIGhpZXJh cmNoeSB1cCB0byBkYXRlLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICBBcyB3aXRo IHZhY3V1bWluZyBmb3Igc3BhY2UgcmVjb3ZlcnksIGZyZXF1ZW50IHVwZGF0ZXMgb2Ygc3Rh dGlzdGljcwogICAgIGFyZSBtb3JlIHVzZWZ1bCBmb3IgaGVhdmlseS11cGRhdGVkIHRhYmxl cyB0aGFuIGZvciBzZWxkb20tdXBkYXRlZApAQCAtMzQ3LDYgKzM1NSwxOCBAQAogICAgICA8 Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPiBjb21tYW5kcyBvbiB0aG9zZSB0YWJsZXMgb24g YSBzdWl0YWJsZSBzY2hlZHVsZS4KICAgICA8L3BhcmE+CiAgICA8L3RpcD4KKworICAgPHRp cD4KKyAgICA8cGFyYT4KKyAgICAgVGhlIGF1dG92YWN1dW0gZGFlbW9uIGRvZXMgbm90IGlz c3VlIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+IGNvbW1hbmRzIGZvcgorICAgICBwYXJ0 aXRpb25lZCB0YWJsZXMuICBJbmhlcml0YW5jZSBwYXJlbnRzIHdpbGwgb25seSBiZSBhbmFs eXplZCBpZiB0aGUKKyAgICAgcGFyZW50IGl0c2VsZiBpcyBjaGFuZ2VkIC0gY2hhbmdlcyB0 byBjaGlsZCB0YWJsZXMgZG8gbm90IHRyaWdnZXIKKyAgICAgYXV0b2FuYWx5emUgb24gdGhl IHBhcmVudCB0YWJsZS4gIEl0IGlzIG5lY2Vzc2FyeSB0byBwZXJpb2RpY2FsbHkgcnVuIGEK KyAgICAgbWFudWFsIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+IHRvIGtlZXAgdGhlIHN0 YXRpc3RpY3Mgb2YgdGhlIHRhYmxlCisgICAgIGhpZXJhcmNoeSB1cCB0byBkYXRlLgorICAg IDwvcGFyYT4KKyAgIDwvdGlwPgorCiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJ2YWN1 dW0tZm9yLXZpc2liaWxpdHktbWFwIj4KQEAgLTgxOSw2ICs4MzksMTMgQEAgYW5hbHl6ZSB0 aHJlc2hvbGQgPSBhbmFseXplIGJhc2UgdGhyZXNob2xkICsgYW5hbHl6ZSBzY2FsZSBmYWN0 b3IgKiBudW1iZXIgb2YgdHUKICAgICBzaW5jZSB0aGUgbGFzdCA8Y29tbWFuZD5BTkFMWVpF PC9jb21tYW5kPi4KICAgIDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgUGFydGl0aW9uZWQg dGFibGVzIGFyZSBub3QgcHJvY2Vzc2VkIGJ5IGF1dG92YWN1dW0uICBTdGF0aXN0aWNzCisg ICAgc2hvdWxkIGJlIGNvbGxlY3RlZCBieSBydW5uaW5nIGEgbWFudWFsIDxjb21tYW5kPkFO QUxZWkU8L2NvbW1hbmQ+IHdoZW4gaXQgaXMKKyAgICBmaXJzdCBwb3B1bGF0ZWQsIGFuZCB1 cGRhdGVkIHdoZW5ldmVyIHRoZSBkaXN0cmlidXRpb24gb2YgZGF0YSBpbiBpdHMKKyAgICBw YXJ0aXRpb25zIGNoYW5nZXMgc2lnbmlmaWNhbnRseS4KKyAgIDwvcGFyYT4KKwogICAgPHBh cmE+CiAgICAgVGVtcG9yYXJ5IHRhYmxlcyBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgYXV0b3Zh Y3V1bS4gIFRoZXJlZm9yZSwKICAgICBhcHByb3ByaWF0ZSB2YWN1dW0gYW5kIGFuYWx5emUg b3BlcmF0aW9ucyBzaG91bGQgYmUgcGVyZm9ybWVkIHZpYQpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3BlcmZvcm0uc2dtbCBiL2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwKaW5kZXgg ODlmZjU4MzM4ZTUuLmI4NDg1M2ZkNmZmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGVy Zm9ybS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwKQEAgLTE3NjUsOSAr MTc2NSwxMSBAQCBTRUxFQ1QgKiBGUk9NIHgsIHksIGEsIGIsIGMgV0hFUkUgc29tZXRoaW5n IEFORCBzb21ldGhpbmdlbHNlOwogICAgPHRpdGxlPlJ1biA8Y29tbWFuZD5BTkFMWVpFPC9j b21tYW5kPiBBZnRlcndhcmRzPC90aXRsZT4KIAogICAgPHBhcmE+CisKICAgICBXaGVuZXZl ciB5b3UgaGF2ZSBzaWduaWZpY2FudGx5IGFsdGVyZWQgdGhlIGRpc3RyaWJ1dGlvbiBvZiBk YXRhCiAgICAgd2l0aGluIGEgdGFibGUsIHJ1bm5pbmcgPGxpbmsgbGlua2VuZD0ic3FsLWFu YWx5emUiPjxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+PC9saW5rPiBpcyBzdHJvbmdseSBy ZWNvbW1lbmRlZC4gVGhpcwogICAgIGluY2x1ZGVzIGJ1bGsgbG9hZGluZyBsYXJnZSBhbW91 bnRzIG9mIGRhdGEgaW50byB0aGUgdGFibGUuICBSdW5uaW5nCisKICAgICA8Y29tbWFuZD5B TkFMWVpFPC9jb21tYW5kPiAob3IgPGNvbW1hbmQ+VkFDVVVNIEFOQUxZWkU8L2NvbW1hbmQ+ KQogICAgIGVuc3VyZXMgdGhhdCB0aGUgcGxhbm5lciBoYXMgdXAtdG8tZGF0ZSBzdGF0aXN0 aWNzIGFib3V0IHRoZQogICAgIHRhYmxlLiAgV2l0aCBubyBzdGF0aXN0aWNzIG9yIG9ic29s ZXRlIHN0YXRpc3RpY3MsIHRoZSBwbGFubmVyIG1pZ2h0CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FuYWx5emUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYW5hbHl6ZS5zZ21s CmluZGV4IGM4ZmNlYmMxNjEyLi5lYTc4ZjBkMDM4NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9hbmFseXplLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbmFseXplLnNn bWwKQEAgLTI1MCwyMiArMjUwLDMyIEBAIEFOQUxZWkUgWyBWRVJCT1NFIF0gWyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3JlcGxhY2VhCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KLSAgICBJZiB0aGUgdGFibGUgYmVpbmcgYW5hbHl6ZWQg aGFzIG9uZSBvciBtb3JlIGNoaWxkcmVuLAotICAgIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1h bmQ+IHdpbGwgZ2F0aGVyIHN0YXRpc3RpY3MgdHdpY2U6IG9uY2Ugb24gdGhlCi0gICAgcm93 cyBvZiB0aGUgcGFyZW50IHRhYmxlIG9ubHksIGFuZCBhIHNlY29uZCB0aW1lIG9uIHRoZSBy b3dzIG9mIHRoZQotICAgIHBhcmVudCB0YWJsZSB3aXRoIGFsbCBvZiBpdHMgY2hpbGRyZW4u ICBUaGlzIHNlY29uZCBzZXQgb2Ygc3RhdGlzdGljcwotICAgIGlzIG5lZWRlZCB3aGVuIHBs YW5uaW5nIHF1ZXJpZXMgdGhhdCB0cmF2ZXJzZSB0aGUgZW50aXJlIGluaGVyaXRhbmNlCi0g ICAgdHJlZS4gIFRoZSBhdXRvdmFjdXVtIGRhZW1vbiwgaG93ZXZlciwgd2lsbCBvbmx5IGNv bnNpZGVyIGluc2VydHMgb3IKLSAgICB1cGRhdGVzIG9uIHRoZSBwYXJlbnQgdGFibGUgaXRz ZWxmIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byB0cmlnZ2VyIGFuCi0gICAgYXV0b21hdGlj IGFuYWx5emUgZm9yIHRoYXQgdGFibGUuICBJZiB0aGF0IHRhYmxlIGlzIHJhcmVseSBpbnNl cnRlZCBpbnRvCi0gICAgb3IgdXBkYXRlZCwgdGhlIGluaGVyaXRhbmNlIHN0YXRpc3RpY3Mg d2lsbCBub3QgYmUgdXAgdG8gZGF0ZSB1bmxlc3MgeW91Ci0gICAgcnVuIDxjb21tYW5kPkFO QUxZWkU8L2NvbW1hbmQ+IG1hbnVhbGx5LgorICAgIElmIHRoZSB0YWJsZSBiZWluZyBhbmFs eXplZCBpcyBwYXJ0aXRpb25lZCwgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4KKyAgICB3 aWxsIGdhdGhlciBzdGF0aXN0aWNzIGJ5IHNhbXBsaW5nIGJsb2NrcyByYW5kb21seSBmcm9t IGl0cyBwYXJ0aXRpb25zOworICAgIGluIGFkZGl0aW9uLCBpdCB3aWxsIHJlY3Vyc2UgaW50 byBlYWNoIHBhcnRpdGlvbiBhbmQgdXBkYXRlIGl0cyBzdGF0aXN0aWNzLgorICAgIChIb3dl dmVyLCBpbiBtdWx0aS1sZXZlbCBwYXJ0aXRpb25pbmcgc2NlbmFyaW9zLCBlYWNoIGxlYWYg cGFydGl0aW9uCisgICAgd2lsbCBvbmx5IGJlIGFuYWx5emVkIG9uY2UuKQorICAgIEJ5IGNv bnN0cmFzdCwgaWYgdGhlIHRhYmxlIGJlaW5nIGFuYWx5emVkIGhhcyBpbmhlcml0YW5jZSBj aGlsZHJlbiwKKyAgICA8Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPiB3aWxsIGdhdGhlciBz dGF0aXN0aWNzIGZvciBpdCB0d2ljZToKKyAgICBvbmNlIG9uIHRoZSByb3dzIG9mIHRoZSBw YXJlbnQgdGFibGUgb25seSwgYW5kIGEgc2Vjb25kIHRpbWUgb24gdGhlCisgICAgcm93cyBv ZiB0aGUgcGFyZW50IHRhYmxlIHdpdGggYWxsIG9mIGl0cyBjaGlsZHJlbi4gIFRoaXMgc2Vj b25kIHNldCBvZgorICAgIHN0YXRpc3RpY3MgaXMgbmVlZGVkIHdoZW4gcGxhbm5pbmcgcXVl cmllcyB0aGF0IHRyYXZlcnNlIHRoZSBlbnRpcmUKKyAgICBpbmhlcml0YW5jZSB0cmVlLiAg VGhlIGNoaWxkIHRhYmxlcyB0aGVtc2VsdmVzIGFyZSBub3QgaW5kaXZpZHVhbGx5CisgICAg YW5hbHl6ZWQgaW4gdGhpcyBjYXNlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICAgSWYg YW55IG9mIHRoZSBjaGlsZCB0YWJsZXMgYXJlIGZvcmVpZ24gdGFibGVzIHdob3NlIGZvcmVp Z24gZGF0YSB3cmFwcGVycwotICAgIGRvIG5vdCBzdXBwb3J0IDxjb21tYW5kPkFOQUxZWkU8 L2NvbW1hbmQ+LCB0aG9zZSBjaGlsZCB0YWJsZXMgYXJlIGlnbm9yZWQgd2hpbGUKLSAgICBn YXRoZXJpbmcgaW5oZXJpdGFuY2Ugc3RhdGlzdGljcy4KKyAgICBUaGUgYXV0b3ZhY3V1bSBk YWVtb24gZG9lcyBub3QgcHJvY2VzcyBwYXJ0aXRpb25lZCB0YWJsZXMsIG5vciBkb2VzIGl0 CisgICAgcHJvY2VzcyBpbmhlcml0YW5jZSBwYXJlbnRzIGR1ZSB0byBtb2RpZmljYXRpb25z IHRvIGl0cyBjaGlsZCB0YWJsZXMuCisgICAgSXQgaXMgdXN1YWxseSBuZWNlc3NhcnkgdG8g cGVyaW9kaWNhbGx5IHJ1biBhIG1hbnVhbAorICAgIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1h bmQ+IHRvIGtlZXAgdGhlIHN0YXRpc3RpY3Mgb2YgdGhlIHRhYmxlIGhpZXJhcmNoeQorICAg IHVwIHRvIGRhdGUuICBTZWUuLi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIElmIGFu eSBjaGlsZCB0YWJsZXMgb3IgcGFydGl0aW9ucyBhcmUgZm9yZWlnbiB0YWJsZXMgd2hvc2Ug Zm9yZWlnbgorICAgIGRhdGEgd3JhcHBlcnMgZG8gbm90IHN1cHBvcnQgPGNvbW1hbmQ+QU5B TFlaRTwvY29tbWFuZD4sIHRob3NlIHRhYmxlcyBhcmUKKyAgICBpZ25vcmVkIHdoaWxlIGdh dGhlcmluZyBpbmhlcml0YW5jZSBzdGF0aXN0aWNzLgogICA8L3BhcmE+CiAKICAgPHBhcmE+ Ci0tIAoyLjMxLjEKCg== --------------oNUBVE0MR1FgbUGMAMvmKydY Content-Type: text/x-patch; charset=UTF-8; name="v3-0002-minor-changes-rewordings.patch" Content-Disposition: attachment; filename="v3-0002-minor-changes-rewordings.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZWE3MTMwMTBmYWYxZDZhNTFhOGYyZDkwZjVjMzc0MWI5N2ViMTUzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAyMSBKYW4gMjAyMiAxODowNTo1NiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggdjMgMi8yXSBtaW5vciBjaGFuZ2VzIC8gcmV3b3JkaW5ncwoKLS0tCiBk b2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCB8IDIwICsrKysrKysrKy0tLS0tLS0tLQog ZG9jL3NyYy9zZ21sL3BlcmZvcm0uc2dtbCAgICAgfCAgMiAtLQogZG9jL3NyYy9zZ21sL3Jl Zi9hbmFseXplLnNnbWwgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LQogMyBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCBiL2RvYy9zcmMv c2dtbC9tYWludGVuYW5jZS5zZ21sCmluZGV4IGI3YzgwNmNjOTA2Li45ZTY5MDljZDc0OCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL21haW50ZW5hbmNlLnNnbWwKQEAgLTI5MSwxMSArMjkxLDEyIEBACiAgICA8L3Bh cmE+CiAKICAgIDxwYXJhPgotICAgIFR1cGxlcyBjaGFuZ2VkIGluIHBhcnRpdGlvbnMgYW5k IGluaGVyaXRhbmNlIGNoaWxkcmVuIGRvIG5vdCBjb3VudCB0b3dhcmRzCisgICAgVHVwbGVz IGNoYW5nZWQgaW4gcGFydGl0aW9ucyBhbmQgaW5oZXJpdGFuY2UgY2hpbGRyZW4gZG8gbm90 IHRyaWdnZXIKICAgICBhbmFseXplIG9uIHRoZSBwYXJlbnQgdGFibGUuICBJZiB0aGUgcGFy ZW50IHRhYmxlIGlzIGVtcHR5IG9yIHJhcmVseQotICAgIGNoYW5nZWQsIGl0IG1heSBuZXZl ciBiZSBwcm9jZXNzZWQgYnkgYXV0b3ZhY3V1bS4gIEl0IGlzIG5lY2Vzc2FyeSB0bwotICAg IHBlcmlvZGljYWxseSBtYW51YWwgcnVuIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+IG9u IHRoZSBwYXJlbnQgdGFibGUgdG8KLSAgICBrZWVwIHRoZSBzdGF0aXN0aWNzIG9mIGl0cyB0 YWJsZSBoaWVyYXJjaHkgdXAgdG8gZGF0ZS4KKyAgICBjaGFuZ2VkLCBpdCBtYXkgbmV2ZXIg YmUgcHJvY2Vzc2VkIGJ5IGF1dG92YWN1dW0sIGFuZCB0aGUgc3RhdGlzdGljcyBmb3IKKyAg ICB0aGUgaW5oZXJpdGFuY2UgdHJlZSBhcyBhIHdob2xlIHdvbid0IGJlIGNvbGxlY3RlZC4g SXQgaXMgbmVjZXNzYXJ5IHRvCisgICAgcnVuIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+ IG9uIHRoZSBwYXJlbnQgdGFibGUgbWFudWFsbHksIHRvIGtlZXAKKyAgICB0aGUgc3RhdGlz dGljcyB1cCB0byBkYXRlLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTM1OCwxMiAr MzU5LDEzIEBACiAKICAgIDx0aXA+CiAgICAgPHBhcmE+Ci0gICAgIFRoZSBhdXRvdmFjdXVt IGRhZW1vbiBkb2VzIG5vdCBpc3N1ZSA8Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPiBjb21t YW5kcyBmb3IKLSAgICAgcGFydGl0aW9uZWQgdGFibGVzLiAgSW5oZXJpdGFuY2UgcGFyZW50 cyB3aWxsIG9ubHkgYmUgYW5hbHl6ZWQgaWYgdGhlCisgICAgIFRoZSBhdXRvdmFjdXVtIGRh ZW1vbiBtYXkgbm90IGlzc3VlIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+IGNvbW1hbmRz CisgICAgIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMuICBJbmhlcml0YW5jZSBwYXJlbnRzIHdp bGwgb25seSBiZSBhbmFseXplZCBpZiB0aGUKICAgICAgcGFyZW50IGl0c2VsZiBpcyBjaGFu Z2VkIC0gY2hhbmdlcyB0byBjaGlsZCB0YWJsZXMgZG8gbm90IHRyaWdnZXIKLSAgICAgYXV0 b2FuYWx5emUgb24gdGhlIHBhcmVudCB0YWJsZS4gIEl0IGlzIG5lY2Vzc2FyeSB0byBwZXJp b2RpY2FsbHkgcnVuIGEKLSAgICAgbWFudWFsIDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+ IHRvIGtlZXAgdGhlIHN0YXRpc3RpY3Mgb2YgdGhlIHRhYmxlCi0gICAgIGhpZXJhcmNoeSB1 cCB0byBkYXRlLgorICAgICBhdXRvYW5hbHl6ZSBvbiB0aGUgcGFyZW50IHRhYmxlLiAgSWYg eW91ciBxdWVyaWVzIHJlcXVpcmUgc3RhdGlzdGljcyBvbgorICAgICBwYXJlbnQgdGFibGVz IGZvciBwcm9wZXIgcGxhbm5pbmcsIGl0J3MgbmVjZXNzYXJ5IHRvIHBlcmlvZGljYWxseSBy dW4KKyAgICAgYSBtYW51YWwgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4gb24gdGhvc2Ug dGFibGVzIHRvIGtlZXAgdGhlIHN0YXRpc3RpY3MKKyAgICAgdXAgdG8gZGF0ZS4KICAgICA8 L3BhcmE+CiAgICA8L3RpcD4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BlcmZvcm0u c2dtbCBiL2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwKaW5kZXggYjg0ODUzZmQ2ZmYuLjg5 ZmY1ODMzOGU1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGVyZm9ybS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wZXJmb3JtLnNnbWwKQEAgLTE3NjUsMTEgKzE3NjUsOSBAQCBTRUxF Q1QgKiBGUk9NIHgsIHksIGEsIGIsIGMgV0hFUkUgc29tZXRoaW5nIEFORCBzb21ldGhpbmdl bHNlOwogICAgPHRpdGxlPlJ1biA8Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPiBBZnRlcndh cmRzPC90aXRsZT4KIAogICAgPHBhcmE+Ci0KICAgICBXaGVuZXZlciB5b3UgaGF2ZSBzaWdu aWZpY2FudGx5IGFsdGVyZWQgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkYXRhCiAgICAgd2l0aGlu IGEgdGFibGUsIHJ1bm5pbmcgPGxpbmsgbGlua2VuZD0ic3FsLWFuYWx5emUiPjxjb21tYW5k PkFOQUxZWkU8L2NvbW1hbmQ+PC9saW5rPiBpcyBzdHJvbmdseSByZWNvbW1lbmRlZC4gVGhp cwogICAgIGluY2x1ZGVzIGJ1bGsgbG9hZGluZyBsYXJnZSBhbW91bnRzIG9mIGRhdGEgaW50 byB0aGUgdGFibGUuICBSdW5uaW5nCi0KICAgICA8Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5k PiAob3IgPGNvbW1hbmQ+VkFDVVVNIEFOQUxZWkU8L2NvbW1hbmQ+KQogICAgIGVuc3VyZXMg dGhhdCB0aGUgcGxhbm5lciBoYXMgdXAtdG8tZGF0ZSBzdGF0aXN0aWNzIGFib3V0IHRoZQog ICAgIHRhYmxlLiAgV2l0aCBubyBzdGF0aXN0aWNzIG9yIG9ic29sZXRlIHN0YXRpc3RpY3Ms IHRoZSBwbGFubmVyIG1pZ2h0CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FuYWx5 emUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYW5hbHl6ZS5zZ21sCmluZGV4IGVhNzhmMGQw Mzg3Li5jODk5NDdlYTlmZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbmFseXpl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbmFseXplLnNnbWwKQEAgLTI1MCwxOCAr MjUwLDM0IEBAIEFOQUxZWkUgWyBWRVJCT1NFIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfYW5kX2NvbHVtbnM8L3JlcGxhY2VhCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KLSAgICBJZiB0aGUgdGFibGUgYmVpbmcgYW5hbHl6ZWQgaXMgcGFydGl0aW9uZWQs IDxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+Ci0gICAgd2lsbCBnYXRoZXIgc3RhdGlzdGlj cyBieSBzYW1wbGluZyBibG9ja3MgcmFuZG9tbHkgZnJvbSBpdHMgcGFydGl0aW9uczsKLSAg ICBpbiBhZGRpdGlvbiwgaXQgd2lsbCByZWN1cnNlIGludG8gZWFjaCBwYXJ0aXRpb24gYW5k IHVwZGF0ZSBpdHMgc3RhdGlzdGljcy4KLSAgICAoSG93ZXZlciwgaW4gbXVsdGktbGV2ZWwg cGFydGl0aW9uaW5nIHNjZW5hcmlvcywgZWFjaCBsZWFmIHBhcnRpdGlvbgotICAgIHdpbGwg b25seSBiZSBhbmFseXplZCBvbmNlLikKKyAgICBJZiB0aGUgdGFibGUgYmVpbmcgYW5hbHl6 ZWQgaGFzIG9uZSBvciBtb3JlIGNoaWxkcmVuLAorICAgIDxjb21tYW5kPkFOQUxZWkU8L2Nv bW1hbmQ+IHdpbGwgZ2F0aGVyIHN0YXRpc3RpY3MgdHdpY2U6IG9uY2Ugb24gdGhlCisgICAg cm93cyBvZiB0aGUgcGFyZW50IHRhYmxlIG9ubHksIGFuZCBhIHNlY29uZCB0aW1lIG9uIHRo ZSByb3dzIG9mIHRoZQorICAgIHBhcmVudCB0YWJsZSB3aXRoIGFsbCBvZiBpdHMgY2hpbGRy ZW4uICBUaGlzIHNlY29uZCBzZXQgb2Ygc3RhdGlzdGljcworICAgIGlzIG5lZWRlZCB3aGVu IHBsYW5uaW5nIHF1ZXJpZXMgdGhhdCB0cmF2ZXJzZSB0aGUgZW50aXJlIGluaGVyaXRhbmNl CisgICAgdHJlZS4gIFRoZSBhdXRvdmFjdXVtIGRhZW1vbiwgaG93ZXZlciwgd2lsbCBvbmx5 IGNvbnNpZGVyIGluc2VydHMgb3IKKyAgICB1cGRhdGVzIG9uIHRoZSBwYXJlbnQgdGFibGUg aXRzZWxmIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byB0cmlnZ2VyIGFuCisgICAgYXV0b21h dGljIGFuYWx5emUgZm9yIHRoYXQgdGFibGUuICBJZiB0aGF0IHRhYmxlIGlzIHJhcmVseSBp bnNlcnRlZCBpbnRvCisgICAgb3IgdXBkYXRlZCwgdGhlIGluaGVyaXRhbmNlIHN0YXRpc3Rp Y3Mgd2lsbCBub3QgYmUgdXAgdG8gZGF0ZSB1bmxlc3MgeW91CisgICAgcnVuIDxjb21tYW5k PkFOQUxZWkU8L2NvbW1hbmQ+IG1hbnVhbGx5LgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICAgRm9yIHBhcnRpdGlvbmVkIHRhYmxlcywgPGNvbW1hbmQ+QU5BTFlaRTwvY29tbWFuZD4g Z2F0aGVycyBzdGF0aXN0aWNzIGJ5CisgICAgc2FtcGxpbmcgcm93cyBmcm9tIGFsbCBwYXJ0 aXRpb25zOyBpbiBhZGRpdGlvbiwgaXQgd2lsbCByZWN1cnNlIGludG8gZWFjaAorICAgIHBh cnRpdGlvbiBhbmQgdXBkYXRlIGl0cyBzdGF0aXN0aWNzLiAgRWFjaCBsZWFmIHBhcnRpdGlv biBpcyBhbmFseXplZCBvbmx5CisgICAgb25jZSwgZXZlbiB3aXRoIG11bHRpLWxldmVsIHBh cnRpdGlvbmluZy4gIE5vIHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCBmb3IKKyAgICB0aGUg cGFyZW50IHRhYmxlIChpZ25vcmluZyBkYXRhIGZyb20gcGFydGl0aW9ucyksIGJlY2F1c2Ug d2l0aCBwYXJ0aXRpb25pbmcKKyAgICBpdCdzIGd1YXJhbnRlZWQgdG8gYmUgZW1wdHkuCisg IDwvcGFyYT4KKworICA8cGFyYT4KICAgICBCeSBjb25zdHJhc3QsIGlmIHRoZSB0YWJsZSBi ZWluZyBhbmFseXplZCBoYXMgaW5oZXJpdGFuY2UgY2hpbGRyZW4sCi0gICAgPGNvbW1hbmQ+ QU5BTFlaRTwvY29tbWFuZD4gd2lsbCBnYXRoZXIgc3RhdGlzdGljcyBmb3IgaXQgdHdpY2U6 Ci0gICAgb25jZSBvbiB0aGUgcm93cyBvZiB0aGUgcGFyZW50IHRhYmxlIG9ubHksIGFuZCBh IHNlY29uZCB0aW1lIG9uIHRoZQotICAgIHJvd3Mgb2YgdGhlIHBhcmVudCB0YWJsZSB3aXRo IGFsbCBvZiBpdHMgY2hpbGRyZW4uICBUaGlzIHNlY29uZCBzZXQgb2YKLSAgICBzdGF0aXN0 aWNzIGlzIG5lZWRlZCB3aGVuIHBsYW5uaW5nIHF1ZXJpZXMgdGhhdCB0cmF2ZXJzZSB0aGUg ZW50aXJlCi0gICAgaW5oZXJpdGFuY2UgdHJlZS4gIFRoZSBjaGlsZCB0YWJsZXMgdGhlbXNl bHZlcyBhcmUgbm90IGluZGl2aWR1YWxseQotICAgIGFuYWx5emVkIGluIHRoaXMgY2FzZS4K KyAgICA8Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPiBnYXRoZXJzIHR3byBzZXRzIG9mIHN0 YXRpc3RpY3M6IG9uY2Ugb24gdGhlIHJvd3MKKyAgICBvZiB0aGUgcGFyZW50IHRhYmxlIG9u bHksIGFuZCBhIHNlY29uZCBvbmUgaW5jbHVkaW5nIHJvd3Mgb2YgYm90aCB0aGUgcGFyZW50 CisgICAgdGFibGUgYW5kIGFsbCBvZiBpdHMgY2hpbGRyZW4uICBUaGlzIHNlY29uZCBzZXQg b2Ygc3RhdGlzdGljcyBpcyBuZWVkZWQgd2hlbgorICAgIHBsYW5uaW5nIHF1ZXJpZXMgdGhh dCBwcm9jZXNzIHRoZSB3aG9sZSBpbmhlcml0YW5jZSB0cmVlIGF0IG9uY2UuICBUaGUgY2hp bGQKKyAgICB0YWJsZXMgdGhlbXNlbHZlcyBhcmUgbm90IGluZGl2aWR1YWxseSBhbmFseXpl ZCBpbiB0aGlzIGNhc2UuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLS0gCjIuMzEuMQoK --------------oNUBVE0MR1FgbUGMAMvmKydY--