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.94.2) (envelope-from ) id 1v0lyH-000NpM-PB for pgsql-www@arkaria.postgresql.org; Mon, 22 Sep 2025 19:13:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v0lyE-001f1s-Bp for pgsql-www@arkaria.postgresql.org; Mon, 22 Sep 2025 19:13:06 +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.94.2) (envelope-from ) id 1v0lyE-001f1j-0J for pgsql-www@lists.postgresql.org; Mon, 22 Sep 2025 19:13:06 +0000 Received: from smtp.cmatte.me ([54.37.205.152]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v0lyA-002F67-0r for pgsql-www@lists.postgresql.org; Mon, 22 Sep 2025 19:13:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cmatte.me; s=myselector; t=1758568382; bh=PEdt9qHtp1jeBk11M6yhB4HllXMuGUfFpkHZ3a5eFp4=; h=Date:To:From:Subject; b=DIkZNHpx8+Gx1eJouDiCcPr5tl/KXSj6mJ1HODK0tw7FyabGqAqj5JEYZDJ6eLoim kEBPMRqdekCjmcn1BcvedPI7dzRYX7rMf0XtFc/as6DcvywILD8O8wOSrrRDXi6Nlf CFtxtW/zRsAdXWSYJ6/cMpugBSWb1+9e0l3hLV5IpWTr6TtQSDWL5TiZ5pc1ASFOUI 6ZG9RB2BLVqk9tvckKTalv/G9p0A412wsxL7+hdieF4jJepbdNywApBFNIk7yVHA3g haTuQ98PYg2aEw9IEmi3P4fshckt+ie3kv7AjXmoeuS3qhfvGNhB58UfdSb2r9vn0P tTZ0DSt0LtkNQ== Content-Type: multipart/mixed; boundary="------------V6iROvlcxJpmq5Ddrx4cDl1N" Message-ID: <281f9ff6-62fd-45fa-9396-0dbf1b4abae0@cmatte.me> Date: Mon, 22 Sep 2025 21:13:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: PostgreSQL WWW Content-Language: en-US From: =?UTF-8?Q?C=C3=A9lestin_Matte?= Subject: [PATCH] pgarchives: bugfix: increase listsubscription username length Autocrypt: addr=celestin.matte@cmatte.me; keydata= xsFNBFQipO8BEADUvqE27QFRLuew+jnzTi1HupltXE+mcFXkCE3ksU4UIMpUDHud+Uje6HIA dHQuq4ovTZOrCsE6cmwZ7HXjG3/fwCTsmlL+/VlJM+ip3l4vAnlL9CaN1iPGERfiYEgyQ80J GeEaPAo4wPyuU/qE0OkBFsb25lyyfpycd6GZXCWEj2/lJtWqkRLx9S9kNms6PlbOGw2KBaeL H9a778Gk73ELkaV/rTmLISZSy5KFszHnesZeNCIwjJdiEPvrhR1W/Nux1h8ac1fUzmbGXoLv 2dCskYX8DHCTzEEDJs+jnS3JVcWA39DDWnpdkLCy8/dKFJtnC/bw8dAryAIyqtSERJhJ5k7r hTr2t7EMwkh+mjTgYc8ixxkUEeHmTz3QMgnWBaKB/GhNPrdlJEmPxdQnTftA5kek9hfcmdCR mitOZkrqq0N55i/PPb5YFCEMuEWDkJLdRN+oyQy4zz4qdqHxhLqNnVrKx56kuHCEvD8rMvJg qrBei2rmr/rXhLGqk5l8iTfNZNJBRDCTT2S+i07U8bHuRpFH7R80pdBgyvJM3JViA1EbxDxS aGrK9PcWnxSgdex+hYN3bNHsK3CLMcMf94fbZIpATDM28tgKFjiCWJq1z+EaWuV48LBRanxF wqMj/YhG7ydcWj+KD1tjhb3c5sPqxoFF7ZMA4SiquUO+1Qis9wARAQABzSpDw6lsZXN0aW4g TWF0dGUgPGNlbGVzdGluLm1hdHRlQGNtYXR0ZS5tZT7CwY4EEwEIADgWIQRkMBVsWP+VuH6p DzChpij+y2qL1gUCX140dAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRChpij+y2qL 1rnREADUGn7UXdUl2pyFlaIErGT17tulBh854Q43ePV27JDlOabh0csk6WyB18bYn9PhA4es liF6LFYOGdJPO+t1qodfxthZjZksVPb4cqR/Q/EL135zZ069Jg0P7kcmSyEeFq0iUSCVL4wN YYF+lCpKVvwkt9cD3vqxGi0zacO0aKBYlG/KNTTYNKC606FmTS75jtoJeQEpQE/eQpDqPACC nBMoyJZyDfXyIkg02lWQTrLjMa5U6G0+iH00pjadgaUeB3OpvIYaMFxMfKodnWEgTx21aY1m HFa8MSM1uSW6NFLXjTKxCxEzQtkwOLiOpvIf+Kjxe1VLcb39ulMs9JBxAYJAfpaUO+u/sPGf N6NexjVjJlaV153wdAjcOycDk1UXhqHwMh4i7Um6pjftyqAhT25/CPD+O2A68vn852Taw/Bx cbIbJ3uDxluR5/J0eIwiLzP4cMRa+0av2Xt7UqqN/RCx0owvlILpHkxH/3Buzu505pNqNs3Y 7ZnViYRe0cQpfdQOOfjtSV2gFx/e6jcF47dUGSqCogCAfn9j8HpmsAsXnMS4g9548CKc7ByY HZNXAuRZmywRrCP+kyNB/No4uaMvNzGbaCtva3Ui9DEI01IAoZ2GILEGOlmHCXO6QLDLW+lH /N0fgKv40D6vR9ysq0BuRHeJmHCRLhhBRZHSy8U9Ls7BTQRUIqTvARAA3h2d22LoJs9UboUg oBIIBS7D5NV2sfUbt3j8fotgaKWT2Y4UJJx8hBdyfkdUa6++yaGk92EBN8vs4BLd1zRj/izX Ai3sbyb+lzXs7e/DwAX5vZveGQn7fYc14ST72fLIE/B2k1V+syoi4bhoueCWnprSEwYNWhbg POQMFyOvUhglEeqLGhijnIQatYzwmoli6QhRip4wx5FfSYS0cgjD/uFZPnLxKvq7Cn39Hbe7 4k5atJRC2YD1aFysjGzPm1mr0H+JCjJpN3b7VlDrYtpwEfc77F6txKGFVonS66P4Xn2+n3A4 mBUqn3GXe2DkJACnS6NS//wWUj6nxn1vxbTLrhyvYVSMKksZ09jfBT4poN/yGawhleMwEF2i sXMDu2tmNb8wwTsj6Je9ibi2xs6E7gohZnGSnWx7dgnlUyKAQvmEsE8Z2wC3T2FppeobzY3Y t+Isj3wFYWMpp9Ijsk9IMjIkyFs1ii/OA8zsXlpT1Jsok39KkZQGJ9xaRm79+mHM6t7b2tR2 LmtqypIqOsg8PukIK83oVP2BQQHwBCOf8LoVJZp6Q2Zt/mhkHm1+2C2ajGKeoEWcc0wd2FiC LHSYPplT+a5Gf2Cxlk9wgtGBa7X4YZq1btXFJebwC9UOHaTG9suFDYUJkIC48/mm7MRdZgjd el/Ip0nLP6qfkmVcWm0AEQEAAcLBXwQYAQIACQUCVCKk7wIbDAAKCRChpij+y2qL1qyZD/9q WaxEuYW2SM9hUaHnnERfmlnJAT6EmRU2uRXm5pGg3kbS6GcjiFnByLK8U9syA7j1XNIB/R/c 442R5o1tAd0kEYq9pLk80Nkc8oULOBHgMs8FJSWpgVYJ7Qxfgg9geKXwjjljhdM2SCB214s1 oIml3MiE91se7JSPAfMnomTdXRQMuphFF4ETw7Dd134AmhpAcXj6PeCXWmQJh4iPmJCy6K2t +Gbe7xyc9f6ok4zIEeZGDWyKctKgCQv07vVB5qFhxbk60AGWHjKSBTKLB8EhA2nriWIpJqPM Ng1DdFuBiBuWwLo29whT66XC8zdtfqbcDh4bRG7KaarOB0nbrYvifOQRB/ijnjn9xssaSdWy 8+ea2vSamjCXDb0wWl1itDa61iUsiiPiB2UP7PrI75rI+oHRDBy8AK3IYkby0IkI3nD+8wKf 7eeHao1vG/r6E8PhJ1KbMtHkxwV/iSVRoETR8+vcsYP4Rh5HHlc7ERUWgN4Cgyk/WZd4RwNa E7jwD00hpkxgbHNoXXVvYlzRKWpIQnBzEKc+46JsRie91/YrxOkm123PoWGasOCzinr5r3uT lHrvULo7IsHw+1Ru29cne8BH9+FKxup4B2SYJ6RjZFwd+8dan2DW7dqjA2d8l2/CgQgL7Hqq co++UjjOPJT3t7qY4ekbQ3xf6bdSDZh7Aw== List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------V6iROvlcxJpmq5Ddrx4cDl1N Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit The listsubscription username field is populated by pglister_sync, copying information from auth_user.email, which can be up to 254 characters. If a user defined an email address that is longer than 30 characters, pglister_sync will crash: Traceback (most recent call last): File "/path/pglister_sync.py", line 83, in curs.execute("WITH t(u) AS (SELECT UNNEST(%(usernames)s::text[])), ins(un) AS (INSERT INTO listsubscribers (username, list_id) SELECT u, %(listid)s FROM t WHERE NOT EXISTS (SELECT 1 FROM listsubscribers WHERE username=u AND list_id=%(listid)s) RETURNING username), del(un) AS (DELETE FROM listsubscribers WHERE list_id=%(listid)s AND NOT EXISTS (SELECT 1 FROM t WHERE u=username) RETURNING username) SELECT 'ins',un FROM ins UNION ALL SELECT 'del',un FROM del ORDER BY 1,2", { psycopg2.errors.StringDataRightTruncation: value too long for type character varying(30) This patch fixes the issue by using the same max length as any django email field for this field. -- Célestin Matte --------------V6iROvlcxJpmq5Ddrx4cDl1N Content-Type: text/x-patch; charset=UTF-8; name="0001-Increase-listsubscriber-username-field-length.patch" Content-Disposition: attachment; filename="0001-Increase-listsubscriber-username-field-length.patch" Content-Transfer-Encoding: base64 RnJvbSA2YjhkYWFjZDZjOTBlMGI1MjM4NGU2NGU1NDU1NzQxNjIyMDdlNWI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGRldkBjbWF0dGUubWU+CkRhdGU6IE1vbiwgMjIgU2VwIDIwMjUgMjE6MDA6NTAgKzAy MDAKU3ViamVjdDogW1BBVENIXSBJbmNyZWFzZSBsaXN0c3Vic2NyaWJlciB1c2VybmFtZSBm aWVsZCBsZW5ndGgKClRoaXMgZmllbGQgaXMgcG9wdWxhdGVkIGJ5IHBnbGlzdGVyX3N5bmMs IGNvcHlpbmcgaW5mb3JtYXRpb24gZnJvbQphdXRoX3VzZXIuZW1haWwsIHdoaWNoIGNhbiBi ZSB1cCB0byAyNTQgY2hhcmFjdGVycy4KLS0tCiAuLi4vMDAwNV9hbHRlcl9saXN0c3Vic2Ny aWJlcl91c2VybmFtZS5weSAgICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiBkamFuZ28v YXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weSAgICAgICAgIHwgIDIgKy0KIDIgZmls ZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA1 X2FsdGVyX2xpc3RzdWJzY3JpYmVyX3VzZXJuYW1lLnB5CgpkaWZmIC0tZ2l0IGEvZGphbmdv L2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRpb25zLzAwMDVfYWx0ZXJfbGlzdHN1YnNj cmliZXJfdXNlcm5hbWUucHkgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21pZ3Jh dGlvbnMvMDAwNV9hbHRlcl9saXN0c3Vic2NyaWJlcl91c2VybmFtZS5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTJjYmQ2Ci0tLSAvZGV2L251bGwKKysrIGIv ZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRpb25zLzAwMDVfYWx0ZXJfbGlz dHN1YnNjcmliZXJfdXNlcm5hbWUucHkKQEAgLTAsMCArMSwxOCBAQAorIyBHZW5lcmF0ZWQg YnkgRGphbmdvIDUuMi42IG9uIDIwMjUtMDktMjIgMTg6MzkKKworZnJvbSBkamFuZ28uZGIg aW1wb3J0IG1pZ3JhdGlvbnMsIG1vZGVscworCisKK2NsYXNzIE1pZ3JhdGlvbihtaWdyYXRp b25zLk1pZ3JhdGlvbik6CisKKyAgICBkZXBlbmRlbmNpZXMgPSBbCisgICAgICAgICgibWFp bGFyY2hpdmVzIiwgIjAwMDRfcmVzZW5kX3JhdGVfbGltaXQiKSwKKyAgICBdCisKKyAgICBv cGVyYXRpb25zID0gWworICAgICAgICBtaWdyYXRpb25zLkFsdGVyRmllbGQoCisgICAgICAg ICAgICBtb2RlbF9uYW1lPSJsaXN0c3Vic2NyaWJlciIsCisgICAgICAgICAgICBuYW1lPSJ1 c2VybmFtZSIsCisgICAgICAgICAgICBmaWVsZD1tb2RlbHMuQ2hhckZpZWxkKG1heF9sZW5n dGg9MjU0KSwKKyAgICAgICAgKSwKKyAgICBdCmRpZmYgLS1naXQgYS9kamFuZ28vYXJjaGl2 ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weSBiL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2 ZXMvbW9kZWxzLnB5CmluZGV4IDQ0YzQ0NjkuLjUzNjJhOTggMTAwNjQ0Ci0tLSBhL2RqYW5n by9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbW9kZWxzLnB5CisrKyBiL2RqYW5nby9hcmNoaXZl cy9tYWlsYXJjaGl2ZXMvbW9kZWxzLnB5CkBAIC0xMjIsNyArMTIyLDcgQEAgY2xhc3MgTGlz dFN1YnNjcmliZXIobW9kZWxzLk1vZGVsKToKICAgICAjIFdlIHNldCB0aGUgdXNlcm5hbWUg b2YgdGhlIGNvbW11bml0eSBhY2NvdW50IGluc3RlYWQgb2YgYQogICAgICMgZm9yZWlnbiBr ZXksIGJlY2F1c2UgdGhlIHVzZXIgbWlnaHQgbm90IGV4aXN0LgogICAgIGxpc3QgPSBtb2Rl bHMuRm9yZWlnbktleShMaXN0LCBudWxsPUZhbHNlLCBibGFuaz1GYWxzZSwgb25fZGVsZXRl PW1vZGVscy5DQVNDQURFKQotICAgIHVzZXJuYW1lID0gbW9kZWxzLkNoYXJGaWVsZChtYXhf bGVuZ3RoPTMwLCBudWxsPUZhbHNlLCBibGFuaz1GYWxzZSkKKyAgICB1c2VybmFtZSA9IG1v ZGVscy5DaGFyRmllbGQobWF4X2xlbmd0aD0yNTQsIG51bGw9RmFsc2UsIGJsYW5rPUZhbHNl KQogCiAgICAgY2xhc3MgTWV0YToKICAgICAgICAgdW5pcXVlX3RvZ2V0aGVyID0gKCgnbGlz dCcsICd1c2VybmFtZScpLCApCi0tIAoyLjUxLjAKCg== --------------V6iROvlcxJpmq5Ddrx4cDl1N--