Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dAHsY-0006A1-TN for pgsql-hackers@arkaria.postgresql.org; Mon, 15 May 2017 15:25:47 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dAHsY-00030Q-G4 for pgsql-hackers@arkaria.postgresql.org; Mon, 15 May 2017 15:25:46 +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 1dAHqE-00079U-08 for pgsql-hackers@postgresql.org; Mon, 15 May 2017 15:23:22 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dAHq8-0007uy-1m for pgsql-hackers@postgresql.org; Mon, 15 May 2017 15:23:20 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id C245E21C08AD; Mon, 15 May 2017 18:23:13 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1494861793; bh=ipg6MJTp7sjcYw3vnItqVadtqgAwH7CB26IznyMLQwE=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=EsIQWkRrSObGp/d2RgcgV7YbPIenbrTXbt5oYYCjuXr0S/4HYsBSd03GQA4rzR84d M/PKldOY20f09xxb8b99qfGA/KQhD3lHmT5BDHbv45xzyF/Ys/q/8ZHlLXLJow8O+f TrM1LhfzoLNDwwAxcNAQnrFnjdjE1t4cuhEgXnwU= Content-Type: multipart/mixed; boundary="=_01e6e2262f37b1078205a947e171627d" Date: Mon, 15 May 2017 18:23:12 +0300 From: Sokolov Yura To: Alvaro Herrera Cc: Heikki Linnakangas , pgsql-hackers@postgresql.org, Heikki Linnakangas Subject: Re: Small improvement to compactify_tuples Organization: Postgres Professional In-Reply-To: <20170515150412.dkwoubknmofmvszs@alvherre.pgsql> References: <20170515150412.dkwoubknmofmvszs@alvherre.pgsql> Message-ID: <216eb4d012f184b3281cecbe4fef9094@postgrespro.ru> X-Sender: funny.falcon@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 X-Pg-Spam-Score: -2.0 (--) 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 --=_01e6e2262f37b1078205a947e171627d Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed Alvaro Herrera писал 2017-05-15 18:04: > Please add these two patches to the upcoming commitfest, > https://commitfest.postgresql.org/ Thank you for suggestion. I've created https://commitfest.postgresql.org/14/1138/ As I could understand, I should attach both patches to single email to be show correctly in commitfest topic. So I do it with this email. Please, correct me, if I do something wrong. With regards. -- Sokolov Yura aka funny.falcon Postgres Professional: https://postgrespro.ru The Russian Postgres Company --=_01e6e2262f37b1078205a947e171627d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-bufpage.c-simplify-PageRepairFragmentation.patch Content-Disposition: attachment; filename=0002-bufpage.c-simplify-PageRepairFragmentation.patch; size=3339 RnJvbSAyY2RlNGNiNmIwYzRjNTg2OGQ5OWUxMzc4OWIwYWMzMzM2NGQ3MzE1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2tvbG92IFl1cmEg PGZ1bm55LmZhbGNvbkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNSBN YXkgMjAxNyAxNjowNDoxNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBi dWZwYWdlLmM6IHNpbXBsaWZ5IFBhZ2VSZXBhaXJGcmFnbWVudGF0aW9uCgpJ biBhc3N1bXB0aW9uIHRoYXQgcGFnZSB1c3VhbGx5IGRvZXNuJ3QgYmVjb21l IGVtcHR5LCBtZXJnZSBzZWNvbmQgbG9vcApib2R5IChjb2xsZWN0aW5nIGl0 ZW1zIHdpdGggc3RvcmFnZSkgaW50byBmaXJzdCAoY291bnRpbmcga2luZHMg b2YKaXRlbXMpLgotLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZw YWdlLmMgfCA0NiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDI4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv cGFnZS9idWZwYWdlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVm cGFnZS5jCmluZGV4IGM1NjMwZTgwOGIuLjYxNzM4ZjI0MWYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYwpAQCAtNTU1LDEw ICs1NTUsMTEgQEAgUGFnZVJlcGFpckZyYWdtZW50YXRpb24oUGFnZSBwYWdl KQogCU9mZnNldAkJcGRfc3BlY2lhbCA9ICgoUGFnZUhlYWRlcikgcGFnZSkt PnBkX3NwZWNpYWw7CiAJSXRlbUlkCQlscDsKIAlpbnQJCQlubGluZSwKLQkJ CQluc3RvcmFnZSwKIAkJCQludW51c2VkOwogCWludAkJCWk7CiAJU2l6ZQkJ dG90YWxsZW47CisJaXRlbUlkU29ydERhdGEgaXRlbWlkYmFzZVtNYXhIZWFw VHVwbGVzUGVyUGFnZV07CisJaXRlbUlkU29ydAlpdGVtaWRwdHIgPSBpdGVt aWRiYXNlOwogCiAJLyoKIAkgKiBJdCdzIHdvcnRoIHRoZSB0cm91YmxlIHRv IGJlIG1vcmUgcGFyYW5vaWQgaGVyZSB0aGFuIGluIG1vc3QgcGxhY2VzLApA QCAtNTc4LDE0ICs1NzksMjYgQEAgUGFnZVJlcGFpckZyYWdtZW50YXRpb24o UGFnZSBwYWdlKQogCQkJCQkJcGRfbG93ZXIsIHBkX3VwcGVyLCBwZF9zcGVj aWFsKSkpOwogCiAJbmxpbmUgPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHBh Z2UpOwotCW51bnVzZWQgPSBuc3RvcmFnZSA9IDA7CisJbnVudXNlZCA9IHRv dGFsbGVuID0gMDsKIAlmb3IgKGkgPSBGaXJzdE9mZnNldE51bWJlcjsgaSA8 PSBubGluZTsgaSsrKQogCXsKIAkJbHAgPSBQYWdlR2V0SXRlbUlkKHBhZ2Us IGkpOwogCQlpZiAoSXRlbUlkSXNVc2VkKGxwKSkKIAkJewogCQkJaWYgKEl0 ZW1JZEhhc1N0b3JhZ2UobHApKQotCQkJCW5zdG9yYWdlKys7CisJCQl7CisJ CQkJaXRlbWlkcHRyLT5vZmZzZXRpbmRleCA9IGkgLSAxOworCQkJCWl0ZW1p ZHB0ci0+aXRlbW9mZiA9IEl0ZW1JZEdldE9mZnNldChscCk7CisJCQkJaWYg KHVubGlrZWx5KGl0ZW1pZHB0ci0+aXRlbW9mZiA8IChpbnQpIHBkX3VwcGVy IHx8CisJCQkJCQkJIGl0ZW1pZHB0ci0+aXRlbW9mZiA+PSAoaW50KSBwZF9z cGVjaWFsKSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJj b3JydXB0ZWQgaXRlbSBwb2ludGVyOiAldSIsCisJCQkJCQkJCQlpdGVtaWRw dHItPml0ZW1vZmYpKSk7CisJCQkJaXRlbWlkcHRyLT5hbGlnbmVkbGVuID0g TUFYQUxJR04oSXRlbUlkR2V0TGVuZ3RoKGxwKSk7CisJCQkJdG90YWxsZW4g Kz0gaXRlbWlkcHRyLT5hbGlnbmVkbGVuOworCQkJCWl0ZW1pZHB0cisrOwor CQkJfQogCQl9CiAJCWVsc2UKIAkJewpAQCAtNTk1LDcgKzYwOCw3IEBAIFBh Z2VSZXBhaXJGcmFnbWVudGF0aW9uKFBhZ2UgcGFnZSkKIAkJfQogCX0KIAot CWlmIChuc3RvcmFnZSA9PSAwKQorCWlmIChpdGVtaWRwdHIgPT0gaXRlbWlk YmFzZSkKIAl7CiAJCS8qIFBhZ2UgaXMgY29tcGxldGVseSBlbXB0eSwgc28g anVzdCByZXNldCBpdCBxdWlja2x5ICovCiAJCSgoUGFnZUhlYWRlcikgcGFn ZSktPnBkX3VwcGVyID0gcGRfc3BlY2lhbDsKQEAgLTYwMywzNiArNjE2LDEz IEBAIFBhZ2VSZXBhaXJGcmFnbWVudGF0aW9uKFBhZ2UgcGFnZSkKIAllbHNl CiAJewogCQkvKiBOZWVkIHRvIGNvbXBhY3QgdGhlIHBhZ2UgdGhlIGhhcmQg d2F5ICovCi0JCWl0ZW1JZFNvcnREYXRhIGl0ZW1pZGJhc2VbTWF4SGVhcFR1 cGxlc1BlclBhZ2VdOwotCQlpdGVtSWRTb3J0CWl0ZW1pZHB0ciA9IGl0ZW1p ZGJhc2U7Ci0KLQkJdG90YWxsZW4gPSAwOwotCQlmb3IgKGkgPSAwOyBpIDwg bmxpbmU7IGkrKykKLQkJewotCQkJbHAgPSBQYWdlR2V0SXRlbUlkKHBhZ2Us IGkgKyAxKTsKLQkJCWlmIChJdGVtSWRIYXNTdG9yYWdlKGxwKSkKLQkJCXsK LQkJCQlpdGVtaWRwdHItPm9mZnNldGluZGV4ID0gaTsKLQkJCQlpdGVtaWRw dHItPml0ZW1vZmYgPSBJdGVtSWRHZXRPZmZzZXQobHApOwotCQkJCWlmIChp dGVtaWRwdHItPml0ZW1vZmYgPCAoaW50KSBwZF91cHBlciB8fAotCQkJCQlp dGVtaWRwdHItPml0ZW1vZmYgPj0gKGludCkgcGRfc3BlY2lhbCkKLQkJCQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFf Q09SUlVQVEVEKSwKLQkJCQkJCQkgZXJybXNnKCJjb3JydXB0ZWQgaXRlbSBw b2ludGVyOiAldSIsCi0JCQkJCQkJCQlpdGVtaWRwdHItPml0ZW1vZmYpKSk7 Ci0JCQkJaXRlbWlkcHRyLT5hbGlnbmVkbGVuID0gTUFYQUxJR04oSXRlbUlk R2V0TGVuZ3RoKGxwKSk7Ci0JCQkJdG90YWxsZW4gKz0gaXRlbWlkcHRyLT5h bGlnbmVkbGVuOwotCQkJCWl0ZW1pZHB0cisrOwotCQkJfQotCQl9Ci0KIAkJ aWYgKHRvdGFsbGVuID4gKFNpemUpIChwZF9zcGVjaWFsIC0gcGRfbG93ZXIp KQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBX0NPUlJVUFRFRCksCiAJCQkgICBlcnJtc2coImNvcnJ1cHRlZCBpdGVt IGxlbmd0aHM6IHRvdGFsICV1LCBhdmFpbGFibGUgc3BhY2UgJXUiLAogCQkJ CQkgICh1bnNpZ25lZCBpbnQpIHRvdGFsbGVuLCBwZF9zcGVjaWFsIC0gcGRf bG93ZXIpKSk7CiAKLQkJY29tcGFjdGlmeV90dXBsZXMoaXRlbWlkYmFzZSwg bnN0b3JhZ2UsIHBhZ2UpOworCQljb21wYWN0aWZ5X3R1cGxlcyhpdGVtaWRi YXNlLCAoaW50KSAoaXRlbWlkcHRyIC0gaXRlbWlkYmFzZSksIHBhZ2UpOwog CX0KIAogCS8qIFNldCBoaW50IGJpdCBmb3IgUGFnZUFkZEl0ZW0gKi8KLS0g CjIuMTEuMAoK --=_01e6e2262f37b1078205a947e171627d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-storage-page-bufpage.c-improve-compactify_tuples-v02.patch Content-Disposition: attachment; filename=0001-storage-page-bufpage.c-improve-compactify_tuples-v02.patch; size=6262 RnJvbSA4Zjc1ZmNhYmEwNTkwZDUxNTBkZDk1NmE2MGZlZWU1YzI4ZjRjYWFi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2tvbG92IFl1cmEg PGZ1bm55LmZhbGNvbkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNSBN YXkgMjAxNyAxNDoyMzozOSArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIHN0b3Jh Z2UvcGFnZS9idWZwYWdlLmM6IGltcHJvdmUgY29tcGFjdGlmeV90dXBsZXMK Ckl0ZW1zIHBhc3NlZCB0byBjb21wYWN0aWZ5X3R1cGxlcyBhcmUgYWxtb3N0 IHNvcnRlZC4gU28gY2FsbCB0byBnZW5lcmFsCnFzb3J0IG1ha2VzIHVubmVj ZXNzYXJ5IG92ZXJoZWFkIG9uIGZ1bmN0aW9uIGNhbGxzIChzd2FwZnVuYywg bWVkLAppdGVtb2ZmY29tcGFyZSkuCgpUaGlzIHBhdGNoIGltcGxlbWVudHMg YnVja2V0IHNvcnQ6Ci0gb25lIHBhc3Mgb2Ygc3RhYmxlIHByZWZpeCBzb3J0 IG9uIGhpZ2ggOCBiaXRzIG9mIG9mZnNldAotIGFuZCBpbnNlcnRpb24gc29y dCBmb3IgYnVja2V0cyBsYXJnZXIgdGhhbiAxIGVsZW1lbnQKCkFsc28gZm9y IHNtYWxsZXIgYXJyYXlzIHNoZWxsIHNvcnQgaXMgdXNlZC4KCkluc2VydGlv biBhbmQgU2hlbGwgc29ydCBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgbWFjcm9z ZXMuCgpUaGlzIGFwcHJvYWNoIGFsbG93cyB0byBzYXZlIDMlIG9mIGNwdSBp biBkZWdlbmVyYXRlIGNhc2UKKGhpZ2hseSBpbnRlbnNpdmUgSE9UIHJhbmRv bSB1cGRhdGVzIG9uIHVubG9nZ2VkIHRhYmxlIHdpdGgKIHN5bmNocm9uaXpl ZF9jb21taXQ9b2ZmKSwgYW5kIHNwZWVkcyB1cCBXQUwgcmVwbGF5aW5nIChh cyB3ZXJlCmZvdW5kIGJ5IEhlaWtraSBMaW5uYWthbmdhcykuCgpTYW1lIGFw cHJvYWNoIHdlcmUgaW1wbGVtZW50ZWQgYnkgSGVpa2tpIExpbm5ha2FuZ2Fz IHNvbWUgdGltZSBhZ28gd2l0aApzZXZlcmFsIGRpc3RpbmN0aW9ucy4KLS0t CiBzcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jIHwgNzggKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9pbmNs dWRlL2MuaCAgICAgICAgICAgICAgICAgICAgfCA1OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL3BhZ2UvYnVmcGFnZS5jCmluZGV4IGZkZjA0NWE0NWIuLmM1NjMwZTgw OGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvcGFnZS9idWZw YWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2Uu YwpAQCAtNDM0LDYgKzQzNCw3NyBAQCBpdGVtb2ZmY29tcGFyZShjb25zdCB2 b2lkICppdGVtaWRwMSwgY29uc3Qgdm9pZCAqaXRlbWlkcDIpCiB9CiAKIC8q CisgKiBTb3J0IGFuIGFycmF5IG9mIGl0ZW1JZFNvcnQncyBvbiBpdGVtb2Zm LCBkZXNjZW5kaW5nLgorICoKKyAqIEl0IHVzZXMgU2hlbGwgc29ydC4gR2l2 ZW4gYXJyYXkgaXMgc21hbGwgYW5kIGl0ZW1vZmZjb21wYXJlIGlzIGlubGlu ZWQsCisgKiBpdCBpcyBtdWNoIGZhc3RlciB0aGFuIGNhbGwgdG8gcXNvcnQu CisgKi8KK3N0YXRpYyB2b2lkCitzb3J0X2l0ZW1JZHNfc21hbGwoaXRlbUlk U29ydCBpdGVtaWRiYXNlLCBpbnQgbml0ZW1zKQoreworCXBnX3NoZWxsX3Nv cnQoaXRlbUlkU29ydERhdGEsIGl0ZW1pZGJhc2UsIG5pdGVtcywgaXRlbW9m ZmNvbXBhcmUpOworfQorCisvKgorICogU29ydCBhbiBhcnJheSBvZiBpdGVt SWRTb3J0J3Mgb24gaXRlbW9mZiwgZGVzY2VuZGluZy4KKyAqCisgKiBJdCB1 c2VzIGJ1Y2tldCBzb3J0OgorICogLSBzaW5nbGUgcGFzcyBvZiBzdGFibGUg cHJlZml4IHNvcnQgb24gaGlnaCA4IGJpdHMKKyAqIC0gYW5kIGluc2VydGlv biBzb3J0IG9uIGJ1Y2tldHMgbGFyZ2VyIHRoYW4gMSBlbGVtZW50CisgKi8K K3N0YXRpYyB2b2lkCitzb3J0X2l0ZW1JZHMoaXRlbUlkU29ydCBpdGVtaWRi YXNlLCBpbnQgbml0ZW1zKQoreworCWl0ZW1JZFNvcnREYXRhIGNvcHlbTWF4 KE1heEluZGV4VHVwbGVzUGVyUGFnZSwgTWF4SGVhcFR1cGxlc1BlclBhZ2Up XTsKKyNkZWZpbmUgTlNQTElUIDI1NgorI2RlZmluZSBQUkVGRElWIChCTENL U1ogLyBOU1BMSVQpCisJLyogdHdvIGV4dHJhIGVsZW1lbnRzIHRvIGVtdWxh dGUgb2Zmc2V0IG9uIHByZXZpb3VzIHN0ZXAgKi8KKwl1aW50MTYJCWNvdW50 W05TUExJVCArIDJdID0gezB9OworCWludAkJCWksCisJCQkJcG9zLAorCQkJ CWhpZ2hiaXRzOworCisJQXNzZXJ0KG5pdGVtcyA8PSBNYXhJbmRleFR1cGxl c1BlclBhZ2UpOworCWZvciAoaSA9IDA7IGkgPCBuaXRlbXM7IGkrKykKKwl7 CisJCWhpZ2hiaXRzID0gaXRlbWlkYmFzZVtpXS5pdGVtb2ZmIC8gUFJFRkRJ VjsKKwkJY291bnRbaGlnaGJpdHNdKys7CisJfQorCS8qIHNvcnQgaW4gZGVj cmVhc2luZyBvcmRlciAqLworCWZvciAoaSA9IE5TUExJVCAtIDE7IGkgIT0g MDsgaS0tKQorCQljb3VudFtpIC0gMV0gKz0gY291bnRbaV07CisKKwkvKgor CSAqIGNvdW50W2srMV0gaXMgc3RhcnQgb2YgYnVja2V0IGssIGNvdW50W2td IGlzIGVuZCBvZiBidWNrZXQgaywgYW5kCisJICogY291bnRba10gLSBjb3Vu dFtrKzFdIGlzIGxlbmd0aCBvZiBidWNrZXQgay4KKwkgKi8KKwlBc3NlcnQo Y291bnRbMF0gPT0gbml0ZW1zKTsKKwlmb3IgKGkgPSAwOyBpIDwgbml0ZW1z OyBpKyspCisJeworCQloaWdoYml0cyA9IGl0ZW1pZGJhc2VbaV0uaXRlbW9m ZiAvIFBSRUZESVY7CisJCXBvcyA9IGNvdW50W2hpZ2hiaXRzICsgMV07CisJ CWNvdW50W2hpZ2hiaXRzICsgMV0rKzsKKwkJY29weVtwb3NdID0gaXRlbWlk YmFzZVtpXTsKKwl9CisJQXNzZXJ0KGNvdW50WzFdID09IG5pdGVtcyk7CisK KwkvKgorCSAqIGNvdW50W2srMl0gaXMgc3RhcnQgb2YgYnVja2V0IGssIGNv dW50W2srMV0gaXMgZW5kIG9mIGJ1Y2tldCBrLCBhbmQKKwkgKiBjb3VudFtr KzFdLWNvdW50W2srMl0gaXMgbGVuZ3RoIG9mIGJ1Y2tldCBrLgorCSAqLwor CWZvciAoaSA9IE5TUExJVDsgaSA+IDA7IGktLSkKKwl7CisJCWlmIChsaWtl bHkoY291bnRbaV0gLSBjb3VudFtpICsgMV0gPD0gMSkpCisJCQljb250aW51 ZTsKKwkJcGdfaW5zZXJ0aW9uX3NvcnQoaXRlbUlkU29ydERhdGEsCisJCQkJ CQkgIGNvcHkgKyBjb3VudFtpICsgMV0sCisJCQkJCQkgIGNvdW50W2ldIC0g Y291bnRbaSArIDFdLAorCQkJCQkJICBpdGVtb2ZmY29tcGFyZSk7CisJfQor CW1lbWNweShpdGVtaWRiYXNlLCBjb3B5LCBzaXplb2YoaXRlbUlkU29ydERh dGEpICogbml0ZW1zKTsKK30KKworLyoKICAqIEFmdGVyIHJlbW92aW5nIG9y IG1hcmtpbmcgc29tZSBsaW5lIHBvaW50ZXJzIHVudXNlZCwgbW92ZSB0aGUg dHVwbGVzIHRvCiAgKiByZW1vdmUgdGhlIGdhcHMgY2F1c2VkIGJ5IHRoZSBy ZW1vdmVkIGl0ZW1zLgogICovCkBAIC00NDQsOSArNTE1LDEwIEBAIGNvbXBh Y3RpZnlfdHVwbGVzKGl0ZW1JZFNvcnQgaXRlbWlkYmFzZSwgaW50IG5pdGVt cywgUGFnZSBwYWdlKQogCU9mZnNldAkJdXBwZXI7CiAJaW50CQkJaTsKIAot CS8qIHNvcnQgaXRlbUlkU29ydERhdGEgYXJyYXkgaW50byBkZWNyZWFzaW5n IGl0ZW1vZmYgb3JkZXIgKi8KLQlxc29ydCgoY2hhciAqKSBpdGVtaWRiYXNl LCBuaXRlbXMsIHNpemVvZihpdGVtSWRTb3J0RGF0YSksCi0JCSAgaXRlbW9m ZmNvbXBhcmUpOworCWlmIChuaXRlbXMgPiA0OCkKKwkJc29ydF9pdGVtSWRz KGl0ZW1pZGJhc2UsIG5pdGVtcyk7CisJZWxzZQorCQlzb3J0X2l0ZW1JZHNf c21hbGwoaXRlbWlkYmFzZSwgbml0ZW1zKTsKIAogCXVwcGVyID0gcGhkci0+ cGRfc3BlY2lhbDsKIAlmb3IgKGkgPSAwOyBpIDwgbml0ZW1zOyBpKyspCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jLmggYi9zcmMvaW5jbHVkZS9jLmgK aW5kZXggZmJhMDdjNjUxZi4uODM3OTQwZDVjZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtOTYyLDYg Kzk2Miw2NSBAQCB0eXBlZGVmIE5hbWVEYXRhICpOYW1lOwogI2RlZmluZSB1 bmxpa2VseSh4KSAoKHgpICE9IDApCiAjZW5kaWYKIAorLyoKKyAqIHBnX3No ZWxsX3NvcnQgLSBzb3J0IGZvciBzbWFsbCBhcnJheXMgd2l0aCBpbmxpbmFi bGUgY29tcGFyYXRvci4KKyAqIFNpbmNlIGl0IGlzIGltcGxlbWVudGVkIGFz IGEgbWFjcm9zIGl0IGNvdWxkIGJlIG9wdGltaXplZCB0b2dldGhlciB3aXRo CisgKiBjb21wYXJpc29uIGZ1bmN0aW9uLgorICogR2FwcyBhcmUgImdhcChp KSA9IHNtYWxsZXN0IHByaW1lIG51bWJlciBiZWxvdyBlXmkiLiBUaGV5IGFy ZSBjbG9zZSB0bworICogSW5jZXJwaSAmIFNlZHdpY2sgZ2FwcywgYnV0IGxv b2tzIHRvIGJlIGJldHRlciBpbiBhdmVyYWdlLgorICogSXQgaXMgYmVzdCB1 c2VkIHdpdGggYXJyYXkgc21hbGxlciB0aGFuIDIwMCBlbGVtZW50cywgYW5k IGNvdWxkIGJlIHNhZmVseQorICogdXNlZCB1cHRvIDEwMDAgZWxlbWVudHMu IEJ1dCBpdCBkZWdyYWRlcyBmYXN0IGFmdGVyIHRoYXQsIGFuZCBpdCBpcwor ICogYmV0dGVyIHRvIHVzZSBxc29ydC4KKyAqCisgKiBBcmd1bWVudHM6Cisg KgkgZWxlbV90IC0gdHlwZSBvZiBhcnJheSBlbGVtZW50IChmb3IgZGVjbGFy aW5nIHRlbXBvcmFyeSB2YXJpYWJsZXMpCisgKgkgYXJyYXkJLSBwb2ludGVy IHRvIGVsZW1lbnRzIHRvIGJlIHNvcnRlZAorICoJIG5pdGVtcyAtIGFtb3Vu dCBvZiBlbGVtZW50cyB0byBiZSBzb3J0ZWQKKyAqCSBjbXAJLSBjb21wYXJp c29uIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhZGRyZXNzIG9mIGVsZW1lbnRz CisgKgkJCSAgKGl0IGlzIGNvbXBhdGlibGUgd2l0aCBxc29ydCBjb21wYXJp c29uIGZ1bmN0aW9uKS4KKyAqCSBOb3RlOiBgY21wYCBhcmd1bWVudCBldmFs dWF0ZXMgbWFueSB0aW1lcy4KKyAqCSBPdGhlciBhcmd1bWVudHMgZXZhbHVh dGVzIG9uY2UKKyAqLworI2RlZmluZSBwZ19zaGVsbF9zb3J0X3Bhc3MoZWxl bV90LCBjbXAsIG9mZikgXAorCWRvIHsgXAorCQlpbnQgX2ksIF9qOyBcCisJ CWVsZW1fdCBfdGVtcDsgXAorCQlmb3IgKF9pID0gb2ZmOyBfaSA8IF9uOyBf aSArPSBvZmYpIFwKKwkJeyBcCisJCQlpZiAoKGNtcCkoX2FycitfaSwgX2Fy citfaS1vZmYpID49IDApIFwKKwkJCQljb250aW51ZTsgXAorCQkJX3RlbXAg PSBfYXJyW19pXTsgXAorCQkJX2ogPSBfaTsgXAorCQkJZG8geyBcCisJCQkJ X2Fycltfal0gPSBfYXJyW19qIC0gb2ZmXTsgXAorCQkJCV9qIC09IG9mZjsg XAorCQkJfSB3aGlsZSAoX2ogPj0gb2ZmICYmIChjbXApKF9hcnIrX2otb2Zm LCAmX3RlbXApID4gMCk7IFwKKwkJCV9hcnJbX2pdID0gX3RlbXA7IFwKKwkJ fSBcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgcGdfc2hlbGxfc29ydChlbGVt X3QsIGFycmF5LCBuaXRlbXMsIGNtcCkgXAorCWRvIHsgXAorCQlpbnQgX24g PSAobml0ZW1zKTsgXAorCQllbGVtX3QqIF9hcnIgPSAoYXJyYXkpOyBcCisJ CXN0YXRpYyBjb25zdCBpbnQgX29mZnNldHNbXSA9IHs0MDEsIDEzOSwgNTMs IDE5LCA3LCAzfTsgXAorCQlpbnQgX25vZmYsIF9vZmY7IFwKKwkJZm9yIChf bm9mZiA9IDA7IF9ub2ZmIDwgbGVuZ3Rob2YoX29mZnNldHMpOyBfbm9mZisr KSB7IFwKKwkJCV9vZmYgPSBfb2Zmc2V0c1tfbm9mZl07IFwKKwkJCXBnX3No ZWxsX3NvcnRfcGFzcyhlbGVtX3QsIChjbXApLCBfb2ZmKTsgXAorCQl9IFwK KwkJcGdfc2hlbGxfc29ydF9wYXNzKGVsZW1fdCwgKGNtcCksIDEpOyBcCisJ fSB3aGlsZSgwKQorLyoKKyAqIHBnX2luc2VydGlvbl9zb3J0IC0ganVzdCBp bnNlcnRpb24gc29ydCBmb3Igc21hbGxlc3QgYXJyYXksIG9yIGlmCisgKiBh cnJheSB3YXMgYWxtb3N0IHNvcnRlZCBhbHJlYWR5LiBVc2VzIHNhbWUgYXJn dW1lbnRzIGFzIHBnX3NoZWxsX3NvcnQuCisgKi8KKyNkZWZpbmUgcGdfaW5z ZXJ0aW9uX3NvcnQoZWxlbV90LCBhcnJheSwgbml0ZW1zLCBjbXApIFwKKwlk byB7IFwKKwkJaW50IF9uID0gKG5pdGVtcyk7IFwKKwkJZWxlbV90KiBfYXJy ID0gKGFycmF5KTsgXAorCQlwZ19zaGVsbF9zb3J0X3Bhc3MoZWxlbV90LCAo Y21wKSwgMSk7IFwKKwl9IHdoaWxlICgwKQorCiAKIC8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAqCQkJCVNlY3Rpb24gODoJcmFuZG9tIHN0dWZmCi0tIAoy LjExLjAKCg== --=_01e6e2262f37b1078205a947e171627d 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 --=_01e6e2262f37b1078205a947e171627d--