Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYVVF-0003eE-1S for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Jul 2017 10:49:49 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dYVVD-0000A0-SK for pgsql-hackers@arkaria.postgresql.org; Fri, 21 Jul 2017 10:49: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 1dYVVC-00009f-Sm; Fri, 21 Jul 2017 10:49:47 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by makus.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYVV8-0005sX-Iq; Fri, 21 Jul 2017 10:49:45 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id C504D21C175E; Fri, 21 Jul 2017 13:49:40 +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=1500634180; bh=kVEEG9994qbmrXZX4tG9ymk67i+Jxcz/g+VY/xTqrB8=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=HTZ/x4R+Bps/SkTLUELj59oUhJklUDpC/vMOuQxd1yR+M/ycYOdOtJzAL6O5bXjUW QlOoWlPmg5F8MmcP1FUrKwb8s5cOrAsFMIMIix8BXrU2OKx7wCSPbaMhEfsZj8finA 7f72xaDqIcwUuVt5GzsBSy9gHvlgs1Mp5zN8yms0= Content-Type: multipart/mixed; boundary="=_46d6fc42cf4223998d593317b0c5abf6" Date: Fri, 21 Jul 2017 13:49:40 +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: <468f371fe05c1de09c4dc101435ef93d@postgrespro.ru> References: <20170515171331.taa44gjbc7p3aaul@alvherre.pgsql> <468f371fe05c1de09c4dc101435ef93d@postgrespro.ru> Message-ID: <9c4bc2ff302be669717101bc33127fd0@postgrespro.ru> 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 --=_46d6fc42cf4223998d593317b0c5abf6 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed 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. -- Sokolov Yura aka funny_falcon Postgres Professional: https://postgrespro.ru The Russian Postgres Company --=_46d6fc42cf4223998d593317b0c5abf6 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-Simplify-PageRepairFragmentation.patch Content-Disposition: attachment; filename=0002-Simplify-PageRepairFragmentation.patch; size=3557 RnJvbSAzYWU1YWEwNDAxZmM1MDI4Y2M5MTZkNTVjNGIxOGU1M2JmNmFhOWZi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTb2tvbG92IFl1cmEg PGZ1bm55LmZhbGNvbkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCAxNSBN YXkgMjAxNyAxNjowNDoxNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBT aW1wbGlmeSBQYWdlUmVwYWlyRnJhZ21lbnRhdGlvbgoKSW4gYXNzdW1wdGlv biB0aGF0IHBhZ2UgdXN1YWxseSBkb2Vzbid0IGJlY29tZSBlbXB0eSwgbWVy Z2Ugc2Vjb25kIGxvb3AKYm9keSAoY29sbGVjdGluZyBpdGVtcyB3aXRoIHN0 b3JhZ2UpIGludG8gZmlyc3QgKGNvdW50aW5nIGtpbmRzIG9mCml0ZW1zKS4K LS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jIHwgNDcg KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFn ZS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9wYWdlL2J1ZnBhZ2UuYwppbmRl eCBmMjhmMThjZmYzLi43N2NlZjUxZDAyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9zdG9yYWdlL3BhZ2UvYnVmcGFnZS5jCisrKyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvcGFnZS9idWZwYWdlLmMKQEAgLTQ5Nyw2ICs0OTcsNyBAQCBz b3J0X2l0ZW1JZHMoaXRlbUlkU29ydCBpdGVtaWRiYXNlLCBpbnQgbml0ZW1z KQogCiAJaWYgKG1heCA9PSAxKQogCQlnb3RvIGVuZDsKKwogCS8qCiAJICog Y291bnRbaysyXSBpcyBzdGFydCBvZiBidWNrZXQgaywgY291bnRbaysxXSBp cyBlbmQgb2YgYnVja2V0IGssIGFuZAogCSAqIGNvdW50W2srMV0tY291bnRb aysyXSBpcyBsZW5ndGggb2YgYnVja2V0IGsuCkBAIC01NjMsMTAgKzU2NCwx MSBAQCBQYWdlUmVwYWlyRnJhZ21lbnRhdGlvbihQYWdlIHBhZ2UpCiAJT2Zm c2V0CQlwZF9zcGVjaWFsID0gKChQYWdlSGVhZGVyKSBwYWdlKS0+cGRfc3Bl Y2lhbDsKIAlJdGVtSWQJCWxwOwogCWludAkJCW5saW5lLAotCQkJCW5zdG9y YWdlLAogCQkJCW51bnVzZWQ7CiAJaW50CQkJaTsKIAlTaXplCQl0b3RhbGxl bjsKKwlpdGVtSWRTb3J0RGF0YSBpdGVtaWRiYXNlW01heEhlYXBUdXBsZXNQ ZXJQYWdlXTsKKwlpdGVtSWRTb3J0CWl0ZW1pZHB0ciA9IGl0ZW1pZGJhc2U7 CiAKIAkvKgogCSAqIEl0J3Mgd29ydGggdGhlIHRyb3VibGUgdG8gYmUgbW9y ZSBwYXJhbm9pZCBoZXJlIHRoYW4gaW4gbW9zdCBwbGFjZXMsCkBAIC01ODYs MTQgKzU4OCwyNiBAQCBQYWdlUmVwYWlyRnJhZ21lbnRhdGlvbihQYWdlIHBh Z2UpCiAJCQkJCQlwZF9sb3dlciwgcGRfdXBwZXIsIHBkX3NwZWNpYWwpKSk7 CiAKIAlubGluZSA9IFBhZ2VHZXRNYXhPZmZzZXROdW1iZXIocGFnZSk7Ci0J bnVudXNlZCA9IG5zdG9yYWdlID0gMDsKKwludW51c2VkID0gdG90YWxsZW4g PSAwOwogCWZvciAoaSA9IEZpcnN0T2Zmc2V0TnVtYmVyOyBpIDw9IG5saW5l OyBpKyspCiAJewogCQlscCA9IFBhZ2VHZXRJdGVtSWQocGFnZSwgaSk7CiAJ CWlmIChJdGVtSWRJc1VzZWQobHApKQogCQl7CiAJCQlpZiAoSXRlbUlkSGFz U3RvcmFnZShscCkpCi0JCQkJbnN0b3JhZ2UrKzsKKwkJCXsKKwkJCQlpdGVt aWRwdHItPm9mZnNldGluZGV4ID0gaSAtIDE7CisJCQkJaXRlbWlkcHRyLT5p dGVtb2ZmID0gSXRlbUlkR2V0T2Zmc2V0KGxwKTsKKwkJCQlpZiAodW5saWtl bHkoaXRlbWlkcHRyLT5pdGVtb2ZmIDwgKGludCkgcGRfdXBwZXIgfHwKKwkJ CQkJCQkgaXRlbWlkcHRyLT5pdGVtb2ZmID49IChpbnQpIHBkX3NwZWNpYWwp KQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNP REVfREFUQV9DT1JSVVBURUQpLAorCQkJCQkJCSBlcnJtc2coImNvcnJ1cHRl ZCBpdGVtIHBvaW50ZXI6ICV1IiwKKwkJCQkJCQkJCWl0ZW1pZHB0ci0+aXRl bW9mZikpKTsKKwkJCQlpdGVtaWRwdHItPmFsaWduZWRsZW4gPSBNQVhBTElH TihJdGVtSWRHZXRMZW5ndGgobHApKTsKKwkJCQl0b3RhbGxlbiArPSBpdGVt aWRwdHItPmFsaWduZWRsZW47CisJCQkJaXRlbWlkcHRyKys7CisJCQl9CiAJ CX0KIAkJZWxzZQogCQl7CkBAIC02MDMsNyArNjE3LDcgQEAgUGFnZVJlcGFp ckZyYWdtZW50YXRpb24oUGFnZSBwYWdlKQogCQl9CiAJfQogCi0JaWYgKG5z dG9yYWdlID09IDApCisJaWYgKGl0ZW1pZHB0ciA9PSBpdGVtaWRiYXNlKQog CXsKIAkJLyogUGFnZSBpcyBjb21wbGV0ZWx5IGVtcHR5LCBzbyBqdXN0IHJl c2V0IGl0IHF1aWNrbHkgKi8KIAkJKChQYWdlSGVhZGVyKSBwYWdlKS0+cGRf dXBwZXIgPSBwZF9zcGVjaWFsOwpAQCAtNjExLDM2ICs2MjUsMTMgQEAgUGFn ZVJlcGFpckZyYWdtZW50YXRpb24oUGFnZSBwYWdlKQogCWVsc2UKIAl7CiAJ CS8qIE5lZWQgdG8gY29tcGFjdCB0aGUgcGFnZSB0aGUgaGFyZCB3YXkgKi8K LQkJaXRlbUlkU29ydERhdGEgaXRlbWlkYmFzZVtNYXhIZWFwVHVwbGVzUGVy UGFnZV07Ci0JCWl0ZW1JZFNvcnQJaXRlbWlkcHRyID0gaXRlbWlkYmFzZTsK LQotCQl0b3RhbGxlbiA9IDA7Ci0JCWZvciAoaSA9IDA7IGkgPCBubGluZTsg aSsrKQotCQl7Ci0JCQlscCA9IFBhZ2VHZXRJdGVtSWQocGFnZSwgaSArIDEp OwotCQkJaWYgKEl0ZW1JZEhhc1N0b3JhZ2UobHApKQotCQkJewotCQkJCWl0 ZW1pZHB0ci0+b2Zmc2V0aW5kZXggPSBpOwotCQkJCWl0ZW1pZHB0ci0+aXRl bW9mZiA9IEl0ZW1JZEdldE9mZnNldChscCk7Ci0JCQkJaWYgKGl0ZW1pZHB0 ci0+aXRlbW9mZiA8IChpbnQpIHBkX3VwcGVyIHx8Ci0JCQkJCWl0ZW1pZHB0 ci0+aXRlbW9mZiA+PSAoaW50KSBwZF9zcGVjaWFsKQotCQkJCQllcmVwb3J0 KEVSUk9SLAotCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBU RUQpLAotCQkJCQkJCSBlcnJtc2coImNvcnJ1cHRlZCBpdGVtIHBvaW50ZXI6 ICV1IiwKLQkJCQkJCQkJCWl0ZW1pZHB0ci0+aXRlbW9mZikpKTsKLQkJCQlp dGVtaWRwdHItPmFsaWduZWRsZW4gPSBNQVhBTElHTihJdGVtSWRHZXRMZW5n dGgobHApKTsKLQkJCQl0b3RhbGxlbiArPSBpdGVtaWRwdHItPmFsaWduZWRs ZW47Ci0JCQkJaXRlbWlkcHRyKys7Ci0JCQl9Ci0JCX0KLQogCQlpZiAodG90 YWxsZW4gPiAoU2l6ZSkgKHBkX3NwZWNpYWwgLSBwZF9sb3dlcikpCiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09S UlVQVEVEKSwKIAkJCQkJIGVycm1zZygiY29ycnVwdGVkIGl0ZW0gbGVuZ3Ro czogdG90YWwgJXUsIGF2YWlsYWJsZSBzcGFjZSAldSIsCiAJCQkJCQkJKHVu c2lnbmVkIGludCkgdG90YWxsZW4sIHBkX3NwZWNpYWwgLSBwZF9sb3dlcikp KTsKIAotCQljb21wYWN0aWZ5X3R1cGxlcyhpdGVtaWRiYXNlLCBuc3RvcmFn ZSwgcGFnZSk7CisJCWNvbXBhY3RpZnlfdHVwbGVzKGl0ZW1pZGJhc2UsIChp bnQpIChpdGVtaWRwdHIgLSBpdGVtaWRiYXNlKSwgcGFnZSk7CiAJfQogCiAJ LyogU2V0IGhpbnQgYml0IGZvciBQYWdlQWRkSXRlbSAqLwotLSAKMi4xMS4w Cgo= --=_46d6fc42cf4223998d593317b0c5abf6 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 --=_46d6fc42cf4223998d593317b0c5abf6--