From 88a56737a5e56aeb1446b0eace87c20129ac5ca2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 18 May 2021 17:02:30 +0300 Subject: [PATCH] dict-sql: Use SQL_DB_FLAG_ON_DUPLICATE_KEY Instead of hardcoding mysql check. --- src/lib-dict-backend/dict-sql-private.h | 2 -- src/lib-dict-backend/dict-sql.c | 4 +--- 2 files changed, 1 insertion(+), 5 deletions(-) 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; } -- 2.47.3