mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
aurblup: blacklist processing query changes
* Do all list building and freeing outside of the transaction to keep it as short as possible. * Remove ability to blacklist without transactions as we now only support InnoDB/transactional engines with proper relations. * No need to turn autocommit off; BEGIN TRANSACTION operates regardless of this setting. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
0f994df357
commit
0cb493ef2a
2 changed files with 5 additions and 21 deletions
|
@ -122,19 +122,11 @@ blacklist_sync(alpm_list_t *pkgs_cur, alpm_list_t *pkgs_new)
|
|||
{
|
||||
alpm_list_t *pkgs_add, *pkgs_rem, *p;
|
||||
|
||||
#if MYSQL_USE_TRANSACTIONS
|
||||
if (mysql_autocommit(c, 0))
|
||||
mysql_die("failed to turn MySQL autocommit off: %s\n");
|
||||
pkgs_add = alpm_list_diff(pkgs_new, pkgs_cur, (alpm_list_fn_cmp)strcmp);
|
||||
pkgs_rem = alpm_list_diff(pkgs_cur, pkgs_new, (alpm_list_fn_cmp)strcmp);
|
||||
|
||||
if (mysql_query(c, "START TRANSACTION;"))
|
||||
mysql_die("failed to start MySQL transaction: %s\n");
|
||||
#else
|
||||
if (mysql_query(c, "LOCK TABLES PackageBlacklist WRITE;"))
|
||||
mysql_die("failed to lock MySQL table: %s\n");
|
||||
#endif
|
||||
|
||||
pkgs_add = alpm_list_diff(pkgs_new, pkgs_cur, (alpm_list_fn_cmp)strcmp);
|
||||
pkgs_rem = alpm_list_diff(pkgs_cur, pkgs_new, (alpm_list_fn_cmp)strcmp);
|
||||
|
||||
for (p = pkgs_add; p; p = alpm_list_next(p))
|
||||
blacklist_add(alpm_list_getdata(p));
|
||||
|
@ -142,16 +134,11 @@ blacklist_sync(alpm_list_t *pkgs_cur, alpm_list_t *pkgs_new)
|
|||
for (p = pkgs_rem; p; p = alpm_list_next(p))
|
||||
blacklist_remove(alpm_list_getdata(p));
|
||||
|
||||
alpm_list_free(pkgs_add);
|
||||
alpm_list_free(pkgs_rem);
|
||||
|
||||
#if MYSQL_USE_TRANSACTIONS
|
||||
if (mysql_query(c, "COMMIT;"))
|
||||
mysql_die("failed to commit MySQL transaction: %s\n");
|
||||
#else
|
||||
if (mysql_query(c, "UNLOCK TABLES;"))
|
||||
mysql_die("failed to unlock MySQL tables: %s\n");
|
||||
#endif
|
||||
|
||||
alpm_list_free(pkgs_add);
|
||||
alpm_list_free(pkgs_rem);
|
||||
}
|
||||
|
||||
alpm_list_t *
|
||||
|
|
|
@ -6,9 +6,6 @@
|
|||
#define CONFIG_KEY_PASSWD "AUR_db_pass"
|
||||
#define CONFIG_KEY_DB "AUR_db_name"
|
||||
|
||||
/* unset this to use "LOCK TABLE" instead of transactions */
|
||||
#define MYSQL_USE_TRANSACTIONS 1
|
||||
|
||||
/* libalpm options */
|
||||
#define ALPM_DBPATH "/var/lib/aurblup/"
|
||||
#define ALPM_MIRROR "ftp://mirrors.kernel.org/archlinux/%s/os/i686"
|
||||
|
|
Loading…
Add table
Reference in a new issue