aboutsummaryrefslogtreecommitdiff
path: root/src/sqlite3_utils.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-05-15 11:58:05 +0200
committerGitHub <noreply@github.com>2020-05-15 11:58:05 +0200
commit6c5164eb49bdb6fcc9bf976db33c1b0a4bf5d7ad (patch)
tree30e995477bdeae2ccf9038dc6f2d0759c41f2447 /src/sqlite3_utils.cpp
parent40bceca79f71d88fbc4953fa6c2bb6b6ed89c473 (diff)
parent77a8a9e01c3cdfde0f8118fa9e72d899c51c154d (diff)
downloadPROJ-6c5164eb49bdb6fcc9bf976db33c1b0a4bf5d7ad.tar.gz
PROJ-6c5164eb49bdb6fcc9bf976db33c1b0a4bf5d7ad.zip
Merge pull request #2223 from rouault/fix_2221
Avoid 2 warnings about missing database indices
Diffstat (limited to 'src/sqlite3_utils.cpp')
-rw-r--r--src/sqlite3_utils.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/sqlite3_utils.cpp b/src/sqlite3_utils.cpp
index 7006674f..84bbb2ce 100644
--- a/src/sqlite3_utils.cpp
+++ b/src/sqlite3_utils.cpp
@@ -133,8 +133,25 @@ static int VFSCustomAccess(sqlite3_vfs *vfs, const char *zName, int flags,
// ---------------------------------------------------------------------------
+// SQLite3 logging infrastructure
+static void projSqlite3LogCallback(void *, int iErrCode, const char *zMsg) {
+ fprintf(stderr, "SQLite3 message: (code %d) %s\n", iErrCode, zMsg);
+}
+
std::unique_ptr<SQLite3VFS> SQLite3VFS::create(bool fakeSync, bool fakeLock,
bool skipStatJournalAndWAL) {
+
+ // Install SQLite3 logger if PROJ_LOG_SQLITE3 env var is defined
+ struct InstallSqliteLogger {
+ InstallSqliteLogger() {
+ if (getenv("PROJ_LOG_SQLITE3") != nullptr) {
+ sqlite3_config(SQLITE_CONFIG_LOG, projSqlite3LogCallback,
+ nullptr);
+ }
+ }
+ };
+ static InstallSqliteLogger installSqliteLogger;
+
// Call to sqlite3_initialize() is normally not needed, except for
// people building SQLite3 with -DSQLITE_OMIT_AUTOINIT
sqlite3_initialize();