From 73d12ad230a4ef4694f8d58b249ec6c2804ee324 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 5 Apr 2016 22:56:27 -0400 Subject: [PATCH] fix storage quoting with long long values On 32-bit systems w/64-bit time_t's (like the x32 ABI) we fail to build: ../src/storage/sql_storage.cc: In member function 'virtual void SQLStorage::autoscanUpdateLM(zmm::Ref)': ../src/storage/sql_storage.cc:2139:81: error: call of overloaded 'quote(time_t)' is ambiguous << " SET " << TQ("last_modified") << '=' << quote(adir->getPreviousLMT()) Handle long long types explicitly to fix that. --- src/storage/mysql/mysql_storage.h | 1 + src/storage/sql_storage.h | 1 + src/storage/sqlite3/sqlite3_storage.h | 1 + 3 files changed, 3 insertions(+) diff --git a/src/storage/mysql/mysql_storage.h b/src/storage/mysql/mysql_storage.h index c377d76..eaec12c 100644 --- a/src/storage/mysql/mysql_storage.h +++ b/src/storage/mysql/mysql_storage.h @@ -55,6 +55,7 @@ private: virtual inline zmm::String quote(unsigned long val) { return zmm::String::from(val); } virtual inline zmm::String quote(bool val) { return zmm::String(val ? '1' : '0'); } virtual inline zmm::String quote(char val) { return quote(zmm::String(val)); } + virtual inline zmm::String quote(long long val) { return zmm::String::from(val); } virtual zmm::Ref select(const char *query, int length); virtual int exec(const char *query, int length, bool getLastInsertId = false); virtual void storeInternalSetting(zmm::String key, zmm::String value); diff --git a/src/storage/sql_storage.h b/src/storage/sql_storage.h index 833693a..bd1afc3 100644 --- a/src/storage/sql_storage.h +++ b/src/storage/sql_storage.h @@ -81,6 +81,7 @@ public: virtual zmm::String quote(unsigned long val) = 0; virtual zmm::String quote(bool val) = 0; virtual zmm::String quote(char val) = 0; + virtual zmm::String quote(long long val) = 0; virtual zmm::Ref select(const char *query, int length) = 0; virtual int exec(const char *query, int length, bool getLastInsertId = false) = 0; diff --git a/src/storage/sqlite3/sqlite3_storage.h b/src/storage/sqlite3/sqlite3_storage.h index d825bd4..be6294d 100644 --- a/src/storage/sqlite3/sqlite3_storage.h +++ b/src/storage/sqlite3/sqlite3_storage.h @@ -160,6 +160,7 @@ private: virtual inline zmm::String quote(unsigned long val) { return zmm::String::from(val); } virtual inline zmm::String quote(bool val) { return zmm::String(val ? '1' : '0'); } virtual inline zmm::String quote(char val) { return quote(zmm::String(val)); } + virtual inline zmm::String quote(long long val) { return zmm::String::from(val); } virtual zmm::Ref select(const char *query, int length); virtual int exec(const char *query, int length, bool getLastInsertId = false); virtual void storeInternalSetting(zmm::String key, zmm::String value); -- 2.7.4