-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minor GPKG/SQLite Reorganization #670
Conversation
Could you please note what the linkage error was in the PR description? |
6fb9b87
to
fc2fee4
Compare
Because diffing is not going to line things up nicely, were there any substantive changes in the implementation of |
No, the only changes made were that I renamed member variables of the iterator and database classes, but the member function logic is the same. I did rename 2 member functions as well, |
bad989e
fc2fee4
to
bad989e
Compare
Moving back to draft because of compiling time issues... most likely #567 |
This PR aims to solve a linkage error seen when enabling tests by simplifying the sqlite wrapper public interface and aims to reorganize the SQLite wrapper into a cleaner structure. Additionally, all GPKG and SQLite functionality is now enclosed inside the
ngen
namespace (i.e.ngen::sqlite
andngen::geopackage
).Previous error:
This error most likely resulted from my accidental implementation of the templated
query
function inside a source file, rather than directly in the header, i.e.:ngen/include/geopackage/NGen_SQLite.hpp
Lines 224 to 225 in 7d91513
ngen/src/geopackage/sqlite/database.cpp
Lines 88 to 108 in 7d91513
Changes
sqlite
->ngen::sqlite::database
sqlite_iter
->ngen::sqlite::database::iterator
sqlite_deleter
->ngen::sqlite::database::deleter
database::query
now has only two overloads. One isquery(std::string, span<std::string>)
, with the second argument defaulting to an empty span. This is for code deduplication. The second overload is a templated function that takes a parameter pack of strings, and constructs the span in place. This overload is only enabled when all parameter pack arguments are convertible tostd::string
.ngen::geopackage
implementations separate to help with incremental compilation, and to aid future debugging of the optimization issue PR #522 Compiler Optimization Issue #567.ngen::srs::epsg
and new header/sourceproj.{hpp/cpp}
.Testing
All unit tests passed locally using GCC 13.1.1, Clang 16.0.6, and IntelLLVM 2023.
Checklist
Target Environment support