0
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-11-28 08:28:40 +01:00
gitea/models
zeripath f3fb3c6f56
Open transaction when adding Avatar email-hash pairs to the DB (#12577)
When adding Avatar email-hash pairs we simply want the DB table to
represent a Set. We don't care if the hash-pair is already present,
so we just simply Insert and ignore the error.

Unfortunately this seems to cause some DBs to log the duplicate
insert to their logs - looking like a bug a in Gitea.

Now, there is no standard way in SQL to say Insert but if there's
an error ignore it. MySQL has INSERT IGNORE, PostgreSQL >= 9.5 has
INSERT ... ON CONFLICT DO NOTHING, but I do not believe that SQLite
or MSSQL have variants.

This PR places the insert in a transaction which we are happy to fail
if there is an error - hopefully this will stop the unnecessary
logging.

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
2020-08-24 18:39:18 -04:00
..
fixtures
migrations
access_test.go
access.go
action_list.go
action_test.go
action.go
admin_test.go
admin.go
attachment_test.go
attachment.go
avatar.go Open transaction when adding Avatar email-hash pairs to the DB (#12577) 2020-08-24 18:39:18 -04:00
branches_test.go
branches.go
commit_status_test.go
commit_status.go
consistency.go
context.go
convert.go
error_oauth2.go
error.go
external_login_user.go
fixture_generation.go
fixture_test.go
gpg_key_test.go
gpg_key.go
helper_directory.go
helper_environment.go
helper.go
issue_assignees_test.go
issue_assignees.go
issue_comment_list.go
issue_comment_test.go
issue_comment.go
issue_dependency_test.go
issue_dependency.go
issue_label_test.go
issue_label.go
issue_list_test.go
issue_list.go
issue_lock.go
issue_milestone_test.go
issue_milestone.go
issue_reaction_test.go
issue_reaction.go
issue_stopwatch_test.go
issue_stopwatch.go
issue_test.go
issue_tracked_time_test.go
issue_tracked_time.go
issue_user_test.go
issue_user.go
issue_watch_test.go
issue_watch.go
issue_xref_test.go
issue_xref.go
issue.go
lfs_lock.go
lfs.go
list_options.go
log.go
login_source.go
main_test.go
migrate.go
models_test.go
models.go
notification_test.go
notification.go
oauth2_application_test.go
oauth2_application.go
oauth2.go
org_team_test.go
org_team.go
org_test.go
org.go
project_board.go
project_issue.go
project_test.go
project.go
pull_list.go
pull_sign.go
pull_test.go
pull.go
release.go
repo_activity.go
repo_branch.go
repo_collaboration_test.go
repo_collaboration.go
repo_generate_test.go
repo_generate.go
repo_indexer.go
repo_issue.go
repo_language_stats.go
repo_list_test.go
repo_list.go
repo_mirror.go
repo_permission_test.go
repo_permission.go
repo_redirect_test.go
repo_redirect.go
repo_sign.go
repo_test.go
repo_unit.go
repo_watch_test.go
repo_watch.go
repo.go
review_test.go
review.go
ssh_key_test.go
ssh_key.go
star_test.go
star.go
task.go
test_fixtures.go
token_test.go Reject duplicate AccessToken names (#10994) 2020-04-13 22:02:48 +03:00
token.go
topic_test.go
topic.go
twofactor.go
u2f_test.go
u2f.go
unit_tests.go
unit.go
update.go
upload.go
user_follow_test.go
user_follow.go
user_heatmap_test.go
user_heatmap.go
user_mail_test.go
user_mail.go
user_openid_test.go
user_openid.go
user_test.go
user.go
userlist_test.go
userlist.go
webhook_test.go
webhook.go
wiki_test.go
wiki.go