changeset 6011:92b4b392b0df

db: remove redundant unique constraints from primary keys Primary keys are always unique, both in the SQL standard and in SQLite, MySQL and PostgreSQL. Setting unique=True cases SQLAlchemy to explicitly add additional, redundant UNIQUE indexes to the columns, which is at best needless metadata overhead, and at worst causes the database engine to waste time maintaining an extra index that serves no purpose.
author Søren Løvborg <sorenl@unity3d.com>
date Fri, 15 Jul 2016 15:16:07 +0200
parents 5d524b9246d8
children 4f4a73acd6b3
files kallithea/model/db.py
diffstat 1 files changed, 31 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/model/db.py	Fri Jul 15 21:17:16 2016 +0200
+++ b/kallithea/model/db.py	Fri Jul 15 15:16:07 2016 +0200
@@ -179,7 +179,7 @@
     }
     DEFAULT_UPDATE_URL = ''
 
-    app_settings_id = Column(Integer(), unique=True, primary_key=True)
+    app_settings_id = Column(Integer(), primary_key=True)
     app_settings_name = Column(String(255), nullable=False, unique=True)
     _app_settings_value = Column("app_settings_value", Unicode(4096), nullable=False)
     _app_settings_type = Column("app_settings_type", String(255), nullable=True) # FIXME: not nullable?
@@ -344,7 +344,7 @@
     HOOK_PULL = 'outgoing.pull_logger'
     HOOK_PRE_PULL = 'preoutgoing.pre_pull'
 
-    ui_id = Column(Integer(), unique=True, primary_key=True)
+    ui_id = Column(Integer(), primary_key=True)
     ui_section = Column(String(255), nullable=False)
     ui_key = Column(String(255), nullable=False)
     ui_value = Column(String(255), nullable=True) # FIXME: not nullable?
@@ -408,7 +408,7 @@
     DEFAULT_USER = 'default'
     DEFAULT_GRAVATAR_URL = 'https://secure.gravatar.com/avatar/{md5email}?d=identicon&s={size}'
 
-    user_id = Column(Integer(), unique=True, primary_key=True)
+    user_id = Column(Integer(), primary_key=True)
     username = Column(String(255), nullable=False, unique=True)
     password = Column(String(255), nullable=False)
     active = Column(Boolean(), nullable=False, default=True)
@@ -711,7 +711,7 @@
     )
     __mapper_args__ = {}
 
-    user_api_key_id = Column(Integer(), unique=True, primary_key=True)
+    user_api_key_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     api_key = Column(String(255), nullable=False, unique=True)
     description = Column(UnicodeText(), nullable=False)
@@ -735,7 +735,7 @@
     )
     __mapper_args__ = {}
 
-    email_id = Column(Integer(), unique=True, primary_key=True)
+    email_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     _email = Column("email", String(255), nullable=False, unique=True)
     user = relationship('User')
@@ -765,7 +765,7 @@
     )
     __mapper_args__ = {}
 
-    ip_id = Column(Integer(), unique=True, primary_key=True)
+    ip_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     ip_addr = Column(String(255), nullable=False)
     active = Column(Boolean(), nullable=False, default=True)
@@ -793,7 +793,7 @@
         _table_args_default_dict,
     )
 
-    user_log_id = Column(Integer(), unique=True, primary_key=True)
+    user_log_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True)
     username = Column(String(255), nullable=False)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=True)
@@ -821,7 +821,7 @@
         _table_args_default_dict,
     )
 
-    users_group_id = Column(Integer(), unique=True, primary_key=True)
+    users_group_id = Column(Integer(), primary_key=True)
     users_group_name = Column(Unicode(255), nullable=False, unique=True)
     user_group_description = Column(Unicode(10000), nullable=True) # FIXME: not nullable?
     users_group_active = Column(Boolean(), nullable=False)
@@ -910,7 +910,7 @@
         _table_args_default_dict,
     )
 
-    users_group_member_id = Column(Integer(), unique=True, primary_key=True)
+    users_group_member_id = Column(Integer(), primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
 
@@ -931,7 +931,7 @@
 
     PREFIX = 'ex_'  # prefix used in form to not conflict with already existing fields
 
-    repo_field_id = Column(Integer(), unique=True, primary_key=True)
+    repo_field_id = Column(Integer(), primary_key=True)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
     field_key = Column(String(250), nullable=False)
     field_label = Column(String(1024), nullable=False)
@@ -974,7 +974,7 @@
     STATE_PENDING = 'repo_state_pending'
     STATE_ERROR = 'repo_state_error'
 
-    repo_id = Column(Integer(), unique=True, primary_key=True)
+    repo_id = Column(Integer(), primary_key=True)
     repo_name = Column(Unicode(255), nullable=False, unique=True)
     repo_state = Column(String(255), nullable=False)
 
@@ -1492,7 +1492,7 @@
 
     SEP = ' &raquo; '
 
-    group_id = Column(Integer(), unique=True, primary_key=True)
+    group_id = Column(Integer(), primary_key=True)
     group_name = Column(Unicode(255), nullable=False, unique=True)
     group_parent_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=True)
     group_description = Column(Unicode(10000), nullable=False)
@@ -1753,7 +1753,7 @@
         'hg.create.repository': 1
     }
 
