From: Timo Sirainen Date: Tue, 18 May 2021 14:02:30 +0000 (+0300) Subject: dict-sql: Use SQL_DB_FLAG_ON_DUPLICATE_KEY X-Git-Tag: 2.3.16~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88a56737a5e56aeb1446b0eace87c20129ac5ca2;p=thirdparty%2Fdovecot%2Fcore.git dict-sql: Use SQL_DB_FLAG_ON_DUPLICATE_KEY Instead of hardcoding mysql check. --- diff --git a/src/lib-dict-backend/dict-sql-private.h b/src/lib-dict-backend/dict-sql-private.h index 8c6ea392dc..30136166c7 100644 --- a/src/lib-dict-backend/dict-sql-private.h +++ b/src/lib-dict-backend/dict-sql-private.h @@ -8,8 +8,6 @@ struct sql_dict { struct sql_db *db; const char *username; const struct dict_sql_settings *set; - - bool has_on_duplicate_key:1; }; #endif diff --git a/src/lib-dict-backend/dict-sql.c b/src/lib-dict-backend/dict-sql.c index 720a2c1d80..d212a98407 100644 --- a/src/lib-dict-backend/dict-sql.c +++ b/src/lib-dict-backend/dict-sql.c @@ -112,8 +112,6 @@ sql_dict_init(struct dict *driver, const char *uri, sql_set.driver = driver->name; sql_set.connect_string = dict->set->connect; sql_set.event_parent = set->event_parent; - /* currently pgsql and sqlite don't support "ON DUPLICATE KEY" */ - dict->has_on_duplicate_key = strcmp(driver->name, "mysql") == 0; if (sql_db_cache_new(dict_sql_db_cache, &sql_set, &dict->db, error_r) < 0) { pool_unref(&pool); @@ -1115,7 +1113,7 @@ static int sql_dict_set_query(struct sql_dict_transaction_context *ctx, str_append_str(prefix, suffix); str_append_c(prefix, ')'); - if (!dict->has_on_duplicate_key) { + if ((sql_get_flags(dict->db) & SQL_DB_FLAG_ON_DUPLICATE_KEY) == 0) { *stmt_r = sql_dict_transaction_stmt_init(ctx, str_c(prefix), ¶ms); return 0; }