Mercurial > dovecot > core-2.2
changeset 20526:9565305a8512
lib-sql: Added sql_result_get_error_type().
For now the only special error type is SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 15 Jul 2016 16:40:05 -0500 |
parents | 49ab9d8293ba |
children | 231c1f214d40 |
files | src/lib-sql/sql-api-private.h src/lib-sql/sql-api.c src/lib-sql/sql-api.h |
diffstat | 3 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-sql/sql-api-private.h Thu Jul 14 16:16:52 2016 -0500 +++ b/src/lib-sql/sql-api-private.h Fri Jul 15 16:40:05 2016 -0500 @@ -141,6 +141,7 @@ struct sql_field_map *map; void *fetch_dest; size_t fetch_dest_size; + enum sql_result_error_type error_type; unsigned int failed:1; unsigned int failed_try_retry:1;
--- a/src/lib-sql/sql-api.c Thu Jul 14 16:16:52 2016 -0500 +++ b/src/lib-sql/sql-api.c Fri Jul 15 16:40:05 2016 -0500 @@ -323,6 +323,11 @@ return result->v.get_error(result); } +enum sql_result_error_type sql_result_get_error_type(struct sql_result *result) +{ + return result->error_type; +} + static void sql_result_not_connected_free(struct sql_result *result ATTR_UNUSED) {
--- a/src/lib-sql/sql-api.h Thu Jul 14 16:16:52 2016 -0500 +++ b/src/lib-sql/sql-api.h Fri Jul 15 16:40:05 2016 -0500 @@ -24,6 +24,13 @@ size_t offset; }; +enum sql_result_error_type { + SQL_RESULT_ERROR_TYPE_UNKNOWN = 0, + /* It's unknown whether write succeeded or not. This could be due to + a timeout or a disconnection from server. */ + SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN +}; + #define SQL_DEF_STRUCT(name, struct_name, type, c_type) \ { (type) + COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE( \ ((struct struct_name *)0)->name, c_type), \ @@ -123,6 +130,7 @@ /* Return last error message in result. */ const char *sql_result_get_error(struct sql_result *result); +enum sql_result_error_type sql_result_get_error_type(struct sql_result *result); /* Begin a new transaction. Currently you're limited to only one open transaction at a time. */