Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1drnSa-0006pm-4S for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Sep 2017 15:50:48 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1drnSZ-0006Dm-OP for pgsql-hackers@arkaria.postgresql.org; Tue, 12 Sep 2017 15:50:47 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1drnQw-0001Ud-Vf; Tue, 12 Sep 2017 15:49:07 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1drnQt-0004gU-B4; Tue, 12 Sep 2017 15:49:05 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 9F3C121C1D11; Tue, 12 Sep 2017 18:49:01 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru Received: from mail.postgrespro.ru (unknown [192.168.27.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 6867621C1D0F; Tue, 12 Sep 2017 18:49:01 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1505231341; bh=IzVdKWsTnJQreXRe+50tp6e/3rNNLRHer/RPLI+Ksrg=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=Kz86a4YAUGpkZxsTIAUsT/5JMOcp/mmBc91n14aH8A9JnT0aCvWH3oDLvyzbQfPpo Rfil3B1OUleCQRU5JyuSrh/o5U6DqjFKwJeYSip7kL81QyWO5gjO/hLHmd1+b3/wd6 mm34zfPeB9p2F/JEgoWOohbiOyESRZI6Xyhvnvxw= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_d2819f77bd6388c80bc01e0922fdabae" Date: Tue, 12 Sep 2017 18:49:01 +0300 From: Sokolov Yura To: Alvaro Herrera Cc: Heikki Linnakangas , pgsql-hackers@postgresql.org, Heikki Linnakangas , pgsql-hackers-owner@postgresql.org Subject: Re: Small improvement to compactify_tuples Organization: Postgres Professional In-Reply-To: <9c4bc2ff302be669717101bc33127fd0@postgrespro.ru> References: <20170515171331.taa44gjbc7p3aaul@alvherre.pgsql> <468f371fe05c1de09c4dc101435ef93d@postgrespro.ru> <9c4bc2ff302be669717101bc33127fd0@postgrespro.ru> Message-ID: X-Sender: funny.falcon@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --=_d2819f77bd6388c80bc01e0922fdabae Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On 2017-07-21 13:49, Sokolov Yura wrote: > On 2017-05-17 17:46, Sokolov Yura wrote: >> Alvaro Herrera писал 2017-05-15 20:13: >>> As I understand, these patches are logically separate, so putting >>> them >>> together in a single file isn't such a great idea. If you don't edit >>> the patches further, then you're all set because we already have the >>> previously archived patches. Next commitfest starts in a few months >>> yet, and if you feel the need to submit corrected versions in the >>> meantime, please do submit in separate files. (Some would even argue >>> that each should be its own thread, but I don't think that's >>> necessary.) >> >> Thank you for explanation. >> >> I'm adding new version of first patch with minor improvement: >> - I added detection of a case when all buckets are trivial >> (ie 0 or 1 element). In this case no need to sort buckets at all. > > I'm putting rebased version of second patch. Again rebased version of both patches. Now second patch applies cleanly independent of first patch. -- Sokolov Yura aka funny_falcon Postgres Professional: https://postgrespro.ru The Russian Postgres Company --=_d2819f77bd6388c80bc01e0922fdabae Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Improve-compactify_tuples.patch Content-Disposition: attachment; filename=0001-Improve-compactify_tuples.patch; size=6317 RnJvbSBhNjBhYzlmNzljYzk3YmQ2YjhjZjY5MzJiNTY4NDRkMTM2ODkzZmY5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2tvbG92IFl1cmEg PGZ1bm55LmZhbGNvbkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNSBN YXkgMjAxNyAxNDoyMzozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBJ bXByb3ZlIGNvbXBhY3RpZnlfdHVwbGVzCgpJdGVtcyBwYXNzZWQgdG8gY29t cGFjdGlmeV90dXBsZXMgYXJlIGFsbW9zdCBzb3J0ZWQuIFNvIGNhbGwgdG8g Z2VuZXJhbApxc29ydCBtYWtlcyB1bm5lY2Vzc2FyeSBvdmVyaGVhZCBvbiBm dW5jdGlvbiBjYWxscyAoc3dhcGZ1bmMsIG1lZCwKaXRlbW9mZmNvbXBhcmUp LgoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGJ1Y2tldCBzb3J0OgotIG9uZSBw YXNzIG9mIHN0YWJsZSBwcmVmaXggc29ydCBvbiBoaWdoIDggYml0cyBvZiBv ZmZzZXQKLSBhbmQgaW5zZXJ0aW9uIHNvcnQgZm9yIGJ1Y2tldHMgbGFyZ2Vy IHRoYW4gMSBlbGVtZW50CgpBbHNvIGZvciBzbWFsbGVyIGFycmF5cyBzaGVs bCBzb3J0IGlzIHVzZWQuCgpJbnNlcnRpb24gYW5kIFNoZWxsIHNvcnQgYXJl IGltcGxlbWVudGVkIHVzaW5nIG1hY3Jvc2VzLgoKVGhpcyBhcHByb2FjaCBh bGxvd3MgdG8gc2F2ZSAzJSBvZiBjcHUgaW4gZGVnZW5lcmF0ZSBjYXNlCiho aWdobHkgaW50ZW5zaXZlIEhPVCByYW5kb20gdXBkYXRlcyBvbiB1bmxvZ2dl ZCB0YWJsZSB3aXRoCiBzeW5jaHJvbml6ZWRfY29tbWl0PW9mZiksIGFuZCBz cGVlZHMgdXAgV0FMIHJlcGxheWluZyAoYXMgd2VyZQpmb3VuZCBieSBIZWlr a2kgTGlubmFrYW5nYXMpLgoKU2FtZSBhcHByb2FjaCB3ZXJlIGltcGxlbWVu dGVkIGJ5IEhlaWtraSBMaW5uYWthbmdhcyBzb21lIHRpbWUgYWdvIHdpdGgK c2V2ZXJhbCBkaXN0aW5jdGlvbnMuCi0tLQogc3JjL2JhY2tlbmQvc3RvcmFn ZS9wYWdlL2J1ZnBhZ2UuYyB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAg ICAgICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBh Z2UuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMKaW5k ZXggNDE2NDJlYjU5Yy4uYmE5OWQwNjJiNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYworKysgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jCkBAIC00MzQsNiArNDM0LDg2IEBA IGl0ZW1vZmZjb21wYXJlKGNvbnN0IHZvaWQgKml0ZW1pZHAxLCBjb25zdCB2 b2lkICppdGVtaWRwMikKIH0KIAogLyoKKyAqIFNvcnQgYW4gYXJyYXkgb2Yg aXRlbUlkU29ydCdzIG9uIGl0ZW1vZmYsIGRlc2NlbmRpbmcuCisgKgorICog SXQgdXNlcyBTaGVsbCBzb3J0LiBHaXZlbiBhcnJheSBpcyBzbWFsbCBhbmQg aXRlbW9mZmNvbXBhcmUgaXMgaW5saW5lZCwKKyAqIGl0IGlzIG11Y2ggZmFz dGVyIHRoYW4gY2FsbCB0byBxc29ydC4KKyAqLworc3RhdGljIHZvaWQKK3Nv cnRfaXRlbUlkc19zbWFsbChpdGVtSWRTb3J0IGl0ZW1pZGJhc2UsIGludCBu aXRlbXMpCit7CisJcGdfc2hlbGxfc29ydChpdGVtSWRTb3J0RGF0YSwgaXRl bWlkYmFzZSwgbml0ZW1zLCBpdGVtb2ZmY29tcGFyZSk7Cit9CisKKy8qCisg KiBTb3J0IGFuIGFycmF5IG9mIGl0ZW1JZFNvcnQncyBvbiBpdGVtb2ZmLCBk ZXNjZW5kaW5nLgorICoKKyAqIEl0IHVzZXMgYnVja2V0IHNvcnQ6CisgKiAt IHNpbmdsZSBwYXNzIG9mIHN0YWJsZSBwcmVmaXggc29ydCBvbiBoaWdoIDgg Yml0cworICogLSBhbmQgaW5zZXJ0aW9uIHNvcnQgb24gYnVja2V0cyBsYXJn ZXIgdGhhbiAxIGVsZW1lbnQKKyAqLworc3RhdGljIHZvaWQKK3NvcnRfaXRl bUlkcyhpdGVtSWRTb3J0IGl0ZW1pZGJhc2UsIGludCBuaXRlbXMpCit7CisJ aXRlbUlkU29ydERhdGEgY29weVtNYXgoTWF4SW5kZXhUdXBsZXNQZXJQYWdl LCBNYXhIZWFwVHVwbGVzUGVyUGFnZSldOworI2RlZmluZSBOU1BMSVQgMjU2 CisjZGVmaW5lIFBSRUZESVYgKEJMQ0tTWiAvIE5TUExJVCkKKwkvKiB0d28g ZXh0cmEgZWxlbWVudHMgdG8gZW11bGF0ZSBvZmZzZXQgb24gcHJldmlvdXMg c3RlcCAqLworCXVpbnQxNgkJY291bnRbTlNQTElUICsgMl0gPSB7MH07CisJ aW50CQkJaSwKKwkJCQltYXgsCisJCQkJdG90YWwsCisJCQkJcG9zLAorCQkJ CWhpZ2hiaXRzOworCisJQXNzZXJ0KG5pdGVtcyA8PSBNYXhJbmRleFR1cGxl c1BlclBhZ2UpOworCWZvciAoaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykKKwl7 CisJCWhpZ2hiaXRzID0gaXRlbWlkYmFzZVtpXS5pdGVtb2ZmIC8gUFJFRkRJ VjsKKwkJY291bnRbaGlnaGJpdHNdKys7CisJfQorCS8qIHNvcnQgaW4gZGVj cmVhc2luZyBvcmRlciAqLworCW1heCA9IHRvdGFsID0gY291bnRbTlNQTElU IC0gMV07CisJZm9yIChpID0gTlNQTElUIC0gMjsgaSA+PSAwOyBpLS0pCisJ eworCQltYXggfD0gY291bnRbaV07CisJCXRvdGFsICs9IGNvdW50W2ldOwor CQljb3VudFtpXSA9IHRvdGFsOworCX0KKworCS8qCisJICogY291bnRbaysx XSBpcyBzdGFydCBvZiBidWNrZXQgaywgY291bnRba10gaXMgZW5kIG9mIGJ1 Y2tldCBrLCBhbmQKKwkgKiBjb3VudFtrXSAtIGNvdW50W2srMV0gaXMgbGVu Z3RoIG9mIGJ1Y2tldCBrLgorCSAqLworCUFzc2VydChjb3VudFswXSA9PSBu aXRlbXMpOworCWZvciAoaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykKKwl7CisJ CWhpZ2hiaXRzID0gaXRlbWlkYmFzZVtpXS5pdGVtb2ZmIC8gUFJFRkRJVjsK KwkJcG9zID0gY291bnRbaGlnaGJpdHMgKyAxXTsKKwkJY291bnRbaGlnaGJp dHMgKyAxXSsrOworCQljb3B5W3Bvc10gPSBpdGVtaWRiYXNlW2ldOworCX0K KwlBc3NlcnQoY291bnRbMV0gPT0gbml0ZW1zKTsKKworCWlmIChtYXggPT0g MSkKKwkJZ290byBlbmQ7CisKKwkvKgorCSAqIGNvdW50W2srMl0gaXMgc3Rh cnQgb2YgYnVja2V0IGssIGNvdW50W2srMV0gaXMgZW5kIG9mIGJ1Y2tldCBr LCBhbmQKKwkgKiBjb3VudFtrKzFdLWNvdW50W2srMl0gaXMgbGVuZ3RoIG9m IGJ1Y2tldCBrLgorCSAqLworCWZvciAoaSA9IE5TUExJVDsgaSA+IDA7IGkt LSkKKwl7CisJCXBnX2luc2VydGlvbl9zb3J0KGl0ZW1JZFNvcnREYXRhLAor CQkJCQkJICBjb3B5ICsgY291bnRbaSArIDFdLAorCQkJCQkJICBjb3VudFtp XSAtIGNvdW50W2kgKyAxXSwKKwkJCQkJCSAgaXRlbW9mZmNvbXBhcmUpOwor CX0KK2VuZDoKKwltZW1jcHkoaXRlbWlkYmFzZSwgY29weSwgc2l6ZW9mKGl0 ZW1JZFNvcnREYXRhKSAqIG5pdGVtcyk7Cit9CisKKy8qCiAgKiBBZnRlciBy ZW1vdmluZyBvciBtYXJraW5nIHNvbWUgbGluZSBwb2ludGVycyB1bnVzZWQs IG1vdmUgdGhlIHR1cGxlcyB0bwogICogcmVtb3ZlIHRoZSBnYXBzIGNhdXNl ZCBieSB0aGUgcmVtb3ZlZCBpdGVtcy4KICAqLwpAQCAtNDQ0LDkgKzUyNCwx MCBAQCBjb21wYWN0aWZ5X3R1cGxlcyhpdGVtSWRTb3J0IGl0ZW1pZGJhc2Us IGludCBuaXRlbXMsIFBhZ2UgcGFnZSkKIAlPZmZzZXQJCXVwcGVyOwogCWlu dAkJCWk7CiAKLQkvKiBzb3J0IGl0ZW1JZFNvcnREYXRhIGFycmF5IGludG8g ZGVjcmVhc2luZyBpdGVtb2ZmIG9yZGVyICovCi0JcXNvcnQoKGNoYXIgKikg aXRlbWlkYmFzZSwgbml0ZW1zLCBzaXplb2YoaXRlbUlkU29ydERhdGEpLAot CQkgIGl0ZW1vZmZjb21wYXJlKTsKKwlpZiAobml0ZW1zID4gNDgpCisJCXNv cnRfaXRlbUlkcyhpdGVtaWRiYXNlLCBuaXRlbXMpOworCWVsc2UKKwkJc29y dF9pdGVtSWRzX3NtYWxsKGl0ZW1pZGJhc2UsIG5pdGVtcyk7CiAKIAl1cHBl ciA9IHBoZHItPnBkX3NwZWNpYWw7CiAJZm9yIChpID0gMDsgaSA8IG5pdGVt czsgaSsrKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2lu Y2x1ZGUvYy5oCmluZGV4IDYzMGRmYmZjNDEuLmE0OTViOWY4ZWIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgK QEAgLTk1Myw2ICs5NTMsNjUgQEAgdHlwZWRlZiBOYW1lRGF0YSAqTmFtZTsK ICNkZWZpbmUgdW5saWtlbHkoeCkgKCh4KSAhPSAwKQogI2VuZGlmCiAKKy8q CisgKiBwZ19zaGVsbF9zb3J0IC0gc29ydCBmb3Igc21hbGwgYXJyYXlzIHdp dGggaW5saW5hYmxlIGNvbXBhcmF0b3IuCisgKiBTaW5jZSBpdCBpcyBpbXBs ZW1lbnRlZCBhcyBhIG1hY3JvcyBpdCBjb3VsZCBiZSBvcHRpbWl6ZWQgdG9n ZXRoZXIgd2l0aAorICogY29tcGFyaXNvbiBmdW5jdGlvbi4KKyAqIEdhcHMg YXJlICJnYXAoaSkgPSBzbWFsbGVzdCBwcmltZSBudW1iZXIgYmVsb3cgZV5p Ii4gVGhleSBhcmUgY2xvc2UgdG8KKyAqIEluY2VycGkgJiBTZWR3aWNrIGdh cHMsIGJ1dCBsb29rcyB0byBiZSBiZXR0ZXIgaW4gYXZlcmFnZS4KKyAqIEl0 IGlzIGJlc3QgdXNlZCB3aXRoIGFycmF5IHNtYWxsZXIgdGhhbiAyMDAgZWxl bWVudHMsIGFuZCBjb3VsZCBiZSBzYWZlbHkKKyAqIHVzZWQgdXB0byAxMDAw IGVsZW1lbnRzLiBCdXQgaXQgZGVncmFkZXMgZmFzdCBhZnRlciB0aGF0LCBh bmQgaXQgaXMKKyAqIGJldHRlciB0byB1c2UgcXNvcnQuCisgKgorICogQXJn dW1lbnRzOgorICoJIGVsZW1fdCAtIHR5cGUgb2YgYXJyYXkgZWxlbWVudCAo Zm9yIGRlY2xhcmluZyB0ZW1wb3JhcnkgdmFyaWFibGVzKQorICoJIGFycmF5 CS0gcG9pbnRlciB0byBlbGVtZW50cyB0byBiZSBzb3J0ZWQKKyAqCSBuaXRl bXMgLSBhbW91bnQgb2YgZWxlbWVudHMgdG8gYmUgc29ydGVkCisgKgkgY21w CS0gY29tcGFyaXNvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgYWRkcmVzcyBv ZiBlbGVtZW50cworICoJCQkgIChpdCBpcyBjb21wYXRpYmxlIHdpdGggcXNv cnQgY29tcGFyaXNvbiBmdW5jdGlvbikuCisgKgkgTm90ZTogYGNtcGAgYXJn dW1lbnQgZXZhbHVhdGVzIG1hbnkgdGltZXMuCisgKgkgT3RoZXIgYXJndW1l bnRzIGV2YWx1YXRlcyBvbmNlCisgKi8KKyNkZWZpbmUgcGdfc2hlbGxfc29y dF9wYXNzKGVsZW1fdCwgY21wLCBvZmYpIFwKKwlkbyB7IFwKKwkJaW50IF9p LCBfajsgXAorCQllbGVtX3QgX3RlbXA7IFwKKwkJZm9yIChfaSA9IG9mZjsg X2kgPCBfbjsgX2kgKz0gb2ZmKSBcCisJCXsgXAorCQkJaWYgKChjbXApKF9h cnIrX2ksIF9hcnIrX2ktb2ZmKSA+PSAwKSBcCisJCQkJY29udGludWU7IFwK KwkJCV90ZW1wID0gX2FycltfaV07IFwKKwkJCV9qID0gX2k7IFwKKwkJCWRv IHsgXAorCQkJCV9hcnJbX2pdID0gX2FycltfaiAtIG9mZl07IFwKKwkJCQlf aiAtPSBvZmY7IFwKKwkJCX0gd2hpbGUgKF9qID49IG9mZiAmJiAoY21wKShf YXJyK19qLW9mZiwgJl90ZW1wKSA+IDApOyBcCisJCQlfYXJyW19qXSA9IF90 ZW1wOyBcCisJCX0gXAorCX0gd2hpbGUgKDApCisjZGVmaW5lIHBnX3NoZWxs X3NvcnQoZWxlbV90LCBhcnJheSwgbml0ZW1zLCBjbXApIFwKKwlkbyB7IFwK KwkJaW50IF9uID0gKG5pdGVtcyk7IFwKKwkJZWxlbV90KiBfYXJyID0gKGFy cmF5KTsgXAorCQlzdGF0aWMgY29uc3QgaW50IF9vZmZzZXRzW10gPSB7NDAx LCAxMzksIDUzLCAxOSwgNywgM307IFwKKwkJaW50IF9ub2ZmLCBfb2ZmOyBc CisJCWZvciAoX25vZmYgPSAwOyBfbm9mZiA8IGxlbmd0aG9mKF9vZmZzZXRz KTsgX25vZmYrKykgeyBcCisJCQlfb2ZmID0gX29mZnNldHNbX25vZmZdOyBc CisJCQlwZ19zaGVsbF9zb3J0X3Bhc3MoZWxlbV90LCAoY21wKSwgX29mZik7 IFwKKwkJfSBcCisJCXBnX3NoZWxsX3NvcnRfcGFzcyhlbGVtX3QsIChjbXAp LCAxKTsgXAorCX0gd2hpbGUoMCkKKy8qCisgKiBwZ19pbnNlcnRpb25fc29y dCAtIGp1c3QgaW5zZXJ0aW9uIHNvcnQgZm9yIHNtYWxsZXN0IGFycmF5LCBv ciBpZgorICogYXJyYXkgd2FzIGFsbW9zdCBzb3J0ZWQgYWxyZWFkeS4gVXNl cyBzYW1lIGFyZ3VtZW50cyBhcyBwZ19zaGVsbF9zb3J0LgorICovCisjZGVm aW5lIHBnX2luc2VydGlvbl9zb3J0KGVsZW1fdCwgYXJyYXksIG5pdGVtcywg Y21wKSBcCisJZG8geyBcCisJCWludCBfbiA9IChuaXRlbXMpOyBcCisJCWVs ZW1fdCogX2FyciA9IChhcnJheSk7IFwKKwkJcGdfc2hlbGxfc29ydF9wYXNz KGVsZW1fdCwgKGNtcCksIDEpOyBcCisJfSB3aGlsZSAoMCkKKwogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJCQlTZWN0aW9uIDg6CXJhbmRvbSBz dHVmZgotLSAKMi4xMS4wCgo= --=_d2819f77bd6388c80bc01e0922fdabae Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-Simplify-PageRepairFragmentation.patch Content-Disposition: attachment; filename=0002-Simplify-PageRepairFragmentation.patch; size=3328 RnJvbSA4Mzg0NGM2YTdlYmFmZTkzYmExMzg0NzE2MDliMjM5OTkxY2Q3NWQz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2tvbG92IFl1cmEg PGZ1bm55LmZhbGNvbkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNSBN YXkgMjAxNyAxNjowNDoxNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBT aW1wbGlmeSBQYWdlUmVwYWlyRnJhZ21lbnRhdGlvbgoKSW4gYXNzdW1wdGlv biB0aGF0IHBhZ2UgdXN1YWxseSBkb2Vzbid0IGJlY29tZSBlbXB0eSwgbWVy Z2Ugc2Vjb25kIGxvb3AKYm9keSAoY29sbGVjdGluZyBpdGVtcyB3aXRoIHN0 b3JhZ2UpIGludG8gZmlyc3QgKGNvdW50aW5nIGtpbmRzIG9mCml0ZW1zKS4K LS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jIHwgNDYg KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFn ZS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYwppbmRl eCBiYTk5ZDA2MmI2Li43N2NlZjUxZDAyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jCisrKyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMKQEAgLTU2NCwxMCArNTY0LDExIEBA IFBhZ2VSZXBhaXJGcmFnbWVudGF0aW9uKFBhZ2UgcGFnZSkKIAlPZmZzZXQJ CXBkX3NwZWNpYWwgPSAoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF9zcGVjaWFs OwogCUl0ZW1JZAkJbHA7CiAJaW50CQkJbmxpbmUsCi0JCQkJbnN0b3JhZ2Us CiAJCQkJbnVudXNlZDsKIAlpbnQJCQlpOwogCVNpemUJCXRvdGFsbGVuOwor CWl0ZW1JZFNvcnREYXRhIGl0ZW1pZGJhc2VbTWF4SGVhcFR1cGxlc1BlclBh Z2VdOworCWl0ZW1JZFNvcnQJaXRlbWlkcHRyID0gaXRlbWlkYmFzZTsKIAog CS8qCiAJICogSXQncyB3b3J0aCB0aGUgdHJvdWJsZSB0byBiZSBtb3JlIHBh cmFub2lkIGhlcmUgdGhhbiBpbiBtb3N0IHBsYWNlcywKQEAgLTU4NywxNCAr NTg4LDI2IEBAIFBhZ2VSZXBhaXJGcmFnbWVudGF0aW9uKFBhZ2UgcGFnZSkK IAkJCQkJCXBkX2xvd2VyLCBwZF91cHBlciwgcGRfc3BlY2lhbCkpKTsKIAog CW5saW5lID0gUGFnZUdldE1heE9mZnNldE51bWJlcihwYWdlKTsKLQludW51 c2VkID0gbnN0b3JhZ2UgPSAwOworCW51bnVzZWQgPSB0b3RhbGxlbiA9IDA7 CiAJZm9yIChpID0gRmlyc3RPZmZzZXROdW1iZXI7IGkgPD0gbmxpbmU7IGkr KykKIAl7CiAJCWxwID0gUGFnZUdldEl0ZW1JZChwYWdlLCBpKTsKIAkJaWYg KEl0ZW1JZElzVXNlZChscCkpCiAJCXsKIAkJCWlmIChJdGVtSWRIYXNTdG9y YWdlKGxwKSkKLQkJCQluc3RvcmFnZSsrOworCQkJeworCQkJCWl0ZW1pZHB0 ci0+b2Zmc2V0aW5kZXggPSBpIC0gMTsKKwkJCQlpdGVtaWRwdHItPml0ZW1v ZmYgPSBJdGVtSWRHZXRPZmZzZXQobHApOworCQkJCWlmICh1bmxpa2VseShp dGVtaWRwdHItPml0ZW1vZmYgPCAoaW50KSBwZF91cHBlciB8fAorCQkJCQkJ CSBpdGVtaWRwdHItPml0ZW1vZmYgPj0gKGludCkgcGRfc3BlY2lhbCkpCisJ CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBX0NPUlJVUFRFRCksCisJCQkJCQkJIGVycm1zZygiY29ycnVwdGVkIGl0 ZW0gcG9pbnRlcjogJXUiLAorCQkJCQkJCQkJaXRlbWlkcHRyLT5pdGVtb2Zm KSkpOworCQkJCWl0ZW1pZHB0ci0+YWxpZ25lZGxlbiA9IE1BWEFMSUdOKEl0 ZW1JZEdldExlbmd0aChscCkpOworCQkJCXRvdGFsbGVuICs9IGl0ZW1pZHB0 ci0+YWxpZ25lZGxlbjsKKwkJCQlpdGVtaWRwdHIrKzsKKwkJCX0KIAkJfQog CQllbHNlCiAJCXsKQEAgLTYwNCw3ICs2MTcsNyBAQCBQYWdlUmVwYWlyRnJh Z21lbnRhdGlvbihQYWdlIHBhZ2UpCiAJCX0KIAl9CiAKLQlpZiAobnN0b3Jh Z2UgPT0gMCkKKwlpZiAoaXRlbWlkcHRyID09IGl0ZW1pZGJhc2UpCiAJewog CQkvKiBQYWdlIGlzIGNvbXBsZXRlbHkgZW1wdHksIHNvIGp1c3QgcmVzZXQg aXQgcXVpY2tseSAqLwogCQkoKFBhZ2VIZWFkZXIpIHBhZ2UpLT5wZF91cHBl ciA9IHBkX3NwZWNpYWw7CkBAIC02MTIsMzYgKzYyNSwxMyBAQCBQYWdlUmVw YWlyRnJhZ21lbnRhdGlvbihQYWdlIHBhZ2UpCiAJZWxzZQogCXsKIAkJLyog TmVlZCB0byBjb21wYWN0IHRoZSBwYWdlIHRoZSBoYXJkIHdheSAqLwotCQlp dGVtSWRTb3J0RGF0YSBpdGVtaWRiYXNlW01heEhlYXBUdXBsZXNQZXJQYWdl XTsKLQkJaXRlbUlkU29ydAlpdGVtaWRwdHIgPSBpdGVtaWRiYXNlOwotCi0J CXRvdGFsbGVuID0gMDsKLQkJZm9yIChpID0gMDsgaSA8IG5saW5lOyBpKysp Ci0JCXsKLQkJCWxwID0gUGFnZUdldEl0ZW1JZChwYWdlLCBpICsgMSk7Ci0J CQlpZiAoSXRlbUlkSGFzU3RvcmFnZShscCkpCi0JCQl7Ci0JCQkJaXRlbWlk cHRyLT5vZmZzZXRpbmRleCA9IGk7Ci0JCQkJaXRlbWlkcHRyLT5pdGVtb2Zm ID0gSXRlbUlkR2V0T2Zmc2V0KGxwKTsKLQkJCQlpZiAoaXRlbWlkcHRyLT5p dGVtb2ZmIDwgKGludCkgcGRfdXBwZXIgfHwKLQkJCQkJaXRlbWlkcHRyLT5p dGVtb2ZmID49IChpbnQpIHBkX3NwZWNpYWwpCi0JCQkJCWVyZXBvcnQoRVJS T1IsCi0JCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCks Ci0JCQkJCQkJIGVycm1zZygiY29ycnVwdGVkIGl0ZW0gcG9pbnRlcjogJXUi LAotCQkJCQkJCQkJaXRlbWlkcHRyLT5pdGVtb2ZmKSkpOwotCQkJCWl0ZW1p ZHB0ci0+YWxpZ25lZGxlbiA9IE1BWEFMSUdOKEl0ZW1JZEdldExlbmd0aChs cCkpOwotCQkJCXRvdGFsbGVuICs9IGl0ZW1pZHB0ci0+YWxpZ25lZGxlbjsK LQkJCQlpdGVtaWRwdHIrKzsKLQkJCX0KLQkJfQotCiAJCWlmICh0b3RhbGxl biA+IChTaXplKSAocGRfc3BlY2lhbCAtIHBkX2xvd2VyKSkKIAkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBU RUQpLAogCQkJCQkgZXJybXNnKCJjb3JydXB0ZWQgaXRlbSBsZW5ndGhzOiB0 b3RhbCAldSwgYXZhaWxhYmxlIHNwYWNlICV1IiwKIAkJCQkJCQkodW5zaWdu ZWQgaW50KSB0b3RhbGxlbiwgcGRfc3BlY2lhbCAtIHBkX2xvd2VyKSkpOwog Ci0JCWNvbXBhY3RpZnlfdHVwbGVzKGl0ZW1pZGJhc2UsIG5zdG9yYWdlLCBw YWdlKTsKKwkJY29tcGFjdGlmeV90dXBsZXMoaXRlbWlkYmFzZSwgKGludCkg KGl0ZW1pZHB0ciAtIGl0ZW1pZGJhc2UpLCBwYWdlKTsKIAl9CiAKIAkvKiBT ZXQgaGludCBiaXQgZm9yIFBhZ2VBZGRJdGVtICovCi0tIAoyLjExLjAKCg== --=_d2819f77bd6388c80bc01e0922fdabae Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --=_d2819f77bd6388c80bc01e0922fdabae--