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 1vrM8M-00GngT-10 for pgsql-committers@arkaria.postgresql.org; Sat, 14 Feb 2026 20:20:54 +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-000J1l-35 for pgsql-committers@arkaria.postgresql.org; Sat, 14 Feb 2026 20:20:52 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrM5B-000EkW-11 for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:37 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vrM54-00000000djW-0HDy for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:36 +0000 Received: from gemulon.postgresql.org ([72.32.157.198]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrM54-0029cF-0Z for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:30 +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-000o99-1n for pgsql-committers@lists.postgresql.org; Sat, 14 Feb 2026 20:17:29 +0000 Content-Type: multipart/mixed; boundary="===============0922788763139397470==" 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 --===============0922788763139397470== 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 Y2gtdGhyb3VnaDogMTQKCkJyYW5jaAotLS0tLS0KUkVMXzE2X1NUQUJMRQoKRGV0YWlscwotLS0t LS0tCmh0dHBzOi8vZ2l0LnBvc3RncmVzcWwub3JnL3BnL2NvbW1pdGRpZmYvYmRmYjM3MjI4MGJj NTA3MjM5YTAyYzBhMDYwZjBmNTFlYmQ0MWZhMQoKTW9kaWZpZWQgRmlsZXMKLS0tLS0tLS0tLS0t LS0Kc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyAgICAgICAgfCA2MiArKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tCnNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZW5jb2Rp bmcub3V0IHwgNDQgKysrKysrKysrKysrKysrKysrKysrKystCnNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2VuY29kaW5nLnNxbCAgICAgIHwgMTkgKysrKysrKysrKy0KMyBmaWxlcyBjaGFuZ2VkLCAxMTEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgo= --===============0922788763139397470==--