[PATCH] pgarchives: bugfix: increase listsubscription username length - Mailing list pgsql-www

From Célestin Matte
Subject [PATCH] pgarchives: bugfix: increase listsubscription username length
Date
Msg-id 281f9ff6-62fd-45fa-9396-0dbf1b4abae0@cmatte.me
Whole thread Raw
Responses Re: [PATCH] pgarchives: bugfix: increase listsubscription username length
List pgsql-www
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 <module>
     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
(SELECT1 FROM t WHERE u=username) RETURNING username) SELECT 'ins',un FROM ins UNION ALL SELECT 'del',un FROM del ORDER
BY1,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

Attachment

pgsql-www by date:

Previous
From: Célestin Matte
Date:
Subject: pglister: pgarchives does not synchronize subscribers with email delivery disabled (proposed patch)
Next
From: Célestin Matte
Date:
Subject: Re: [PATCH] pgarchives: bugfix: increase listsubscription username length