# HG changeset patch # User Søren Løvborg # Date 1468588567 -7200 # Node ID 92b4b392b0dfa2fa98250aaad24f72537c844127 # Parent 5d524b9246d819fb03f405d679dfdce6acac232a 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. diff -r 5d524b9246d8 -r 92b4b392b0df kallithea/model/db.py --- 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 = ' » ' - 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)