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 1kVNik-0002w9-Mq for pgsql-docs@arkaria.postgresql.org; Wed, 21 Oct 2020 23:40:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kVNij-0005he-2q for pgsql-docs@arkaria.postgresql.org; Wed, 21 Oct 2020 23:40:41 +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 1kVNii-0005hN-OD for pgsql-docs@lists.postgresql.org; Wed, 21 Oct 2020 23:40:40 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kVNig-0003CM-J0 for pgsql-docs@lists.postgresql.org; Wed, 21 Oct 2020 23:40:40 +0000 Received: by mail-pl1-x62c.google.com with SMTP id h2so2027441pll.11 for ; Wed, 21 Oct 2020 16:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lDLYhmOhRHKZg4cjeUyt7fZDT303C5rE+sQnfzcCPuA=; b=qlX/Dar47KDjvyhkgc/HSBVXjO9n/AkT5Q7HYFyICpMa1faLlqOMBsew9SpUMOu0oz dmGStIP+ZHpsVc9O6g0jVq3zNbKpNbPViKOxMnjWQPMzU9PkVbUMJmj7gweHLLNdqFvE ZbyqPivnOPSZYNbD+/0BQGglwEGMOlECqKIKHNZ1M4UeDQF0dc/dpCeHUMhoUjZPuSyo 9hg1hMYuRnTKHQ31XHSY+PXyfa8bmJwUSMy/tFeI281Ntz5itzgLc8UjlNjWBAZjngy8 AoZU+ZvAzJOOwRYQRFiWXaNgO834jL9VDireOJCZQOOnIFSQr5cgNW93bPlnqh2I4SAQ 3ccQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lDLYhmOhRHKZg4cjeUyt7fZDT303C5rE+sQnfzcCPuA=; b=sWbIUkth+Mhis0sFY4Y63FYRUNN+SNd96T71R6cK9WRcZc3AOb6X96+5r0x0xk5AjN QF3wcVXKviXyCJIjEwWNoxREfmEjKvF4hRS5P8JE5yzAAdaLZNs/PjGWt3sj6g+WR/aN DgIhO0KRwLimASwaMeYzoT5U85LXig0Sq2kPAU+NGB3BFuUBTmv1KLarf7uYk+8tPzGg 9Nk77qcpJWziqq04F7s/KziroWXZMCsjtGxNRV/xLXhPn11XP8rFgHf0GrmAG7swNkY7 zRqaCvcx6dWw+X8tNgh0JTg0g39w1VCbES776Lo+ryfoefct5lPMS16R+yOm8tLBxE9f /Fzw== X-Gm-Message-State: AOAM530b4V5PApoc/cu5lMKW8geS78jqJSaPX8T7Hd/I6MtCngQZ59dk Qt9w/5zN52BZO5sOaP9GFnPvV3Ry5O5ZrmsI62s= X-Google-Smtp-Source: ABdhPJxmkZuewoqhFGT7U3f8hg/tnzMgNZFV2lIovxTcxg9IinNUjraq14ZryQMQUWtFUXwkyO98ji+rxFIq1Zi0T7I= X-Received: by 2002:a17:90a:678a:: with SMTP id o10mr30203pjj.180.1603323636150; Wed, 21 Oct 2020 16:40:36 -0700 (PDT) MIME-Version: 1.0 References: <158996922318.7035.10603922579567326239@wrigleys.postgresql.org> <9fd4b399-37c8-014e-e7ef-08fb0ecbbdcc@2ndquadrant.com> <791cac8a-e5f7-a79c-d651-dfa3ecc1453e@purtz.de> In-Reply-To: <791cac8a-e5f7-a79c-d651-dfa3ecc1453e@purtz.de> From: "David G. Johnston" Date: Wed, 21 Oct 2020 16:40:18 -0700 Message-ID: Subject: Re: Change JOIN tutorial to focus more on explicit joins To: =?UTF-8?Q?J=C3=BCrgen_Purtz?= Cc: Peter Eisentraut , Thomas Munro , Thomas Kellerer , Pg Docs Content-Type: multipart/mixed; boundary="000000000000cb13d105b236df59" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000cb13d105b236df59 Content-Type: multipart/alternative; boundary="000000000000cb13cd05b236df57" --000000000000cb13cd05b236df57 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Sep 4, 2020 at 2:36 AM J=C3=BCrgen Purtz wrote: > On 04.09.20 08:52, Peter Eisentraut wrote: > > > > For the remaining patch I have a couple of concerns: > This patch should not be changing the formatting choices for these queries, just the addition of a JOIN clause and modification of the WHERE clause. Specifically, SELECT is left-aligned while all subsequent clauses indent under it. Forced alignment by adding extra spaces isn't done here either. I have not altered those in the attached. Did some word-smithing on the first paragraph. The part about the cross-join was hurt by "in some way" and "may be" is not needed. Pointing out that values from both tables doesn't seem like an improvement when the second item covers that and it is more specific in noting that the city name that is joined on appears twice - once from each table. ON expression is more precise and the reader should be ok with the term. Removal of the exercise is good. Not the time to discuss cross join anyway. Given that "ON true" works the cross join form isn't even required= . In the FROM clause form I would not add table prefixes to the column names. They are not part of the form changing. If discussion about table prefixing is desired it should be done explicitly and by itself. They are used later on, I didn't check to see whether that was covered or might be confusing. I suggested a wording for why to use join syntax that doesn't involve legacy and points out its merit compared to sticking a join expression into the where clause. The original patch missed having the syntax for the first left outer join conform to the multi-line query writing standard you introduced. I did not change. The "AND" ON clause should just go with (not changed): ON (w1.temp_lo < w2.temp_lo AND w1.temp_hi > w2.temp_high); Attaching my suggestions made on top of the attached original 0002-query.patch David J. --000000000000cb13cd05b236df57 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Fri, Sep 4, 2020 at 2:36 AM J=C3=BCrgen Purtz <juergen@purtz.de> wrote:
On 04.09.20 08:52, Peter Eisentraut wrote:
>
> For the remaining patch I have a couple of concerns:
<= div>
This patch should not be changing the formatting choices f= or these queries, just the addition of a JOIN clause and modification of th= e WHERE clause.=C2=A0 Specifically, SELECT is left-aligned while all subseq= uent clauses indent under it.=C2=A0 Forced alignment by adding extra spaces= isn't done here either.=C2=A0 I have not altered those in the attached= .

