diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-05-23 00:42:10 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2021-05-23 00:48:25 +0200 |
| commit | 1720b0586cfe0b4e0b32fd8b3ca5b9ef1799d2bc (patch) | |
| tree | a71ba2025ea206bb0216d418b808edbe7b48fc1c /src/iso19111/factory.cpp | |
| parent | bfa170c032c9d0a394197c4e25c4b15bda60087b (diff) | |
| download | PROJ-1720b0586cfe0b4e0b32fd8b3ca5b9ef1799d2bc.tar.gz PROJ-1720b0586cfe0b4e0b32fd8b3ca5b9ef1799d2bc.zip | |
Database: add a ANALYZE step during proj.db creation
This will create the sqlite_stat* table (generally sqlite_stat1). This
speeds up a bit the test suite. Runtime of ``make test_cpp_api-check``
goes from the range [14.0 s, 14.6 s] to [13.0s, 13.5s] on my machine.
Diffstat (limited to 'src/iso19111/factory.cpp')
| -rw-r--r-- | src/iso19111/factory.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 7681a2ec..5eb6d012 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -819,7 +819,9 @@ std::vector<std::string> DatabaseContext::Private::getDatabaseStructure() { : "db_0."); const auto sqlBegin("SELECT sql||';' FROM " + dbNamePrefix + "sqlite_master WHERE type = "); - const char *const objectTypes[] = {"'table'", "'view'", "'trigger'"}; + const char *const objectTypes[] = {"'table' AND " + "name NOT LIKE 'sqlite_stat%'", + "'view'", "'trigger'"}; std::vector<std::string> res; for (const auto &objectType : objectTypes) { const auto sqlRes = run(sqlBegin + objectType); @@ -846,7 +848,8 @@ void DatabaseContext::Private::attachExtraDatabases( assert(sqlite_handle_); auto tables = - run("SELECT name FROM sqlite_master WHERE type IN ('table', 'view')"); + run("SELECT name FROM sqlite_master WHERE type IN ('table', 'view') " + "AND name NOT LIKE 'sqlite_stat%'"); std::map<std::string, std::vector<std::string>> tableStructure; for (const auto &rowTable : tables) { auto tableName = rowTable[0]; |
