Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrM8L-00GngY-30 for pgsql-committers@arkaria.postgresql.org; Sat, 14 Feb 2026 20:20:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vrM8K-000J1g-2z for pgsql-committers@arkaria.postgresql.org; Sat, 14 Feb 2026 20:20:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrM59-000EO7-0X for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:35 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vrM55-00000000glZ-2jt9 for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:34 +0000 Received: from gemulon.postgresql.org ([2001:4800:3e1:1::198]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrM53-0029c9-2f for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:29 +0000 Received: from localhost ([127.0.0.1] helo=gemulon.postgresql.org) by gemulon.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vrM52-000o8t-1P for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:29 +0000 Content-Type: multipart/mixed; boundary="===============0724526171278901684==" MIME-Version: 1.0 From: Noah Misch To: pgsql-committers@lists.postgresql.org Subject: pgsql: Fix SUBSTRING() for toasted multibyte characters. X-Auto-Response-Suppress: All Auto-Submitted: auto-generated Message-Id: Date: Sat, 14 Feb 2026 20:17:29 +0000 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============0724526171278901684== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Rml4IFNVQlNUUklORygpIGZvciB0b2FzdGVkIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgoKQ29tbWl0 IDFlN2ZlMDZjMTBjMGE4ZGE5ZGQ2MjYxYTZiZThkNDA1ZGMxN2M3MjggY2hhbmdlZApwZ19tYnN0 cmxlbl93aXRoX2xlbigpIHRvIGVyZXBvcnQoRVJST1IpIGlmIHRoZSBpbnB1dCBlbmRzIGluIGFu CmluY29tcGxldGUgY2hhcmFjdGVyLiAgTW9zdCBjYWxsZXJzIHdhbnQgdGhhdC4gIHRleHRfc3Vi c3RyaW5nKCkgZG9lcwpub3QuICBJdCBkZXRvYXN0cyB0aGUgbW9zdCBieXRlcyBpdCBjb3VsZCBw b3NzaWJseSBuZWVkIHRvIGdldCB0aGUKcmVxdWVzdGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzLiAg Rm9yIGV4YW1wbGUsIHRvIGV4dHJhY3QgdXAgdG8gMiBjaGFycwpmcm9tIFVURjgsIGl0IG5lZWRz IHRvIGRldG9hc3QgOCBieXRlcy4gIEluIGEgc3RyaW5nIG9mIDMtYnl0ZSBVVEY4CmNoYXJzLCA4 IGJ5dGVzIHNwYW5zIDIgY29tcGxldGUgY2hhcnMgYW5kIDEgcGFydGlhbCBjaGFyLgoKRml4IHRo aXMgYnkgcmVwbGFjaW5nIHRoaXMgcGdfbWJzdHJsZW5fd2l0aF9sZW4oKSBjYWxsIHdpdGggYSBz dHJpbmcKdHJhdmVyc2FsIHRoYXQgZGlmZmVycyBieSBzdG9wcGluZyB1cG9uIGZpbmRpbmcgYXMg bWFueSBjaGFycyBhcyB0aGUKc3Vic3RyaW5nIGNvdWxkIG5lZWQuICBUaGlzIGFsc28gbWFrZXMg U1VCU1RSSU5HKCkgc3RvcCByYWlzaW5nIGFuCmVuY29kaW5nIGVycm9yIGlmIHRoZSBpbmNvbXBs ZXRlIGNoYXIgaXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBzdWJzdHJpbmcuClRoaXMgaXMgY29uc2lz dGVudCB3aXRoIHRoZSBnZW5lcmFsIHBoaWxvc29waHkgb2YgdGhlIGFib3ZlIGNvbW1pdCwKd2hp Y2ggd2FzIHRvIHJhaXNlIGVycm9ycyBvbiBhIGp1c3QtaW4tdGltZSBiYXNpcy4gIEJlZm9yZSB0 aGUgYWJvdmUKY29tbWl0LCBTVUJTVFJJTkcoKSBuZXZlciByYWlzZWQgYW4gZW5jb2RpbmcgZXJy b3IuCgpTVUJTVFJJTkcoKSBoYXMgbG9uZyBiZWVuIGRldG9hc3RpbmcgZW5vdWdoIGZvciBvbmUg bW9yZSBjaGFyIHRoYW4KbmVlZGVkLCBiZWNhdXNlIGl0IGRpZCBub3QgZGlzdGluZ3Vpc2ggZXhj bHVzaXZlIGFuZCBpbmNsdXNpdmUgZW5kCnBvc2l0aW9uLiAgRm9yIGF2b2lkYW5jZSBvZiBkb3Vi dCwgc3RvcCBkZXRvYXN0aW5nIGV4dHJhLgoKQmFjay1wYXRjaCB0byB2MTQsIGxpa2UgdGhlIGFi b3ZlIGNvbW1pdC4gIEZvciBhcHBsaWNhdGlvbnMgdXNpbmcKU1VCU1RSSU5HKCkgb24gbm9uLUFT Q0lJIGNvbHVtbiB2YWx1ZXMsIGNvbnNpZGVyIGFwcGx5aW5nIHRoaXMgdG8geW91cgpjb3B5IG9m IGFueSBvZiB0aGUgRmVicnVhcnkgMTIsIDIwMjYgcmVsZWFzZXMuCgpSZXBvcnRlZC1ieTogU0FU xYwgS2VudGFyxY0gPHJhbnZpc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBUaG9tYXMgTXVucm8g PHRob21hcy5tdW5yb0BnbWFpbC5jb20+CkJ1ZzogIzE5NDA2CkRpc2N1c3Npb246IGh0dHBzOi8v cG9zdGdyLmVzL20vMTk0MDYtOTg2N2ZkZGRkZDcyNGZjYUBwb3N0Z3Jlc3FsLm9yZwpCYWNrcGF0 Y2gtdGhyb3VnaDogMTQKCkJyYW5jaAotLS0tLS0KbWFzdGVyCgpEZXRhaWxzCi0tLS0tLS0KaHR0 cHM6Ly9naXQucG9zdGdyZXNxbC5vcmcvcGcvY29tbWl0ZGlmZi85ZjRmZDExOWIyY2JiOWE0MWVj MGMxOWE4ZDZlYzliNTliOTJjMTI1CgpNb2RpZmllZCBGaWxlcwotLS0tLS0tLS0tLS0tLQpzcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jICAgICAgICB8IDYyICsrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0Kc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lbmNvZGluZy5vdXQg fCA0NCArKysrKysrKysrKysrKysrKysrKysrKy0Kc3JjL3Rlc3QvcmVncmVzcy9zcWwvZW5jb2Rp bmcuc3FsICAgICAgfCAxOSArKysrKysrKysrLQozIGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRp b25zKCspLCAxNCBkZWxldGlvbnMoLSkKCg== --===============0724526171278901684==--