Did some word-smithing on the first paragraph.=C2=A0= The part about the cross-join was hurt by "in some way" and &quo= t;may be" is not needed.

Pointing out that values= from both tables doesn't seem like an improvement when the second item= covers that and it is more specific in noting that the city name that is j= oined on appears twice - once from each table.

ON expr= ession is more precise and the reader should be ok with the term.
<= br>
Removal of the exercise is good.=C2=A0 Not the time to discuss = cross join anyway.=C2=A0 Given that "ON true" works the cross joi= n form isn't even required.

In the FROM clause for= m I would not add table prefixes to the column names.=C2=A0 They are not pa= rt of the form changing.=C2=A0 If discussion about table prefixing is desir= ed it should be done explicitly and by itself.=C2=A0 They are used later on= , I didn't check to see whether that was covered or might be confusing.=

I suggested a wording for why to use join syntax that= doesn't involve legacy and points out its merit compared to sticking a= join expression into the where clause.

The original p= atch missed having the syntax for the first left outer join conform to the = multi-line query writing standard you introduced.=C2=A0 I did not change.

The "AND" ON clause should just go with (not = changed):

ON (w1.temp_lo < w2.temp_lo
=C2= =A0 =C2=A0 AND w1.temp_hi > w2.temp_high);

Attachi= ng my suggestions made on top of the attached original 0002-query.patch

David J.

