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 1v0mDX-000QaU-Lo for pgsql-www@arkaria.postgresql.org; Mon, 22 Sep 2025 19:28:55 +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 1v0mDW-001feL-6M for pgsql-www@arkaria.postgresql.org; Mon, 22 Sep 2025 19:28:54 +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.94.2) (envelope-from ) id 1v0mDV-001feD-O1 for pgsql-www@lists.postgresql.org; Mon, 22 Sep 2025 19:28:53 +0000 Received: from smtp.cmatte.me ([54.37.205.152]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1v0mDS-001odV-2w for pgsql-www@lists.postgresql.org; Mon, 22 Sep 2025 19:28:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cmatte.me; s=myselector; t=1758569329; bh=SWr0cKCVOkxv6AygCBZfPD6TEiP3JNEA1CStxBZp+YA=; h=Date:Subject:From:To:References:In-Reply-To; b=N7Ndw1NLH7IE15JgxCPZ95C8BecHh3LMquqoO8CfFNmZqnra0jkhfl4nEju4WGb1P LyL0YJbw7G4/YQi3yh8UK6BlmPZB1X+Ft2wg5AowcoAGkpgqxW06gLOvvl65/QiONo h91Aw1GSf/Crg7fvECy1g3E/uQWn6Yz7JKupziQBmyTVJqX3iuyzPWKNPF3426IGlT hRBAoSCMy4+jvb6+ifjOjF+n0TlsnS6e9FKvNlPR39ULY8ppwzK+XHmh9uykRhE06z 2/rxZ+Ontp4IkEvbM+DAAyWm3uDEUFQ8B7OaSCyxzP2vp0J/sc4bXDI9xljA6m0cSA sCmvgeZ26YB5A== Content-Type: multipart/mixed; boundary="------------RoIfpL2H0NYn5ehLO2K9nf3L" Message-ID: <6127117d-6490-4dee-a5ce-d8d17b65a717@cmatte.me> Date: Mon, 22 Sep 2025 21:28:49 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] pgarchives: bugfix: increase listsubscription username length From: =?UTF-8?Q?C=C3=A9lestin_Matte?= To: PostgreSQL WWW References: <281f9ff6-62fd-45fa-9396-0dbf1b4abae0@cmatte.me> Content-Language: en-US Autocrypt: addr=celestin.matte@cmatte.me; keydata= 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 co++UjjOPJT3t7qY4ekbQ3xf6bdSDZh7Aw== In-Reply-To: <281f9ff6-62fd-45fa-9396-0dbf1b4abae0@cmatte.me> 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. --------------RoIfpL2H0NYn5ehLO2K9nf3L Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Correction: the field is copied from auth_user.username, which is max 150= characters: https://docs.djangoproject.com/en/5.2/ref/contrib/auth/#djan= go.contrib.auth.models.User.username Corrected patch attached On 22/09/2025 21:13, C=C3=A9lestin Matte wrote: > 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: >=20 > Traceback (most recent call last): > =C2=A0 File "/path/pglister_sync.py", line 83, in > =C2=A0=C2=A0=C2=A0 curs.execute("WITH t(u) AS (SELECT UNNEST(%(usernam= es)s::text[])), ins(un) AS (INSERT INTO listsubscribers (username, list_i= d) SELECT u, %(listid)s FROM t WHERE NOT EXISTS (SELECT 1 FROM listsubscr= ibers WHERE username=3Du AND list_id=3D%(listid)s) RETURNING username), d= el(un) AS (DELETE FROM listsubscribers WHERE list_id=3D%(listid)s AND NOT= EXISTS (SELECT 1 FROM t WHERE u=3Dusername) 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 char= acter varying(30) >=20 > This patch fixes the issue by using the same max length as any > django email field for this field. --=20 C=C3=A9lestin Matte --------------RoIfpL2H0NYn5ehLO2K9nf3L 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 IGNvcHlpbmcgaW5mb3JtYXRpb24gZnJvbQphdXRoX3VzZXIudXNlcm5hbWUsIHdoaWNoIGNh biBiZSB1cCB0byAxNTAgY2hhcmFjdGVycy4KLS0tCiAuLi4vMDAwNV9hbHRlcl9saXN0c3Vi c2NyaWJlcl91c2VybmFtZS5weSAgICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiBkamFu Z28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weSAgICAgICAgIHwgIDIgKy0KIDIg ZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8w MDA1X2FsdGVyX2xpc3RzdWJzY3JpYmVyX3VzZXJuYW1lLnB5CgpkaWZmIC0tZ2l0IGEvZGph bmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRpb25zLzAwMDVfYWx0ZXJfbGlzdHN1 YnNjcmliZXJfdXNlcm5hbWUucHkgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hpdmVzL21p Z3JhdGlvbnMvMDAwNV9hbHRlcl9saXN0c3Vic2NyaWJlcl91c2VybmFtZS5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTJjYmQ2Ci0tLSAvZGV2L251bGwKKysr IGIvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRpb25zLzAwMDVfYWx0ZXJf bGlzdHN1YnNjcmliZXJfdXNlcm5hbWUucHkKQEAgLTAsMCArMSwxOCBAQAorIyBHZW5lcmF0 ZWQgYnkgRGphbmdvIDUuMi42IG9uIDIwMjUtMDktMjIgMTg6MzkKKworZnJvbSBkamFuZ28u ZGIgaW1wb3J0IG1pZ3JhdGlvbnMsIG1vZGVscworCisKK2NsYXNzIE1pZ3JhdGlvbihtaWdy YXRpb25zLk1pZ3JhdGlvbik6CisKKyAgICBkZXBlbmRlbmNpZXMgPSBbCisgICAgICAgICgi bWFpbGFyY2hpdmVzIiwgIjAwMDRfcmVzZW5kX3JhdGVfbGltaXQiKSwKKyAgICBdCisKKyAg ICBvcGVyYXRpb25zID0gWworICAgICAgICBtaWdyYXRpb25zLkFsdGVyRmllbGQoCisgICAg ICAgICAgICBtb2RlbF9uYW1lPSJsaXN0c3Vic2NyaWJlciIsCisgICAgICAgICAgICBuYW1l PSJ1c2VybmFtZSIsCisgICAgICAgICAgICBmaWVsZD1tb2RlbHMuQ2hhckZpZWxkKG1heF9s ZW5ndGg9MTUwKSwKKyAgICAgICAgKSwKKyAgICBdCmRpZmYgLS1naXQgYS9kamFuZ28vYXJj aGl2ZXMvbWFpbGFyY2hpdmVzL21vZGVscy5weSBiL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJj aGl2ZXMvbW9kZWxzLnB5CmluZGV4IDQ0YzQ0NjkuLjUzNjJhOTggMTAwNjQ0Ci0tLSBhL2Rq YW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbW9kZWxzLnB5CisrKyBiL2RqYW5nby9hcmNo aXZlcy9tYWlsYXJjaGl2ZXMvbW9kZWxzLnB5CkBAIC0xMjIsNyArMTIyLDcgQEAgY2xhc3Mg TGlzdFN1YnNjcmliZXIobW9kZWxzLk1vZGVsKToKICAgICAjIFdlIHNldCB0aGUgdXNlcm5h bWUgb2YgdGhlIGNvbW11bml0eSBhY2NvdW50IGluc3RlYWQgb2YgYQogICAgICMgZm9yZWln biBrZXksIGJlY2F1c2UgdGhlIHVzZXIgbWlnaHQgbm90IGV4aXN0LgogICAgIGxpc3QgPSBt b2RlbHMuRm9yZWlnbktleShMaXN0LCBudWxsPUZhbHNlLCBibGFuaz1GYWxzZSwgb25fZGVs ZXRlPW1vZGVscy5DQVNDQURFKQotICAgIHVzZXJuYW1lID0gbW9kZWxzLkNoYXJGaWVsZCht YXhfbGVuZ3RoPTMwLCBudWxsPUZhbHNlLCBibGFuaz1GYWxzZSkKKyAgICB1c2VybmFtZSA9 IG1vZGVscy5DaGFyRmllbGQobWF4X2xlbmd0aD0xNTAsIG51bGw9RmFsc2UsIGJsYW5rPUZh bHNlKQogCiAgICAgY2xhc3MgTWV0YToKICAgICAgICAgdW5pcXVlX3RvZ2V0aGVyID0gKCgn bGlzdCcsICd1c2VybmFtZScpLCApCi0tIAoyLjUxLjAKCg== --------------RoIfpL2H0NYn5ehLO2K9nf3L--