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 1wUngi-001SNZ-1u for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 15:39:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUngg-0023Fe-2F for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 15:39:22 +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 1wUngg-0023FW-11 for pgsql-hackers@lists.postgresql.org; Wed, 03 Jun 2026 15:39:22 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUngd-000000014hS-48Aj for pgsql-hackers@lists.postgresql.org; Wed, 03 Jun 2026 15:39:22 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5aa68e66128so3959309e87.2 for ; Wed, 03 Jun 2026 08:39:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780501159; cv=none; d=google.com; s=arc-20240605; b=TFm5X8HpNiaZSTCXoFE+PpE3tOtWzu3/9SqpOvdBLfD1IYFNqUjZSHpkOWJ12pmcDE JkyJaCoG5JCL/FX14cVY0LXOqo6USiCnpfCRX3PhWBLp2nPWPW6DtFXS5KVxKCrKMTgt RBc7EUghBVJb0qaJvFCdegtxDLpr/io4BrCj28/Ssl2T0GVSSMGwGlAoGuVP+oXpjstr M8poa8s1/NPcXOg3+772BmQgOdEevw/KtortuTaHM3sTSZOTgDs519dgLPEyQs50JHx7 7Xau4wM8IjbOXemloT5kagUGZPdgs6K9LuQ5rl66iyNugigd8Znzyw6ILHWiFsWWPcQ9 qlbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:mime-version:dkim-signature; bh=5P2cvhFpC4nxRpWnK9Te/ReI1m9tSlcXyBYxjslStik=; fh=bUXp48zsL1aHjnd3SUqEAEmfXeFFaCAJCNHEQ8j7SuE=; b=G1whMoTnmYI5kBl4yBcVw7W1LWLP3j5V4EH8XTPk3IPWAJMZYUK3xNYoHWr7/3su4k yDMJrD5ljjYHVCtoG1aFcyr0UF3OTofx6avrqINPP35gFdOPnjK8XXibzZRkD5NkCc+j 7NJR93xRBm4yR2pWJB2udiOe6MtngaJlBErvVOOUhw07ugyr4jtyrzOA0xrb1lmEbQvl 1/ExJqrZLzxtAerSkAZJojKe1FjnH6V/2qchXpoyY3ewr7HU9X/V6ow8eM/eaqlEd2uH /d0fcxxnp/ENKDY/FYt2bAUkXI2JmioQxeWDbN2F8+/rT6HIYU1iuATIx3apUcRoA+EN aH9w==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780501159; x=1781105959; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=5P2cvhFpC4nxRpWnK9Te/ReI1m9tSlcXyBYxjslStik=; b=lKd7LYm0VE66UNGX30S32NXOCEhhxaDMHCWJ0t6wUqriNLEzr3gdVNMiTpY/LxIjgp cJKDu0oLRro9xevTSMcuS4G/DFPvUHk1356ycsQWNcyBmVnx3dqiHjEwjjFrxynJL1ov nTfDNis2+JBJNFz0ixxB5X9TlH/J0dYBP2ofU7Lb3rSPhsDSvzdQOmyI2EmMaVLnjjaV a1zfkM7ftz2J50dx/Mc++GjYo0Q3te1fFhzO4c55+gtKXezW2EPgGHPonLyFkthfTpUB pqr1euyPNVYo22iF3uqPVsGc3kZMwMH24OgQEBecBm5ou1I+HQDFOPbWkjGeNnCkwtyN P26g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780501159; x=1781105959; h=cc:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5P2cvhFpC4nxRpWnK9Te/ReI1m9tSlcXyBYxjslStik=; b=Q+u6grAmm1oH7PpVR/1i6in4yx6brieMc65HlmP77dNPaBfnROQ8erBXrzyk2omtee GPoZBm7sAYTkI+ZFkZCHLWy5iL7vI7lW3iGLs4LcBdNRBYohoyMyC3S24aWrWcKWNY1V W+eWYLqo/xbS0NBz0CepLS08DPxKzjeSoJSgk1HMA+K1aZRqd91H9hlPDX/L0L2Tjh9p x58jg5IgT/e74bnp+SRHK3CwzCmOZllIbBy4cS749lNp2XQlmqJrh5v079mv+J89+v0/ JDNnPrj/whrJYmCwD8GV+d8VKUnxI0Fv6W7ZHjr30tcd0Q9XVLhYzFiUEHqRGPP6BQl4 j7jw== X-Gm-Message-State: AOJu0YxN5DDENM0LxcgbvCgxu7QH5WppY7czuji7cWsha5Pi5UsoU/Mv neR945RVXq9KIQZtTQ9z3FN9wktzYxD8XPycbdRs6seXZS01l6tAdWwVVOw6Tmb0yht1cjlS71j FF7Qzt7WOU9U5K7sW2BfT1mkeqY46KqNmIFPschqDYCBeB6U= X-Gm-Gg: Acq92OFoM1GFFfzB8nqhVa3GDtDpSkQQwJf/Zm9tIkPSnUo0dwPuliMnqoOOs/hpdq5 /piwbHngrFCvI8xTgyXqx9Wbw/AD677xKcim0T5NMUcgeIaAa+GgYJpjI7ssTahJQCRbH1SjpNf IOUkcTfgJeDTjPIDCgkF0Ts49EEaYc1ANOR6TZ0snSqYQx9MGyMzEBL+DCFy98DR/qK++BZCGzd ZJ6MehYkNp68DIyGp6tCq8xgFvBOsoti7bD8SLax5yqkRCMInr22QteTQtWaV59+2wwf+r6SVuq 1wtA6r2WKin8PRm7TUuIEi803h44tDP07gYcJEqJChgsxIkjuB42/AQKIRTh8mI= X-Received: by 2002:a05:6512:1242:b0:5aa:70be:50a6 with SMTP id 2adb3069b0e04-5aa7c05449emr1523230e87.8.1780501158280; Wed, 03 Jun 2026 08:39:18 -0700 (PDT) MIME-Version: 1.0 From: Ewan Young Date: Wed, 3 Jun 2026 23:39:05 +0800 X-Gm-Features: AVHnY4K7Tnut4fB3LAvhVQcwaJ7gxDVqbaq_voQFuNOucI85NynBJoYxTcbH3i0 Message-ID: Subject: Use ereport() instead of elog() for invalid weights in setweight() To: PostgreSQL Hackers Cc: Michael Paquier Content-Type: multipart/mixed; boundary="0000000000000fecc406535b3bf4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000fecc406535b3bf4 Content-Type: text/plain; charset="UTF-8" Hi hackers, I noticed that setweight() reports an internal error (SQLSTATE XX000) when the weight argument is not one of A/a, B/b, C/c, D/d, even though the weight comes directly from user input. The two-argument variant also prints the weight as a raw ASCII code, which is a bit unfriendly: =# SELECT setweight('cat:1'::tsvector, 'p'); ERROR: unrecognized weight: 112 ts_filter() in the same file (tsvector_op.c) already handles the equivalent case with ereport() and ERRCODE_INVALID_PARAMETER_VALUE, so the attached patch simply makes tsvector_setweight() and tsvector_setweight_by_filter() do the same, and adds regression tests covering the three error paths (none of which were covered before). This seems to be in the same spirit as the earlier cleanup of user-reachable internal error codes [1]; these two sites appear to have been missed there. The patch is against the master and passes make check. Please let me know if I've missed anything -- I'd be happy to revise. [1] https://postgr.es/m/Zic_GNgos5sMxKoa@paquier.xyz Best regards, Ewan Young --0000000000000fecc406535b3bf4 Content-Type: application/octet-stream; name="v1-0001-Use-ereport-not-elog-for-invalid-weights-in-setweight.patch" Content-Disposition: attachment; filename="v1-0001-Use-ereport-not-elog-for-invalid-weights-in-setweight.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpy89v0a0 RnJvbSA3MWYyMDVjMzY0NDA0ZDJkYjI0NGIyYzZkZTRjYzNiMDQ3ZmUwOGM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFd2FuIFlvdW5nIDxrZGJhc2UuaGFja0BnbWFpbC5jb20+CkRh dGU6IFRodSwgNCBKdW4gMjAyNiAwNzoyNTowMyArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFVzZSBl cmVwb3J0KCksIG5vdCBlbG9nKCksIGZvciBpbnZhbGlkIHdlaWdodHMgaW4KIHNldHdlaWdodCgp LgoKdHN2ZWN0b3Jfc2V0d2VpZ2h0KCkgYW5kIHRzdmVjdG9yX3NldHdlaWdodF9ieV9maWx0ZXIo KSByYWlzZWQgYW4KaW50ZXJuYWwgZXJyb3IgKGVsb2csIFNRTFNUQVRFIFhYMDAwKSB3aGVuIHRo ZSB3ZWlnaHQgYXJndW1lbnQgd2FzCm5vdCBvbmUgb2YgQS9hLCBCL2IsIEMvYywgRC9kLCBldmVu IHRob3VnaCB0aGUgd2VpZ2h0IGNvbWVzIGRpcmVjdGx5CmZyb20gdXNlciBpbnB1dC4gIFdvcnNl LCB0aGUgdHdvLWFyZ3VtZW50IHZhcmlhbnQgcHJpbnRlZCB0aGUgd2VpZ2h0CmFzIGEgcmF3IEFT Q0lJIGNvZGU6CgogICAgPSMgU0VMRUNUIHNldHdlaWdodCgnY2F0OjEnOjp0c3ZlY3RvciwgJ3An KTsKICAgIEVSUk9SOiAgdW5yZWNvZ25pemVkIHdlaWdodDogMTEyCgpDb252ZXJ0IGJvdGggdG8g ZXJlcG9ydCgpIHdpdGggRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSwKbWF0Y2hpbmcg d2hhdCB0c3ZlY3Rvcl9maWx0ZXIoKSBpbiB0aGUgc2FtZSBmaWxlIGFscmVhZHkgZG9lcywgYW5k CmFkZCByZWdyZXNzaW9uIHRlc3RzIGNvdmVyaW5nIGFsbCB0aHJlZSBlcnJvciBwYXRocy4KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvdHN2ZWN0b3Jfb3AuYyAgIHwgMTAgKysrKysrLS0tLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90c3R5cGVzLm91dCB8ICA3ICsrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3RzdHlwZXMuc3FsICAgICAgfCAgNCArKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3RzdmVjdG9yX29wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdHN2 ZWN0b3Jfb3AuYwppbmRleCBkOGRlY2U0MmI5Yi4uOWE4MzY1OGI2MDEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC90c3ZlY3Rvcl9vcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC90c3ZlY3Rvcl9vcC5jCkBAIC0yMzgsOCArMjM4LDkgQEAgdHN2ZWN0b3Jfc2V0d2VpZ2h0 KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQl3ID0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJ LyogaW50ZXJuYWwgZXJyb3IgKi8KLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgd2VpZ2h0 OiAlZCIsIGN3KTsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgd2VpZ2h0 OiBcIiVjXCIiLCBjdykpKTsKIAl9CiAKIAlvdXQgPSAoVFNWZWN0b3IpIHBhbGxvYyhWQVJTSVpF KGluKSk7CkBAIC0zMDQsOCArMzA1LDkgQEAgdHN2ZWN0b3Jfc2V0d2VpZ2h0X2J5X2ZpbHRlcihQ R19GVU5DVElPTl9BUkdTKQogCQkJd2VpZ2h0ID0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0Ogot CQkJLyogaW50ZXJuYWwgZXJyb3IgKi8KLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgd2Vp Z2h0OiAlYyIsIGNoYXJfd2VpZ2h0KTsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNnKCJ1bnJlY29n bml6ZWQgd2VpZ2h0OiBcIiVjXCIiLCBjaGFyX3dlaWdodCkpKTsKIAl9CiAKIAl0c291dCA9IChU U1ZlY3RvcikgcGFsbG9jKFZBUlNJWkUodHNpbikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90c3R5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHN0 eXBlcy5vdXQKaW5kZXggNGNmYzNiOWRjMDQuLmE5YzY0NjUwMjFmIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RzdHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHN0eXBlcy5vdXQKQEAgLTE0MjgsNiArMTQyOCwxMSBAQCBTRUxFQ1Qgc2V0d2Vp Z2h0KCdhIGFzZCB3OjUsNiwxMkIsMTNBIHp4Yyc6OnRzdmVjdG9yLCAnYycsIEFSUkFZWydhJywg J3p4YycsICcnLAogICdhJyAnYXNkJyAndyc6NSw2LDEyQiwxM0EgJ3p4YycKICgxIHJvdykKIAor LS0gaW52YWxpZCB3ZWlnaHRzIGFyZSBkaXNhbGxvd2VkCitTRUxFQ1Qgc2V0d2VpZ2h0KCd3OjVB Jzo6dHN2ZWN0b3IsICd4Jyk7CitFUlJPUjogIHVucmVjb2duaXplZCB3ZWlnaHQ6ICJ4IgorU0VM RUNUIHNldHdlaWdodCgndzo1QSc6OnRzdmVjdG9yLCAneCcsICd7d30nKTsKK0VSUk9SOiAgdW5y ZWNvZ25pemVkIHdlaWdodDogIngiCiBTRUxFQ1QgdHNfZmlsdGVyKCdiYXNlOjdBIGVtcGlyOjE3 IGV2aWw6MTUgZmlyc3Q6MTEgZ2FsYWN0OjE2IGhpZGRlbjo2QSByZWJlbDoxQSBzcGFjZXNoaXA6 MkEgc3RyaWtlOjNBIHZpY3Rvcmk6MTIgd29uOjknOjp0c3ZlY3RvciwgJ3thfScpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICB0c19maWx0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtMTQ0MiwzICsxNDQ3LDUgQEAgU0VMRUNUIHRzX2ZpbHRlcignYmFzZSBoaWRkZW4g cmViZWwgc3BhY2VzaGlwIHN0cmlrZSc6OnRzdmVjdG9yLCAne2F9Jyk7CiAKIFNFTEVDVCB0c19m aWx0ZXIoJ2Jhc2UgaGlkZGVuIHJlYmVsIHNwYWNlc2hpcCBzdHJpa2UnOjp0c3ZlY3RvciwgJ3th LGIsTlVMTH0nKTsKIEVSUk9SOiAgd2VpZ2h0IGFycmF5IG1heSBub3QgY29udGFpbiBudWxscwor U0VMRUNUIHRzX2ZpbHRlcignYmFzZSBoaWRkZW4gcmViZWwgc3BhY2VzaGlwIHN0cmlrZSc6OnRz dmVjdG9yLCAne3h9Jyk7CitFUlJPUjogIHVucmVjb2duaXplZCB3ZWlnaHQ6ICJ4IgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHN0eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC90c3R5cGVzLnNxbAppbmRleCBkZmI3YTE0NjZlMC4uNDI2MWFiZWQ2NzAgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RzdHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3RzdHlwZXMuc3FsCkBAIC0yNzUsNyArMjc1LDExIEBAIFNFTEVDVCBzZXR3ZWlnaHQo J2E6MSwzQSBhc2Q6MUMgdzo1LDYsMTJCLDEzQSB6eGM6ODEsMjIyQSw1NjcnOjp0c3ZlY3Rvciwg J2MnLCAnCiBTRUxFQ1Qgc2V0d2VpZ2h0KCdhOjEsM0EgYXNkOjFDIHc6NSw2LDEyQiwxM0Egenhj OjgxLDIyMkEsNTY3Jzo6dHN2ZWN0b3IsICdjJywgJ3thfScpOwogU0VMRUNUIHNldHdlaWdodCgn YToxLDNBIGFzZDoxQyB3OjUsNiwxMkIsMTNBIHp4Yzo4MSwyMjJBLDU2Nyc6OnRzdmVjdG9yLCAn YycsICd7YSx6eGN9Jyk7CiBTRUxFQ1Qgc2V0d2VpZ2h0KCdhIGFzZCB3OjUsNiwxMkIsMTNBIHp4 Yyc6OnRzdmVjdG9yLCAnYycsIEFSUkFZWydhJywgJ3p4YycsICcnLCBOVUxMXSk7CistLSBpbnZh bGlkIHdlaWdodHMgYXJlIGRpc2FsbG93ZWQKK1NFTEVDVCBzZXR3ZWlnaHQoJ3c6NUEnOjp0c3Zl Y3RvciwgJ3gnKTsKK1NFTEVDVCBzZXR3ZWlnaHQoJ3c6NUEnOjp0c3ZlY3RvciwgJ3gnLCAne3d9 Jyk7CiAKIFNFTEVDVCB0c19maWx0ZXIoJ2Jhc2U6N0EgZW1waXI6MTcgZXZpbDoxNSBmaXJzdDox MSBnYWxhY3Q6MTYgaGlkZGVuOjZBIHJlYmVsOjFBIHNwYWNlc2hpcDoyQSBzdHJpa2U6M0Egdmlj dG9yaToxMiB3b246OSc6OnRzdmVjdG9yLCAne2F9Jyk7CiBTRUxFQ1QgdHNfZmlsdGVyKCdiYXNl IGhpZGRlbiByZWJlbCBzcGFjZXNoaXAgc3RyaWtlJzo6dHN2ZWN0b3IsICd7YX0nKTsKIFNFTEVD VCB0c19maWx0ZXIoJ2Jhc2UgaGlkZGVuIHJlYmVsIHNwYWNlc2hpcCBzdHJpa2UnOjp0c3ZlY3Rv ciwgJ3thLGIsTlVMTH0nKTsKK1NFTEVDVCB0c19maWx0ZXIoJ2Jhc2UgaGlkZGVuIHJlYmVsIHNw YWNlc2hpcCBzdHJpa2UnOjp0c3ZlY3RvciwgJ3t4fScpOwotLSAKMi40Ny4zCgo= --0000000000000fecc406535b3bf4--