changeset 22515:b6c3fc6d0cc0

dict-sql: Change "uint" type to mean 64bit instead of 32bit integer. This is likely what is usually wanted (especially in e.g. quotas). If someone actually wants it to be restricted to 32bit, we could add uint32 later on.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 15 Aug 2017 14:27:40 +0300
parents 7d189977dfe3
children 16835a26b202
files src/lib-dict/dict-sql.c
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-dict/dict-sql.c	Tue Aug 22 11:37:17 2017 +0300
+++ b/src/lib-dict/dict-sql.c	Tue Aug 15 14:27:40 2017 +0300
@@ -231,7 +231,7 @@
 		      const char **error_r)
 {
 	buffer_t *buf;
-	unsigned int num;
+	uint64_t num;
 
 	switch (value_type) {
 	case DICT_SQL_TYPE_STRING:
@@ -239,13 +239,13 @@
 			    value_suffix);
 		return 0;
 	case DICT_SQL_TYPE_UINT:
-		if (value_suffix[0] != '\0' || str_to_uint(value, &num) < 0) {
+		if (value_suffix[0] != '\0' || str_to_uint64(value, &num) < 0) {
 			*error_r = t_strdup_printf(
-				"%s field's value isn't unsigned integer: %s%s (in pattern: %s)",
+				"%s field's value isn't 64bit unsigned integer: %s%s (in pattern: %s)",
 				field_name, value, value_suffix, map->pattern);
 			return -1;
 		}
-		str_printfa(str, "%u", num);
+		str_printfa(str, "%llu", (unsigned long long)num);
 		return 0;
 	case DICT_SQL_TYPE_HEXBLOB:
 		break;