--000000000000cb13cd05b236df57-- --000000000000cb13d105b236df59 Content-Type: application/octet-stream; name="0002-00-query.patch" Content-Disposition: attachment; filename="0002-00-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kgk1dp5q0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9xdWVyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL3F1ZXJ5 LnNnbWwKaW5kZXggZTczZTgwNWVjNC4uNDEzNzYzNjkxZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3F1ZXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3F1ZXJ5LnNnbWwKQEAgLTQ0MSwxMSAr NDQxLDExIEBAIFNFTEVDVCBESVNUSU5DVCBjaXR5CiAgICA8cGFyYT4KICAgICBUaHVzIGZhciwg b3VyIHF1ZXJpZXMgaGF2ZSBvbmx5IGFjY2Vzc2VkIG9uZSB0YWJsZSBhdCBhIHRpbWUuCiAgICAg UXVlcmllcyBjYW4gYWNjZXNzIG11bHRpcGxlIHRhYmxlcyBhdCBvbmNlLCBvciBhY2Nlc3MgdGhl IHNhbWUKLSAgICB0YWJsZSBpbiBzdWNoIGEgd2F5IHRoYXQgbXVsdGlwbGUgcm93cyBvZiB0aGUg dGFibGUgYXJlIGJlaW5nCi0gICAgcHJvY2Vzc2VkIGF0IHRoZSBzYW1lIHRpbWUuICBBIHF1ZXJ5 IHRoYXQgYWNjZXNzZXMgbXVsdGlwbGUgcm93cwotICAgIG9mIHRoZSBzYW1lIG9yIGRpZmZlcmVu dCB0YWJsZXMgYXQgb25lIHRpbWUgaXMgY2FsbGVkIGEKLSAgICA8Zmlyc3R0ZXJtPmpvaW48L2Zp cnN0dGVybT4gcXVlcnkuICBBcyBhbiBleGFtcGxlLCBzYXkgeW91IHdpc2ggdG8KLSAgICBsaXN0 IGFsbCB0aGUgd2VhdGhlciByZWNvcmRzIHRvZ2V0aGVyIHdpdGggdGhlIGxvY2F0aW9uIG9mIHRo ZQorICAgIHRhYmxlIHNldmVyYWwgdGltZXMuIFN1Y2ggcXVlcmllcyAmbWRhc2g7IHRoZXkgYXJl IGNhbGxlZAorICAgIDxmaXJzdHRlcm0+am9pbjwvZmlyc3R0ZXJtPiBxdWVyaWVzICZtZGFzaDsg Y29tYmluZQorICAgIHJvd3Mgb2Ygb25lIHRhYmxlIGluIHNvbWUgd2F5IHdpdGggcm93cyBvZiB0 aGUgb3RoZXIgdGFibGUKKyAgICBhbmQgcmV0dXJuIGEgc2luZ2xlIHJvdyBwZXIgY29tYmluYXRp b24uIEFuIGV4YW1wbGUgbWF5IGJlIGEKKyAgICBsaXN0IG9mIGFsbCB0aGUgd2VhdGhlciByZWNv cmRzIHRvZ2V0aGVyIHdpdGggdGhlIGxvY2F0aW9uIG9mIHRoZQogICAgIGFzc29jaWF0ZWQgY2l0 eS4gIFRvIGRvIHRoYXQsIHdlIG5lZWQgdG8gY29tcGFyZSB0aGUgPHN0cnVjdGZpZWxkPmNpdHk8 L3N0cnVjdGZpZWxkPgogICAgIGNvbHVtbiBvZiBlYWNoIHJvdyBvZiB0aGUgPHN0cnVjdG5hbWU+ d2VhdGhlcjwvc3RydWN0bmFtZT4gdGFibGUgd2l0aCB0aGUKICAgICA8c3RydWN0ZmllbGQ+bmFt ZTwvc3RydWN0ZmllbGQ+IGNvbHVtbiBvZiBhbGwgcm93cyBpbiB0aGUgPHN0cnVjdG5hbWU+Y2l0 aWVzPC9zdHJ1Y3RuYW1lPgpAQCAtNDYxLDEwICs0NjEsMTcgQEAgU0VMRUNUIERJU1RJTkNUIGNp dHkKIAogPHByb2dyYW1saXN0aW5nPgogU0VMRUNUICoKLSAgICBGUk9NIHdlYXRoZXIsIGNpdGll cwotICAgIFdIRVJFIGNpdHkgPSBuYW1lOworRlJPTSAgIHdlYXRoZXIKK0pPSU4gICBjaXRpZXMg T04gKGNpdHkgPSBuYW1lKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAKKyAgICBUaGUga2V5d29yZCA8 Y29tbWFuZD5KT0lOPC9jb21tYW5kPiBjb25uZWN0cyB0aGUgdHdvIHRhYmxlcy4KKyAgICBCZWhp bmQgdGhlIGtleXdvcmQgPGNvbW1hbmQ+T048L2NvbW1hbmQ+IGZvbGxvd3MgdGhlCisgICAgZGVm aW5pdGlvbiBob3cgdG8gY29tcGFyZSB0aGVpciByb3dzLiBJbiB0aGlzIGNhc2UsIHRoZQorICAg IGNvbHVtbiA8dmFybmFtZT5jaXR5PC92YXJuYW1lPiBvZiB0YWJsZSA8dmFybmFtZT53ZWF0aGVy PC92YXJuYW1lPgorICAgIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbHVtbiA8dmFybmFtZT5uYW1l PC92YXJuYW1lPgorICAgIG9mIHRhYmxlIDx2YXJuYW1lPmNpdGllczwvdmFybmFtZT4uCisKIDxz Y3JlZW4+CiAgICAgIGNpdHkgICAgICB8IHRlbXBfbG8gfCB0ZW1wX2hpIHwgcHJjcCB8ICAgIGRh dGUgICAgfCAgICAgbmFtZSAgICAgIHwgbG9jYXRpb24KIC0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCkBAIC00NzYsOCArNDgzLDE0IEBAIFNFTEVDVCAqCiAgICA8L3BhcmE+CiAKICAgIDxwYXJh PgotICAgIE9ic2VydmUgdHdvIHRoaW5ncyBhYm91dCB0aGUgcmVzdWx0IHNldDoKKyAgICBPYnNl cnZlIHNvbWUgdGhpbmdzIGFib3V0IHRoZSByZXN1bHQgc2V0OgogICAgIDxpdGVtaXplZGxpc3Q+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSByZXN1bHRpbmcgcm93 cyBjb250YWluIHZhbHVlcyBmcm9tIGJvdGggdGFibGVzLgorICAgICAgPC9wYXJhPgorICAgICA8 L2xpc3RpdGVtPgorCiAgICAgIDxsaXN0aXRlbT4KICAgICAgIDxwYXJhPgogICAgICAgIFRoZXJl IGlzIG5vIHJlc3VsdCByb3cgZm9yIHRoZSBjaXR5IG9mIEhheXdhcmQuICBUaGlzIGlzCkBAIC00 OTksMjMgKzUxMiwxNCBAQCBTRUxFQ1QgKgogICAgICAgIDxsaXRlcmFsPio8L2xpdGVyYWw+Ogog PHByb2dyYW1saXN0aW5nPgogU0VMRUNUIGNpdHksIHRlbXBfbG8sIHRlbXBfaGksIHByY3AsIGRh dGUsIGxvY2F0aW9uCi0gICAgRlJPTSB3ZWF0aGVyLCBjaXRpZXMKLSAgICBXSEVSRSBjaXR5ID0g bmFtZTsKK0ZST00gICB3ZWF0aGVyCitKT0lOICAgY2l0aWVzIE9OIChjaXR5ID0gbmFtZSk7CiA8 L3Byb2dyYW1saXN0aW5nPgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv aXRlbWl6ZWRsaXN0PgogICAgPC9wYXJhPgogCi0gICA8Zm9ybWFscGFyYT4KLSAgICA8dGl0bGU+ RXhlcmNpc2U6PC90aXRsZT4KLQotICAgIDxwYXJhPgotICAgICBBdHRlbXB0IHRvIGRldGVybWlu ZSB0aGUgc2VtYW50aWNzIG9mIHRoaXMgcXVlcnkgd2hlbiB0aGUKLSAgICAgPGxpdGVyYWw+V0hF UkU8L2xpdGVyYWw+IGNsYXVzZSBpcyBvbWl0dGVkLgotICAgIDwvcGFyYT4KLSAgIDwvZm9ybWFs cGFyYT4KLQogICAgPHBhcmE+CiAgICAgU2luY2UgdGhlIGNvbHVtbnMgYWxsIGhhZCBkaWZmZXJl bnQgbmFtZXMsIHRoZSBwYXJzZXIKICAgICBhdXRvbWF0aWNhbGx5IGZvdW5kIHdoaWNoIHRhYmxl IHRoZXkgYmVsb25nIHRvLiAgSWYgdGhlcmUKQEAgLTUyNiw4ICs1MzAsOCBAQCBTRUxFQ1QgY2l0 eSwgdGVtcF9sbywgdGVtcF9oaSwgcHJjcCwgZGF0ZSwgbG9jYXRpb24KIDxwcm9ncmFtbGlzdGlu Zz4KIFNFTEVDVCB3ZWF0aGVyLmNpdHksIHdlYXRoZXIudGVtcF9sbywgd2VhdGhlci50ZW1wX2hp LAogICAgICAgIHdlYXRoZXIucHJjcCwgd2VhdGhlci5kYXRlLCBjaXRpZXMubG9jYXRpb24KLSAg ICBGUk9NIHdlYXRoZXIsIGNpdGllcwotICAgIFdIRVJFIGNpdGllcy5uYW1lID0gd2VhdGhlci5j aXR5OworRlJPTSAgIHdlYXRoZXIKK0pPSU4gICBjaXRpZXMgT04gKGNpdGllcy5uYW1lID0gd2Vh dGhlci5jaXR5KTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAKICAgICBJdCBpcyB3aWRlbHkgY29uc2lk ZXJlZCBnb29kIHN0eWxlIHRvIHF1YWxpZnkgYWxsIGNvbHVtbiBuYW1lcwpAQCAtNTM3LDE1ICs1 NDEsMTggQEAgU0VMRUNUIHdlYXRoZXIuY2l0eSwgd2VhdGhlci50ZW1wX2xvLCB3ZWF0aGVyLnRl bXBfaGksCiAKICAgIDxwYXJhPgogICAgIEpvaW4gcXVlcmllcyBvZiB0aGUga2luZCBzZWVuIHRo dXMgZmFyIGNhbiBhbHNvIGJlIHdyaXR0ZW4gaW4gdGhpcwotICAgIGFsdGVybmF0aXZlIGZvcm06 CisgICAgZm9ybToKIAogPHByb2dyYW1saXN0aW5nPgogU0VMRUNUICoKLSAgICBGUk9NIHdlYXRo ZXIgSU5ORVIgSk9JTiBjaXRpZXMgT04gKHdlYXRoZXIuY2l0eSA9IGNpdGllcy5uYW1lKTsKK0ZS T00gICB3ZWF0aGVyLCBjaXRpZXMKK1dIRVJFICB3ZWF0aGVyLmNpdHkgPSBjaXRpZXMubmFtZTsK IDwvcHJvZ3JhbWxpc3Rpbmc+CiAKLSAgICBUaGlzIHN5bnRheCBpcyBub3QgYXMgY29tbW9ubHkg dXNlZCBhcyB0aGUgb25lIGFib3ZlLCBidXQgd2Ugc2hvdwotICAgIGl0IGhlcmUgdG8gaGVscCB5 b3UgdW5kZXJzdGFuZCB0aGUgZm9sbG93aW5nIHRvcGljcy4KKyAgICBUaGlzIHN5bnRheCBpcyBt YWlubHkgdXNlZCBpbiBsZWdhY3kgYXBwbGljYXRpb25zLiBJdCBkYXRlcyBiYWNrCisgICAgdG8g dGhlIGZpcnN0IGRheXMgb2YgU1FMLCBhdm9pZHMgdGhlIDxsaXRlcmFsPkpPSU48L2xpdGVyYWw+ CisgICAga2V5d29yZCwgYW5kIHVzZXMgdGhlIDxsaXRlcmFsPldIRVJFPC9saXRlcmFsPiBjbGF1 c2UgaW5zdGVhZCBvZiB0aGUKKyAgICA8bGl0ZXJhbD5PTjwvbGl0ZXJhbD4gY2xhdXNlLgogICAg PC9wYXJhPgogCiAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PmpvaW48L3ByaW1hcnk+PHNlY29uZGFy eT5vdXRlcjwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpAQCAtNTU4LDcgKzU2NSw3IEBAIFNFTEVD VCAqCiAgICAgZm91bmQgd2Ugd2FudCBzb21lIDxxdW90ZT5lbXB0eSB2YWx1ZXM8L3F1b3RlPiB0 byBiZSBzdWJzdGl0dXRlZAogICAgIGZvciB0aGUgPHN0cnVjdG5hbWU+Y2l0aWVzPC9zdHJ1Y3Ru YW1lPiB0YWJsZSdzIGNvbHVtbnMuICBUaGlzIGtpbmQKICAgICBvZiBxdWVyeSBpcyBjYWxsZWQg YW4gPGZpcnN0dGVybT5vdXRlciBqb2luPC9maXJzdHRlcm0+LiAgKFRoZQotICAgIGpvaW5zIHdl IGhhdmUgc2VlbiBzbyBmYXIgYXJlIGlubmVyIGpvaW5zLikgIFRoZSBjb21tYW5kIGxvb2tzCisg ICAgam9pbnMgd2UgaGF2ZSBzZWVuIHNvIGZhciBhcmUgPGZpcnN0dGVybT5pbm5lciBqb2luczwv Zmlyc3R0ZXJtPi4pICBUaGUgY29tbWFuZCBsb29rcwogICAgIGxpa2UgdGhpczoKIAogPHByb2dy YW1saXN0aW5nPgpAQCAtNTkzLDEwICs2MDAsOSBAQCBTRUxFQ1QgKgogICAgIDwvcGFyYT4KICAg IDwvZm9ybWFscGFyYT4KIAorICAgPGluZGV4dGVybT48cHJpbWFyeT5qb2luPC9wcmltYXJ5Pjxz ZWNvbmRhcnk+c2VsZjwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgorICAgPGluZGV4dGVybT48cHJp bWFyeT5hbGlhczwvcHJpbWFyeT48c2Vjb25kYXJ5PmZvciB0YWJsZSBuYW1lIGluIHF1ZXJ5PC9z ZWNvbmRhcnk+PC9pbmRleHRlcm0+CiAgICA8cGFyYT4KLSAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5 PmpvaW48L3ByaW1hcnk+PHNlY29uZGFyeT5zZWxmPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+Ci0g ICAgPGluZGV4dGVybT48cHJpbWFyeT5hbGlhczwvcHJpbWFyeT48c2Vjb25kYXJ5PmZvciB0YWJs ZSBuYW1lIGluIHF1ZXJ5PC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+Ci0KICAgICBXZSBjYW4gYWxz byBqb2luIGEgdGFibGUgYWdhaW5zdCBpdHNlbGYuICBUaGlzIGlzIGNhbGxlZCBhCiAgICAgPGZp cnN0dGVybT5zZWxmIGpvaW48L2ZpcnN0dGVybT4uICBBcyBhbiBleGFtcGxlLCBzdXBwb3NlIHdl IHdpc2gKICAgICB0byBmaW5kIGFsbCB0aGUgd2VhdGhlciByZWNvcmRzIHRoYXQgYXJlIGluIHRo ZSB0ZW1wZXJhdHVyZSByYW5nZQpAQCAtNjEwLDEwICs2MTYsMTAgQEAgU0VMRUNUICoKIAogPHBy b2dyYW1saXN0aW5nPgogU0VMRUNUIHcxLmNpdHksIHcxLnRlbXBfbG8gQVMgbG93LCB3MS50ZW1w X2hpIEFTIGhpZ2gsCi0gICAgdzIuY2l0eSwgdzIudGVtcF9sbyBBUyBsb3csIHcyLnRlbXBfaGkg QVMgaGlnaAotICAgIEZST00gd2VhdGhlciB3MSwgd2VhdGhlciB3MgotICAgIFdIRVJFIHcxLnRl bXBfbG8gJmx0OyB3Mi50ZW1wX2xvCi0gICAgQU5EIHcxLnRlbXBfaGkgJmd0OyB3Mi50ZW1wX2hp OworICAgICAgIHcyLmNpdHksIHcyLnRlbXBfbG8gQVMgbG93LCB3Mi50ZW1wX2hpIEFTIGhpZ2gK K0ZST00gICB3ZWF0aGVyIHcxCitKT0lOICAgd2VhdGhlciB3MiBPTiAodzEudGVtcF9sbyAmbHQ7 IHcyLnRlbXBfbG8gQU5ECisgICAgICAgICAgICAgICAgICAgICAgdzEudGVtcF9oaSAmZ3Q7IHcy LnRlbXBfaGkpOwogPC9wcm9ncmFtbGlzdGluZz4KIAogPHNjcmVlbj4KQEAgLTYzMCw4ICs2MzYs OCBAQCBTRUxFQ1QgdzEuY2l0eSwgdzEudGVtcF9sbyBBUyBsb3csIHcxLnRlbXBfaGkgQVMgaGln aCwKICAgICBxdWVyaWVzIHRvIHNhdmUgc29tZSB0eXBpbmcsIGUuZy46CiA8cHJvZ3JhbWxpc3Rp bmc+CiBTRUxFQ1QgKgotICAgIEZST00gd2VhdGhlciB3LCBjaXRpZXMgYwotICAgIFdIRVJFIHcu Y2l0eSA9IGMubmFtZTsKK0ZST00gICB3ZWF0aGVyIHcKK0pPSU4gICBjaXRpZXMgIGMgT04gKHcu Y2l0eSA9IGMubmFtZSk7CiA8L3Byb2dyYW1saXN0aW5nPgogICAgIFlvdSB3aWxsIGVuY291bnRl ciB0aGlzIHN0eWxlIG9mIGFiYnJldmlhdGluZyBxdWl0ZSBmcmVxdWVudGx5LgogICAgPC9wYXJh Pgo= --000000000000cb13d105b236df59 Content-Type: application/octet-stream; name="0002-01-DGJ-query.patch" Content-Disposition: attachment; filename="0002-01-DGJ-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kgk1drzr1 Y29tbWl0IDRmNWY1YzZiZmM5NjRkOWMxMzZiMGQzNDkwZGRhYTZhNTNhNGMyNWMKQXV0aG9yOiBE YXZpZCBHLiBKb2huc3RvbiA8ZGF2aWQuZy5qb2huc3RvbkBnbWFpbC5jb20+CkRhdGU6ICAgV2Vk IE9jdCAyMSAyMzoyMzozMyAyMDIwICswMDAwCgogICAgU29tZSB3b3JkLXNtaXRoaW5nIHRvIGdv IGFsb25nIHdpdGggbXkgZW1haWwgY29tbWVudHMKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cXVlcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9xdWVyeS5zZ21sCmluZGV4IDQxMzc2MzY5MWUuLmJj NDIzODE0MjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9xdWVyeS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9xdWVyeS5zZ21sCkBAIC00NDAsMTMgKzQ0MCwxMiBAQCBTRUxFQ1QgRElTVElOQ1Qg Y2l0eQogCiAgICA8cGFyYT4KICAgICBUaHVzIGZhciwgb3VyIHF1ZXJpZXMgaGF2ZSBvbmx5IGFj Y2Vzc2VkIG9uZSB0YWJsZSBhdCBhIHRpbWUuCi0gICAgUXVlcmllcyBjYW4gYWNjZXNzIG11bHRp cGxlIHRhYmxlcyBhdCBvbmNlLCBvciBhY2Nlc3MgdGhlIHNhbWUKLSAgICB0YWJsZSBzZXZlcmFs IHRpbWVzLiBTdWNoIHF1ZXJpZXMgJm1kYXNoOyB0aGV5IGFyZSBjYWxsZWQKLSAgICA8Zmlyc3R0 ZXJtPmpvaW48L2ZpcnN0dGVybT4gcXVlcmllcyAmbWRhc2g7IGNvbWJpbmUKLSAgICByb3dzIG9m IG9uZSB0YWJsZSBpbiBzb21lIHdheSB3aXRoIHJvd3Mgb2YgdGhlIG90aGVyIHRhYmxlCi0gICAg YW5kIHJldHVybiBhIHNpbmdsZSByb3cgcGVyIGNvbWJpbmF0aW9uLiBBbiBleGFtcGxlIG1heSBi ZSBhCi0gICAgbGlzdCBvZiBhbGwgdGhlIHdlYXRoZXIgcmVjb3JkcyB0b2dldGhlciB3aXRoIHRo ZSBsb2NhdGlvbiBvZiB0aGUKLSAgICBhc3NvY2lhdGVkIGNpdHkuICBUbyBkbyB0aGF0LCB3ZSBu ZWVkIHRvIGNvbXBhcmUgdGhlIDxzdHJ1Y3RmaWVsZD5jaXR5PC9zdHJ1Y3RmaWVsZD4KKyAgICBR dWVyaWVzIHdoaWNoIGFjY2VzcyBtdWx0aXBsZSB0YWJsZXMgKGluY2x1ZGluZyByZXBlYXRzKSBh dCBvbmNlIGFyZSBjYWxsZWQKKyAgICA8Zmlyc3R0ZXJtPmpvaW48L2ZpcnN0dGVybT4gcXVlcmll cy4gIFRoZXkgaW50ZXJuYWxseSBjb21iaW5lCisgICAgZWFjaCByb3cgZnJvbSBvbmUgdGFibGUg d2l0aCBlYWNoIHJvdyBvZiBhIHNlY29uZCB0YWJsZS4gIEEgZXhwcmVzc2lvbiBpcworICAgIHNw ZWNpZmllZCB0byB0aGVuIGxpbWl0IHdoaWNoIHBhaXJzIG9mIHJvd3MgYXJlIHJldHVybmVkLgor ICAgIEZvciBleGFtcGxlLCB0byByZXR1cm4gYWxsIHRoZSB3ZWF0aGVyIHJlY29yZHMgdG9nZXRo ZXIgd2l0aCB0aGUgbG9jYXRpb24gb2YgdGhlCisgICAgYXNzb2NpYXRlZCBjaXR5LCB0aGUgZGF0 YWJhc2UgY29tcGFyZSB0aGUgPHN0cnVjdGZpZWxkPmNpdHk8L3N0cnVjdGZpZWxkPgogICAgIGNv bHVtbiBvZiBlYWNoIHJvdyBvZiB0aGUgPHN0cnVjdG5hbWU+d2VhdGhlcjwvc3RydWN0bmFtZT4g dGFibGUgd2l0aCB0aGUKICAgICA8c3RydWN0ZmllbGQ+bmFtZTwvc3RydWN0ZmllbGQ+IGNvbHVt biBvZiBhbGwgcm93cyBpbiB0aGUgPHN0cnVjdG5hbWU+Y2l0aWVzPC9zdHJ1Y3RuYW1lPgogICAg IHRhYmxlLCBhbmQgc2VsZWN0IHRoZSBwYWlycyBvZiByb3dzIHdoZXJlIHRoZXNlIHZhbHVlcyBt YXRjaC4KQEAgLTQ2Niw4ICs0NjUsOCBAQCBKT0lOICAgY2l0aWVzIE9OIChjaXR5ID0gbmFtZSk7 CiA8L3Byb2dyYW1saXN0aW5nPgogCiAgICAgVGhlIGtleXdvcmQgPGNvbW1hbmQ+Sk9JTjwvY29t bWFuZD4gY29ubmVjdHMgdGhlIHR3byB0YWJsZXMuCi0gICAgQmVoaW5kIHRoZSBrZXl3b3JkIDxj b21tYW5kPk9OPC9jb21tYW5kPiBmb2xsb3dzIHRoZQotICAgIGRlZmluaXRpb24gaG93IHRvIGNv bXBhcmUgdGhlaXIgcm93cy4gSW4gdGhpcyBjYXNlLCB0aGUKKyAgICBBZnRlciB0aGUga2V5d29y ZCA8Y29tbWFuZD5PTjwvY29tbWFuZD4gZm9sbG93cyB0aGUKKyAgICBleHByZXNzaW9uIGNvbXBh cmluZyB0aGVpciByb3dzLiBJbiB0aGlzIGNhc2UsIHRoZQogICAgIGNvbHVtbiA8dmFybmFtZT5j aXR5PC92YXJuYW1lPiBvZiB0YWJsZSA8dmFybmFtZT53ZWF0aGVyPC92YXJuYW1lPgogICAgIG11 c3QgYmUgZXF1YWwgdG8gdGhlIGNvbHVtbiA8dmFybmFtZT5uYW1lPC92YXJuYW1lPgogICAgIG9m IHRhYmxlIDx2YXJuYW1lPmNpdGllczwvdmFybmFtZT4uCkBAIC00ODMsMTQgKzQ4Miw4IEBAIEpP SU4gICBjaXRpZXMgT04gKGNpdHkgPSBuYW1lKTsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0g ICAgT2JzZXJ2ZSBzb21lIHRoaW5ncyBhYm91dCB0aGUgcmVzdWx0IHNldDoKKyAgICBPYnNlcnZl IHR3byB0aGluZ3MgYWJvdXQgdGhlIHJlc3VsdCBzZXQ6CiAgICAgPGl0ZW1pemVkbGlzdD4KLSAg ICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHJlc3VsdGluZyByb3dzIGNv bnRhaW4gdmFsdWVzIGZyb20gYm90aCB0YWJsZXMuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlz dGl0ZW0+Ci0KICAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+CiAgICAgICAgVGhlcmUgaXMg bm8gcmVzdWx0IHJvdyBmb3IgdGhlIGNpdHkgb2YgSGF5d2FyZC4gIFRoaXMgaXMKQEAgLTU0Niwx MyArNTM5LDE1IEBAIEpPSU4gICBjaXRpZXMgT04gKGNpdGllcy5uYW1lID0gd2VhdGhlci5jaXR5 KTsKIDxwcm9ncmFtbGlzdGluZz4KIFNFTEVDVCAqCiBGUk9NICAgd2VhdGhlciwgY2l0aWVzCi1X SEVSRSAgd2VhdGhlci5jaXR5ID0gY2l0aWVzLm5hbWU7CitXSEVSRSAgY2l0eSA9IG5hbWU7CiA8 L3Byb2dyYW1saXN0aW5nPgogCi0gICAgVGhpcyBzeW50YXggaXMgbWFpbmx5IHVzZWQgaW4gbGVn YWN5IGFwcGxpY2F0aW9ucy4gSXQgZGF0ZXMgYmFjawotICAgIHRvIHRoZSBmaXJzdCBkYXlzIG9m IFNRTCwgYXZvaWRzIHRoZSA8bGl0ZXJhbD5KT0lOPC9saXRlcmFsPgotICAgIGtleXdvcmQsIGFu ZCB1c2VzIHRoZSA8bGl0ZXJhbD5XSEVSRTwvbGl0ZXJhbD4gY2xhdXNlIGluc3RlYWQgb2YgdGhl Ci0gICAgPGxpdGVyYWw+T048L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBUaGlzIHN5bnRheCBwcmUt ZGF0ZXMgdGhlIDxsaXRlcmFsPkpPSU48L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5PTjwvbGl0ZXJh bD4KKyAgICBrZXl3b3Jkcy4gIFRoZSB0YWJsZXMgYXJlIHNpbXBseSBsaXN0ZWQgaW4gdGhlIDxs aXRlcmFsPkZST008L2xpdGVyYWw+LAorICAgIGNvbW1hLXNlcGFyYXRlZCwgYW5kIHRoZSBjb21w YXJpc29uIGV4cHJlc3Npb24gYWRkZWQgdG8gdGhlCisgICAgPGxpdGVyYWw+V0hFUkU8L2xpdGVy YWw+IGNsYXVzZS4gIEFzIGpvaW4gZXhwcmVzc2lvbnMgc2VydmUgYSBzcGVjaWZpYworICAgIHB1 cnBvc2UgaW4gYSBtdWx0aS10YWJsZSBxdWVyeSBpdCBpcyBwcmVmZXJhYmxlIHRvIG1ha2UgdGhl bSBzdGFuZC1vdXQKKyAgICBieSB1c2luZyBqb2luIGNsYXVzZXMgdG8gaW50cm9kdWNlIGFkZGl0 aW9uYWwgdGFibGVzIGludG8gdGhlIHF1ZXJ5LgogICAgPC9wYXJhPgogCiAgICA8aW5kZXh0ZXJt PjxwcmltYXJ5PmpvaW48L3ByaW1hcnk+PHNlY29uZGFyeT5vdXRlcjwvc2Vjb25kYXJ5PjwvaW5k ZXh0ZXJtPgpAQCAtNTY1LDggKzU2MCw4IEBAIFdIRVJFICB3ZWF0aGVyLmNpdHkgPSBjaXRpZXMu bmFtZTsKICAgICBmb3VuZCB3ZSB3YW50IHNvbWUgPHF1b3RlPmVtcHR5IHZhbHVlczwvcXVvdGU+ IHRvIGJlIHN1YnN0aXR1dGVkCiAgICAgZm9yIHRoZSA8c3RydWN0bmFtZT5jaXRpZXM8L3N0cnVj dG5hbWU+IHRhYmxlJ3MgY29sdW1ucy4gIFRoaXMga2luZAogICAgIG9mIHF1ZXJ5IGlzIGNhbGxl ZCBhbiA8Zmlyc3R0ZXJtPm91dGVyIGpvaW48L2ZpcnN0dGVybT4uICAoVGhlCi0gICAgam9pbnMg d2UgaGF2ZSBzZWVuIHNvIGZhciBhcmUgPGZpcnN0dGVybT5pbm5lciBqb2luczwvZmlyc3R0ZXJt Pi4pICBUaGUgY29tbWFuZCBsb29rcwotICAgIGxpa2UgdGhpczoKKyAgICBqb2lucyB3ZSBoYXZl IHNlZW4gc28gZmFyIGFyZSA8Zmlyc3R0ZXJtPmlubmVyIGpvaW5zPC9maXJzdHRlcm0+LikKKyAg ICBUaGUgY29tbWFuZCBsb29rcyBsaWtlIHRoaXM6CiAKIDxwcm9ncmFtbGlzdGluZz4KIFNFTEVD VCAqCg== --000000000000cb13d105b236df59--