-    permission_id = Column(Integer(), unique=True, primary_key=True)
+    permission_id = Column(Integer(), primary_key=True)
     permission_name = Column(String(255), nullable=False)
 
     def __unicode__(self):
@@ -1800,7 +1800,7 @@
         _table_args_default_dict,
     )
 
-    repo_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    repo_to_perm_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
@@ -1829,7 +1829,7 @@
         _table_args_default_dict,
     )
 
-    user_user_group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    user_user_group_to_perm_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
     user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
@@ -1858,7 +1858,7 @@
         _table_args_default_dict,
     )
 
-    user_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    user_to_perm_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
 
@@ -1876,7 +1876,7 @@
         _table_args_default_dict,
     )
 
-    users_group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    users_group_to_perm_id = Column(Integer(), primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
@@ -1906,7 +1906,7 @@
         _table_args_default_dict,
     )
 
-    user_group_user_group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    user_group_user_group_to_perm_id = Column(Integer(), primary_key=True)
     target_user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
     user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
@@ -1935,7 +1935,7 @@
         _table_args_default_dict,
     )
 
-    users_group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    users_group_to_perm_id = Column(Integer(), primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
 
@@ -1950,7 +1950,7 @@
         _table_args_default_dict,
     )
 
-    group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    group_to_perm_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
@@ -1976,7 +1976,7 @@
         _table_args_default_dict,
     )
 
-    users_group_repo_group_to_perm_id = Column(Integer(), unique=True, primary_key=True)
+    users_group_repo_group_to_perm_id = Column(Integer(), primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False)
     group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False)
@@ -2001,7 +2001,7 @@
          _table_args_default_dict,
     )
 
-    stat_id = Column(Integer(), unique=True, primary_key=True)
+    stat_id = Column(Integer(), primary_key=True)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True)
     stat_on_revision = Column(Integer(), nullable=False)
     commit_activity = Column(LargeBinary(1000000), nullable=False)#JSON data
@@ -2019,7 +2019,7 @@
         _table_args_default_dict,
     )
 
-    user_following_id = Column(Integer(), unique=True, primary_key=True)
+    user_following_id = Column(Integer(), primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True)
     follows_user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True)
@@ -2043,7 +2043,7 @@
     )
 
     # cache_id, not used
-    cache_id = Column(Integer(), unique=True, primary_key=True)
+    cache_id = Column(Integer(), primary_key=True)
     # cache_key as created by _get_cache_key
     cache_key = Column(Unicode(255), nullable=False, unique=True)
     # cache_args is a repo_name
@@ -2168,7 +2168,7 @@
         _table_args_default_dict,
     )
 
-    comment_id = Column(Integer(), unique=True, primary_key=True)
+    comment_id = Column(Integer(), primary_key=True)
     repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
     revision = Column(String(40), nullable=True)
     pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=True)
@@ -2243,7 +2243,7 @@
     ]
     STATUSES_DICT = dict(STATUSES)
 
-    changeset_status_id = Column(Integer(), unique=True, primary_key=True)
+    changeset_status_id = Column(Integer(), primary_key=True)
     repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
     revision = Column(String(40), nullable=True)
@@ -2285,7 +2285,7 @@
     STATUS_NEW = u'new'
     STATUS_CLOSED = u'closed'
 
-    pull_request_id = Column(Integer(), unique=True, primary_key=True)
+    pull_request_id = Column(Integer(), primary_key=True)
     title = Column(Unicode(255), nullable=False)
     description = Column(UnicodeText(), nullable=False)
     status = Column(Unicode(255), nullable=False, default=STATUS_NEW) # only for closedness, not approve/reject/etc
@@ -2384,7 +2384,7 @@
         self.user = user
         self.pull_request = pull_request
 
-    pull_requests_reviewers_id = Column(Integer(), unique=True, primary_key=True)
+    pull_requests_reviewers_id = Column(Integer(), primary_key=True)
     pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=False)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
 
@@ -2406,7 +2406,7 @@
     TYPE_PULL_REQUEST = u'pull_request'
     TYPE_PULL_REQUEST_COMMENT = u'pull_request_comment'
 
-    notification_id = Column(Integer(), unique=True, primary_key=True)
+    notification_id = Column(Integer(), primary_key=True)
     subject = Column(Unicode(512), nullable=False)
     body = Column(UnicodeText(), nullable=False)
     created_by = Column(Integer(), ForeignKey('users.user_id'), nullable=False)
@@ -2485,7 +2485,7 @@
     GIST_PRIVATE = u'private'
     DEFAULT_FILENAME = u'gistfile1.txt'
 
-    gist_id = Column(Integer(), unique=True, primary_key=True)
+    gist_id = Column(Integer(), primary_key=True)
     gist_access_id = Column(Unicode(250), nullable=False)
     gist_description = Column(UnicodeText(), nullable=False)
     gist_owner = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=False)
@@ -2569,6 +2569,6 @@
         _table_args_default_dict,
     )
 
-    repository_id = Column(String(250), unique=True, primary_key=True)
+    repository_id = Column(String(250), primary_key=True)
     repository_path = Column(Text, nullable=False)
     version = Column(Integer, nullable=False)