Barry Warsaw pushed to branch master at mailman / Mailman

Commits:
6f0b236e by Aurélien Bompard at 2016-01-14T15:36:26+01:00
Add indexes on the MailingList table

Ensure that list_id is unique, and add indexes on two commonly
filtered-on fields: list_name and mail_host.

- - - - -


2 changed files:

- + src/mailman/database/alembic/versions/781a38e146bf_mailinglist_indexes.py
- src/mailman/model/mailinglist.py


Changes:

=====================================
src/mailman/database/alembic/versions/781a38e146bf_mailinglist_indexes.py
=====================================
--- /dev/null
+++ b/src/mailman/database/alembic/versions/781a38e146bf_mailinglist_indexes.py
@@ -0,0 +1,31 @@
+"""MailingList indexes
+
+Revision ID: 781a38e146bf
+Revises: 70af5a4e5790
+Create Date: 2016-01-14 15:34:29.734429
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '781a38e146bf'
+down_revision = '70af5a4e5790'
+
+from alembic import op
+
+
+def upgrade():
+    op.create_index(
+        op.f('ix_mailinglist_list_id'), 'mailinglist', ['list_id'],
+        unique=True)
+    op.create_index(
+        op.f('ix_mailinglist_list_name'), 'mailinglist', ['list_name'],
+        unique=False)
+    op.create_index(
+        op.f('ix_mailinglist_mail_host'), 'mailinglist', ['mail_host'],
+        unique=False)
+
+
+def downgrade():
+    op.drop_index(op.f('ix_mailinglist_mail_host'), table_name='mailinglist')
+    op.drop_index(op.f('ix_mailinglist_list_name'), table_name='mailinglist')
+    op.drop_index(op.f('ix_mailinglist_list_id'), table_name='mailinglist')


=====================================
src/mailman/model/mailinglist.py
=====================================
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -82,9 +82,9 @@ class MailingList(Model):
     # are currently missing.
 
     # List identity
-    list_name = Column(Unicode)
-    mail_host = Column(Unicode)
-    _list_id = Column('list_id', Unicode)
+    list_name = Column(Unicode, index=True)
+    mail_host = Column(Unicode, index=True)
+    _list_id = Column('list_id', Unicode, index=True, unique=True)
     allow_list_posts = Column(Boolean)
     include_rfc2369_headers = Column(Boolean)
     advertised = Column(Boolean)



View it on GitLab: 
https://gitlab.com/mailman/mailman/commit/6f0b236ea33ffe2899e813dc9bcbc58da0cbefee
_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to