]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: Add SQL_DB_FLAG_ON_DUPLICATE_KEY flag for MySQL
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 18 May 2021 14:00:44 +0000 (17:00 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Tue, 25 May 2021 09:42:16 +0000 (09:42 +0000)
src/lib-sql/driver-mysql.c
src/lib-sql/driver-test.c
src/lib-sql/sql-api.h

index 78510eabf4e3f2336a175c7d0e04c1424b4d3617..b8308cc1ab85af02d0f8053b7884039832be1a01 100644 (file)
@@ -763,7 +763,8 @@ driver_mysql_escape_blob(struct sql_db *_db ATTR_UNUSED,
 
 const struct sql_db driver_mysql_db = {
        .name = "mysql",
-       .flags = SQL_DB_FLAG_BLOCKING | SQL_DB_FLAG_POOLED,
+       .flags = SQL_DB_FLAG_BLOCKING | SQL_DB_FLAG_POOLED |
+                SQL_DB_FLAG_ON_DUPLICATE_KEY,
 
        .v = {
                .init_full = driver_mysql_init_full_v,
index 44dd7b4b1479def4a5ed53e2c21997bfb5d16fa2..f267c14a365007a0563136320841434404c218b4 100644 (file)
@@ -85,6 +85,7 @@ const char *driver_test_result_get_error(struct sql_result *result);
 
 const struct sql_db driver_test_mysql_db = {
        .name = "mysql",
+       .flags = SQL_DB_FLAG_BLOCKING | SQL_DB_FLAG_ON_DUPLICATE_KEY,
 
        .v = {
                .init = driver_test_mysql_init,
index e98a155b7375b16d7b8887a864868c1ccc3f7361..1478b1268ba9a4fd8927d49e706a62156f00f590 100644 (file)
@@ -15,6 +15,8 @@ enum sql_db_flags {
           the functions can still be used, but they're just internally
           convered into regular statements. */
        SQL_DB_FLAG_PREP_STATEMENTS     = 0x04,
+       /* Database supports INSERT .. ON DUPLICATE KEY syntax. */
+       SQL_DB_FLAG_ON_DUPLICATE_KEY    = 0x08,
 };
 
 enum sql_field_type {