4 ms·
If C++ is your thing, https://github.com/yangacer/sqlite3cpp https://github.com/yangacer/sqlite3cpp might be interesting. It intelligently wraps C++ functions
by yangacer 6y ago
If C++ is your thing,
https://github.com/yangacer/sqlite3cpp https://github.com/yangacer/sqlite3cpp
might be interesting. It intelligently wraps C++ functions as SQL functions.
Author here and looks forward feedbacks :).
- tlb 6y agoI just wrote something using https://github.com/SqliteModernCpp/sqlite_modern_cpp https://github.com/SqliteModernCpp/sqlite_modern_cpp, which I chose after 10 minutes of searching around. Should I have used yours instead? How should I decide?
- yangacer 6y agoThe good news is that you could use both libraries. `sqlite3cpp::database` supports "attaching" mode that won't close a `sqlite3` instance after sqlite3cpp::database going out of scope. Here is an example for coexisting with SqliteModernCpp: // db inited by SqliteModernCpp sqlite::database db(":memory:"); { sqlite3cpp::database attached_db(db.connection().get()); // create the SQL function as you like attached_db.create_scalar("mutiply", [](int x, int y) { return x * y; }); } // attached_db is going out of scope // SQL scalar function `multiply` is still availble db << "CREATE TABLE numbers (n1 INTEGER, n2 INTEGER);"; db << "SELECT multiply(n1, n2) from numbers;"; Note that SqliteModernCpp provides customization of SQL function as well as sqlite3cpp. Though it doesn't seem to have aggregate function supporting (i.e. sqlite3cpp::database::create_aggregate).