Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from ) id 1j73sv-0004Dn-BO for pgsql-committers@arkaria.postgresql.org; Wed, 26 Feb 2020 21:06:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1j73st-0005wk-0P for pgsql-committers@arkaria.postgresql.org; Wed, 26 Feb 2020 21:06:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j73ss-0005wd-Lu for pgsql-committers@lists.postgresql.org; Wed, 26 Feb 2020 21:06:22 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from ) id 1j73sp-0001SB-9P for pgsql-committers@lists.postgresql.org; Wed, 26 Feb 2020 21:06:20 +0000 Received: from gemulon.postgresql.org ([2001:4800:3e1:1::198]) by mahout.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1j73so-0004cK-Jt for pgsql-committers@lists.postgresql.org; Wed, 26 Feb 2020 21:06:18 +0000 Received: from localhost ([127.0.0.1] helo=gemulon.postgresql.org) by gemulon.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1j73sn-0003FQ-KO for pgsql-committers@lists.postgresql.org; Wed, 26 Feb 2020 21:06:17 +0000 Content-Type: multipart/mixed; boundary="===============8376196062548088515==" MIME-Version: 1.0 From: Peter Geoghegan To: pgsql-committers@lists.postgresql.org Subject: pgsql: Add deduplication to nbtree. Message-Id: Date: Wed, 26 Feb 2020 21:06:17 +0000 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --===============8376196062548088515== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 QWRkIGRlZHVwbGljYXRpb24gdG8gbmJ0cmVlLgoKRGVkdXBsaWNhdGlvbiByZWR1Y2VzIHRoZSBz dG9yYWdlIG92ZXJoZWFkIG9mIGR1cGxpY2F0ZXMgaW4gaW5kZXhlcyB0aGF0CnVzZSB0aGUgc3Rh bmRhcmQgbmJ0cmVlIGluZGV4IGFjY2VzcyBtZXRob2QuICBUaGUgZGVkdXBsaWNhdGlvbiBwcm9j ZXNzCmlzIGFwcGxpZWQgbGF6aWx5LCBhZnRlciB0aGUgcG9pbnQgd2hlcmUgb3Bwb3J0dW5pc3Rp YyBkZWxldGlvbiBvZgpMUF9ERUFELW1hcmtlZCBpbmRleCB0dXBsZXMgb2NjdXJzLiAgRGVkdXBs aWNhdGlvbiBpcyBvbmx5IGFwcGxpZWQgYXQKdGhlIHBvaW50IHdoZXJlIGEgbGVhZiBwYWdlIHNw bGl0IHdvdWxkIG90aGVyd2lzZSBiZSByZXF1aXJlZC4gIE5ldwpwb3N0aW5nIGxpc3QgdHVwbGVz IGFyZSBmb3JtZWQgYnkgbWVyZ2luZyB0b2dldGhlciBleGlzdGluZyBkdXBsaWNhdGUKdHVwbGVz LiAgVGhlIHBoeXNpY2FsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpdGVtcyBvbiBhbiBuYnRyZWUg bGVhZiBwYWdlCmlzIG1hZGUgbW9yZSBzcGFjZSBlZmZpY2llbnQgYnkgZGVkdXBsaWNhdGlvbiwg YnV0IHRoZSBsb2dpY2FsIGNvbnRlbnRzCm9mIHRoZSBwYWdlIGFyZSBub3QgY2hhbmdlZC4gIEV2 ZW4gdW5pcXVlIGluZGV4ZXMgbWFrZSB1c2Ugb2YKZGVkdXBsaWNhdGlvbiBhcyBhIHdheSBvZiBj b250cm9sbGluZyBibG9hdCBmcm9tIGR1cGxpY2F0ZXMgd2hvc2UgVElEcwpwb2ludCB0byBkaWZm ZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgbG9naWNhbCB0YWJsZSByb3cuCgpUaGUgbGF6eSBh cHByb2FjaCB0YWtlbiBieSBuYnRyZWUgaGFzIHNpZ25pZmljYW50IGFkdmFudGFnZXMgb3ZlciBh IEdJTgpzdHlsZSBlYWdlciBhcHByb2FjaC4gIE1vc3QgaW5kaXZpZHVhbCBpbnNlcnRzIG9mIGlu ZGV4IHR1cGxlcyBoYXZlCmV4YWN0bHkgdGhlIHNhbWUgb3ZlcmhlYWQgYXMgYmVmb3JlLiAgVGhl IGV4dHJhIG92ZXJoZWFkIG9mCmRlZHVwbGljYXRpb24gaXMgYW1vcnRpemVkIGFjcm9zcyBpbnNl cnRpb25zLCBqdXN0IGxpa2UgdGhlIG92ZXJoZWFkIG9mCnBhZ2Ugc3BsaXRzLiAgVGhlIGtleSBz cGFjZSBvZiBpbmRleGVzIHdvcmtzIGluIHRoZSBzYW1lIHdheSBhcyBpdCBoYXMKc2luY2UgY29t bWl0IGRkMjk5ZGY4ICh0aGUgY29tbWl0IHRoYXQgbWFkZSBoZWFwIFRJRCBhIHRpZWJyZWFrZXIK Y29sdW1uKS4KClRlc3RpbmcgaGFzIHNob3duIHRoYXQgbmJ0cmVlIGRlZHVwbGljYXRpb24gY2Fu IGdlbmVyYWxseSBtYWtlIGluZGV4ZXMKd2l0aCBhYm91dCAxMCBvciAxNSB0dXBsZXMgZm9yIGVh Y2ggZGlzdGluY3Qga2V5IHZhbHVlIGFib3V0IDIuNVggLSA0WApzbWFsbGVyLCBldmVuIHdpdGgg c2luZ2xlIGNvbHVtbiBpbnRlZ2VyIGluZGV4ZXMgKGUuZy4sIGFuIGluZGV4IG9uIGEKcmVmZXJl bmNpbmcgY29sdW1uIHRoYXQgYWNjb21wYW5pZXMgYSBmb3JlaWduIGtleSkuICBUaGUgZmluYWwg c2l6ZSBvZgpzaW5nbGUgY29sdW1uIG5idHJlZSBpbmRleGVzIGNvbWVzIGNsb3NlIHRvIHRoZSBm aW5hbCBzaXplIG9mIGEgc2ltaWxhcgpjb250cmliL2J0cmVlX2dpbiBpbmRleCwgYXQgbGVhc3Qg aW4gY2FzZXMgd2hlcmUgR0lOJ3MgcG9zdGluZyBsaXN0CmNvbXByZXNzaW9uIGlzbid0IHZlcnkg ZWZmZWN0aXZlLiAgVGhpcyBjYW4gc2lnbmlmaWNhbnRseSBpbXByb3ZlCnRyYW5zYWN0aW9uIHRo cm91Z2hwdXQsIGFuZCBzaWduaWZpY2FudGx5IHJlZHVjZSB0aGUgY29zdCBvZiB2YWN1dW1pbmcK aW5kZXhlcy4KCkEgbmV3IGluZGV4IHN0b3JhZ2UgcGFyYW1ldGVyIChkZWR1cGxpY2F0ZV9pdGVt cykgY29udHJvbHMgdGhlIHVzZSBvZgpkZWR1cGxpY2F0aW9uLiAgVGhlIGRlZmF1bHQgc2V0dGlu ZyBpcyAnb24nLCBzbyBhbGwgbmV3IEItVHJlZSBpbmRleGVzCmF1dG9tYXRpY2FsbHkgdXNlIGRl ZHVwbGljYXRpb24gd2hlcmUgcG9zc2libGUuICBUaGlzIGRlY2lzaW9uIHdpbGwgYmUKcmV2aWV3 ZWQgYXQgdGhlIGVuZCBvZiB0aGUgUG9zdGdyZXMgMTMgYmV0YSBwZXJpb2QuCgpUaGVyZSBpcyBh IHJlZ3Jlc3Npb24gb2YgYXBwcm94aW1hdGVseSAyJSBvZiB0cmFuc2FjdGlvbiB0aHJvdWdocHV0 IHdpdGgKc3ludGhldGljIHdvcmtsb2FkcyB0aGF0IGNvbnNpc3Qgb2YgYXBwZW5kLW9ubHkgaW5z ZXJ0cyBpbnRvIGEgdGFibGUKd2l0aCBzZXZlcmFsIG5vbi11bmlxdWUgaW5kZXhlcywgd2hlcmUg YWxsIGluZGV4ZXMgaGF2ZSBmZXcgb3Igbm8KcmVwZWF0ZWQgdmFsdWVzLiAgVGhlIHVuZGVybHlp bmcgaXNzdWUgaXMgdGhhdCBjeWNsZXMgYXJlIHdhc3RlZCBvbgp1bnN1Y2Nlc3NmdWwgYXR0ZW1w dHMgYXQgZGVkdXBsaWNhdGluZyBpdGVtcyBpbiBub24tdW5pcXVlIGluZGV4ZXMuClRoZXJlIGRv ZXNuJ3Qgc2VlbSB0byBiZSBhIHdheSBhcm91bmQgaXQgc2hvcnQgb2YgZGlzYWJsaW5nCmRlZHVw bGljYXRpb24gZW50aXJlbHkuICBOb3RlIHRoYXQgZGVkdXBsaWNhdGlvbiBvZiBpdGVtcyBpbiB1 bmlxdWUKaW5kZXhlcyBpcyBmYWlybHkgd2VsbCB0YXJnZXRlZCBpbiBnZW5lcmFsLCB3aGljaCBh dm9pZHMgdGhlIHByb2JsZW0KdGhlcmUgKHdlIGNhbiB1c2UgYSBzcGVjaWFsIGhldXJpc3RpYyB0 byB0cmlnZ2VyIGRlZHVwbGljYXRpb24gcGFzc2VzIGluCnVuaXF1ZSBpbmRleGVzLCBzaW5jZSB3 ZSdyZSBzcGVjaWZpY2FsbHkgdGFyZ2V0aW5nICJ2ZXJzaW9uIGJsb2F0IikuCgpCdW1wIFhMT0df UEFHRV9NQUdJQyBiZWNhdXNlIHhsX2J0cmVlX3ZhY3V1bSBjaGFuZ2VkLgoKTm8gYnVtcCBpbiBC VFJFRV9WRVJTSU9OLCBzaW5jZSB0aGUgcmVwcmVzZW50YXRpb24gb2YgcG9zdGluZyBsaXN0CnR1 cGxlcyB3b3JrcyBpbiBhIHdheSB0aGF0J3MgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCB2ZXJz aW9uIDQgaW5kZXhlcwooaS5lLiBpbmRleGVzIGJ1aWx0IG9uIFBvc3RncmVTUUwgMTIpLiAgSG93 ZXZlciwgdXNlcnMgbXVzdCBzdGlsbApSRUlOREVYIGEgcGdfdXBncmFkZSdkIGluZGV4IHRvIHVz ZSBkZWR1cGxpY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZQpQb3N0Z3JlcyB2ZXJzaW9uIHRoZXkn dmUgdXBncmFkZWQgZnJvbS4gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIHNldCB0aGUKbmV3IG5i dHJlZSBtZXRhcGFnZSBmbGFnIGluZGljYXRpbmcgdGhhdCBkZWR1cGxpY2F0aW9uIGlzIGdlbmVy YWxseQpzYWZlLgoKQXV0aG9yOiBBbmFzdGFzaWEgTHViZW5uaWtvdmEsIFBldGVyIEdlb2doZWdh bgpSZXZpZXdlZC1CeTogUGV0ZXIgR2VvZ2hlZ2FuLCBIZWlra2kgTGlubmFrYW5nYXMKRGlzY3Vz c2lvbjoKICAgIGh0dHBzOi8vcG9zdGdyLmVzL20vNTVFNDA1MUIuNzAyMDIwOUBwb3N0Z3Jlc3By by5ydQogICAgaHR0cHM6Ly9wb3N0Z3IuZXMvbS80YWI2ZTJkYi1iY2VlLWY0Y2YtMDkxNi0zYTA2 ZTZjY2JiNTVAcG9zdGdyZXNwcm8ucnUKCkJyYW5jaAotLS0tLS0KbWFzdGVyCgpEZXRhaWxzCi0t LS0tLS0KaHR0cHM6Ly9naXQucG9zdGdyZXNxbC5vcmcvcGcvY29tbWl0ZGlmZi8wZDg2MWJiYjcw MmY4YWEwNWMyYTRlM2YxNjUwZTdlOGRmOGM4YzI3CgpNb2RpZmllZCBGaWxlcwotLS0tLS0tLS0t LS0tLQpjb250cmliL2FtY2hlY2svdmVyaWZ5X25idHJlZS5jICAgICAgICAgICB8IDIzMSArKysr KysrLS0KZG9jL3NyYy9zZ21sL2J0cmVlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAyMDEgKysr KysrKy0KZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgICAgfCAgIDkgKy0K ZG9jL3NyYy9zZ21sL2NpdGV4dC5zZ21sICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfaW5kZXguc2dtbCAgICAgICAgfCAgNDQgKy0Kc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi9yZWxvcHRpb25zLmMgICAgfCAgMTAgKwpzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgv Z2VuYW0uYyAgICAgICAgICB8ICAgNCArCnNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvTWFrZWZp bGUgICAgICAgIHwgICAxICsKc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9SRUFETUUgICAgICAg ICAgfCAxMzMgKysrKy0Kc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRkZWR1cC5jICAgICAg fCA4MzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCnNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0aW5zZXJ0LmMgICAgIHwgMzg4ICsrKysrKysrKysrKy0tCnNyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICAgIHwgMjQ2ICsrKysrKysrLQpzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHJlZS5jICAgICAgICB8IDE3MSArKysrKy0Kc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRzZWFyY2guYyAgICAgfCAyNzIgKysrKysrKysrLQpzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgICAgICB8IDE5MyArKysrKystCnNyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0c3BsaXRsb2MuYyAgIHwgIDM5ICstCnNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0dXRpbHMuYyAgICAgIHwgMTk2ICsrKysrLS0Kc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR4bG9nLmMgICAgICAgfCAyNjggKysrKysrKysrLQpzcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvbmJ0ZGVzYy5jICAgICB8ICAyMiArLQpzcmMvYmFja2VuZC9zdG9yYWdlL3BhZ2Uv YnVmcGFnZS5jICAgICAgICB8ICAxMSArLQpzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICB8ICAgNCArLQpzcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0cmVlLmggICAgICAgICAg ICAgICB8IDQzMyArKysrKysrKysrKysrLS0tCnNyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgg ICAgICAgICAgICAgIHwgMTE3ICsrKystCnNyYy9pbmNsdWRlL2FjY2Vzcy9ybWdybGlzdC5oICAg ICAgICAgICAgIHwgICAyICstCnNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nX2ludGVybmFsLmggICAg ICAgIHwgICAyICstCnNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0IHwg IDIwICstCnNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2J0cmVlX2luZGV4LnNxbCAgICAgIHwgIDIyICst CjI4IGZpbGVzIGNoYW5nZWQsIDM1NTMgaW5zZXJ0aW9ucygrKSwgMzMyIGRlbGV0aW9ucygtKQoK --===============8376196062548088515==--