buildmonitor_db.do_query(query, (status, reason, existing_id))
def update_repository(repo_name):
+ query = "INSERT INTO git_repository (name) SELECT * FROM (SELECT %s) AS tmp \
+ WHERE NOT EXISTS (SELECT name FROM git_repository WHERE name = %s) LIMIT 1"
+ buildmonitor_db.do_query(query, (repo_name, repo_name))
- query = 'INSERT INTO git_repository (name) VALUES(%s)'
- buildmonitor_db.do_query(query, (repo_name,))
def update_commit(git_path_id, commit_id, commit_date, committer, commit_message):
- query = 'INSERT INTO git_commit (git_repository_id, commit_id, committer, commit_date, commit_message) \
- VALUES(%s, %s, %s, %s, %s)'
- buildmonitor_db.do_query(query, ('%d' % git_path_id, commit_id, committer, commit_date, commit_message))
+ query = "INSERT INTO git_commit (git_repository_id, commit_id, committer, commit_date, commit_message) \
+ SELECT * FROM (SELECT %s, %s, %s, %s, %s) AS tmp \
+ WHERE NOT EXISTS (SELECT git_repository_id, commit_id \
+ FROM git_commit WHERE git_repository_id = %s AND commit_id = %s) \
+ LIMIT 1"
+ buildmonitor_db.do_query(query, ('%d' % git_path_id, commit_id, committer, commit_date, commit_message, '%d' % git_path_id, commit_id))
def update_tag(git_commit_id, tag_name, tag_revision, tagger, tag_date, tag_message):
- query = 'INSERT INTO git_tag (git_commit_id, tag_name, tag_revision, tagger, tag_date, tag_message) \
- VALUES(%s, %s, %s, %s, %s, %s)'
buildmonitor_db.do_query(query, ('%d' % git_commit_id, tag_name, tag_revision, tagger, tag_date, tag_message))
+ query = "INSERT INTO git_tag (git_commit_id, tag_name, tag_revision, tagger, tag_date, tag_message) \
+ SELECT * FROM (SELECT %s, %s, %s, %s, %s, %s) AS tmp \
+ WHERE NOT EXISTS (SELECT git_commit_id, tag_revision \
+ FROM git_tag WHERE git_commit_id = %s AND tag_revision = %s) LIMIT 1"
+ buildmonitor_db.do_query(query, ('%d' % git_commit_id, tag_name, tag_revision, tagger, tag_date, tag_message, '%d' % git_commit_id, tag_revision))
def get_git_path_id(git_path):
query = 'SELECT id FROM git_repository WHERE name=%s'
if duplicated is not None and len(duplicated) > 0:
# Add git repository
for git_repo in duplicated:
- query = "INSERT INTO git_repository (name) VALUES (%s)"
- buildmonitor_db.do_query(query, (git_repo, ))
-
+ query = "INSERT INTO git_repository (name) SELECT * FROM (SELECT %s) AS tmp WHERE NOT EXISTS (SELECT name FROM git_repository WHERE name = %s) LIMIT 1"
+ buildmonitor_db.do_query(query, (git_repo, git_repo))
+
git_repo_str = "%s" % "','".join(duplicated)
param_count_str = ','.join(["%s"] * len(duplicated))
query = "SELECT id FROM git_repository WHERE name IN (%s)" % param_count_str