GitPedia
fnc12

fnc12/sqlite_orm

❤️ SQLite ORM light header only library for modern C++

14 Releases
Latest: 1y ago
v1.9.1Latest
fnc12fnc12·1y ago·February 3, 2025
GitHub

📋 Changes

  • ⭐ Common Table Expressions for CRUD operations.
  • ⭐ Added C++ operator equivalents for bitwise operator expressions.
  • ⭐ Added the possibility of using unary minus expressions.
  • ⚙️ Improved serializing logical and bitwise "not" expressions - less parentheses.
  • ⚙️ Placed constexpr strings used for serialization into the read-only segment, which makes resulting executable binaries smaller.
  • https://github.com/fnc12/sqlite_orm/issues/1353 (thanks to @uuiid)
  • https://github.com/fnc12/sqlite_orm/issues/1354
  • Corrected serializing result set deduplicators DISTINCT and ALL.
  • + 4 more
v1.9
fnc12fnc12·1y ago·August 24, 2024
GitHub

📋 Changes

  • `match<T>(expression)` function which represents `MATCH` SQLite operator. Can be used like any other function within FTS5 queries
  • `rank()` function which represents `RANK` keyword. One can write `order_by(rank())` to get `ORDER BY rank` or plain `rank()` without `order_by` to get `RANK` keyword in your query
  • `is_equal` overload for table comparison: `is_equal<User>("Tom Gregory")` serializes to `"users" = 'Tom Gregory'`
  • `highlight<T>(a, b, c)` function which represents `HIGHLIGHT(table, a, b, c)` SQL function
  • `unindexed()` for `UNINDEXED` column constraint
  • `prefix(auto)` for `prefix=x` column constraint
  • `tokenize(auto)` for `tokenize = x`. E.g. ` tokenize("porter ascii")` produces `tokenize = 'porter ascii'`
  • `content(auto)` for `content=x`. E.g. `content("")` produces `content=''`
  • + 21 more
v1.8.2
fnc12fnc12·3y ago·March 24, 2023
GitHub

📋 Changes

  • ⚙️ Removed dependency on RTTI
  • ⚙️ Compilation time improvement https://github.com/fnc12/sqlite_orm/pull/1161
  • ⚙️ Corrected library dependencies on Catch2 and sqlite3 in CMake, which improves the process of finding or building them
  • ⚙️ Fixed a bunch of warnings (unqualified call to `std::move()` and `std::forward()`, unused parameters)
  • ⚙️ Fixed sync'ing the eponymous virtual table `dbstat`
  • ⚙️ Fixed a bunch of errors in C++20 mode in environments that lack C++20 library features
  • ⚙️ Fixed serialization of `EXISTS` clause, which must be always enclosed in parentheses
  • https://github.com/fnc12/sqlite_orm/issues/1139
  • + 3 more
v1.8.1
fnc12fnc12·3y ago·January 28, 2023
GitHub

📋 Changes

  • pinned appveyor test environment to vcpkg 2023.01.09
  • made type_is_nullable<> a specializable struct again
  • examples are now fully linkable again: chrono_binding.cpp, nullable_enum_binding.cpp, pointer_passing_interface.cpp (those examples - wrongly commented out the main() function)
  • updated unit test framework to Catch2 v3 (https://github.com/fnc12/sqlite_orm/issues/1114)
  • updated clang-format lint action on github
  • removed dangling submodule reference (https://github.com/fnc12/sqlite_orm/issues/1107)
  • made all examples compilable with Visual C++ 2015 Update 3
v1.8
fnc12fnc12·3y ago·December 9, 2022
GitHub

📋 Changes

  • `primary_key().asc().autoincrement()` makes `PRIMARY KEY ASC AUTOINCREMENT`
  • `primary_key().on_conflict_rollback()` makes `PRIMARY KEY ON CONFLICT ROLLBACK`
  • `primary_key().desc().on_conflict_abort()` makes `PRIMARY KEY DESC ON CONFLICT ABORT`
  • ⭐ `asterisk` now supports table aliases as well
  • ⭐ `storage.dump` now can accept prepared expressions to serialize them (thanks to @trueqbit)
  • ⭐ added new example file `chrono_binding.cpp`
  • ⭐ added scalar versions of `MAX` and `MIN` functions (yes we missed them; thanks to @trueqbit)
  • ⭐ added `NULLIF` and `IFNULL` core functions support (thanks to @trueqbit)
  • + 33 more
v1.7.1
fnc12fnc12·4y ago·December 26, 2021
GitHub

📋 Changes

  • Fixed compilation error `is_upsert_clause - is not a member of sqlite_orm::internal`
v1.7
fnc12fnc12·4y ago·October 28, 2021
GitHub

📋 Changes

  • `UNICODE`
  • `TYPEOF`
  • `TOTAL_CHANGES`
  • `LAST_INSERT_ROWID`
  • `IFNULL`
  • ⭐ added static `IN` feature (fixed bugs https://github.com/fnc12/sqlite_orm/issues/675 and https://github.com/fnc12/sqlite_orm/issues/512)
  • ⭐ added `storage.column_name` API
  • ⚙️ added `noexcept` getters and setter modifiers. Available with C++17 and higher
  • + 23 more
v1.61.6
fnc12fnc12·5y ago·October 8, 2020
GitHub

📋 Changes

  • `HEX`
  • `QUOTE`
  • `RANDOMBLOB`
  • `INSTR`
  • `REPLACE`
  • `ROUND`
  • `SOUNDEX`
  • `TIME`
  • + 10 more
v1.51.5
fnc12fnc12·5y ago·July 24, 2020
GitHub

📋 Changes

  • WHERE
  • GROUP BY
  • ORDER BY
  • LIMIT
  • 🐞 fixed compilation errors with older versions of sqlite3
  • 🐞 #384
  • 🐞 #369
  • 🐞 #400
v1.4
fnc12fnc12·6y ago·August 13, 2019
GitHub

📋 Changes

  • ⚙️ Added Catch2 unit tests framework into unit tests project
  • ⚙️ Added unit tests configurations for even more platforms and compilers (thanks to @Farwaykorse)
  • ⚙️ Added contributing doc
  • 🚀 Added `nullptr` binding to WHERE conditions
  • 🚀 Reduced binary size
  • 🚀 Added composite key support for `storage_t::remove` function
  • 🚀 Reduces memory consumption
  • Fixed GCC6 compilation bug
  • + 7 more
v1.3
fnc12fnc12·6y ago·August 11, 2019
GitHub

📋 Changes

  • ⭐ Column aliases</summary>
  • ⭐ `SELECT * FROM table` with syntax `storage.select(asterisk<T>())` returns `std::tuple` of mapped members' types
  • ⭐ `CAST(expression AS type)` expression with `cast<T>(expression)` syntax
  • ⭐ added `julianday` function
  • 🚀 `FOREIGN KEY` now works with composite `PRIMARY KEY`
  • 🚀 improved performance - replaced `std::shared_ptr` with `std::unique_ptr` inside storage, view iterator and aggregate functions
  • ⚙️ added Windows CI with Appveyor (thanks to @soroshsabz)
  • 🐞 Bug fixes - fixed runtime error which can be faced during `storage::iterate()` call
  • + 1 more
v1.2 Unionv1.2
fnc12fnc12·7y ago·July 4, 2018
GitHub

📋 Changes

  • UNION
  • Custom collations
  • Setters/getters
  • Easier development
  • Explicit types
  • Limits
  • Explicit INSERT
  • Static unit tests
  • + 1 more
v1.1
fnc12fnc12·8y ago·March 17, 2018
GitHub

📋 Changes

  • VACUUM
  • Arithmetic operators
  • Bug fixes
  • Warning fixes
The very firstv1.0
fnc12fnc12·8y ago·March 9, 2018
GitHub

📋 Changes

  • No raw string queries:
  • Intuitive syntax
  • Comfortable interface - one code line per single query
  • Built with modern C++14 features (no macros and external scripts)
  • CRUD support
  • Pure select query support
  • STL compatible
  • Custom types binding support
  • + 13 more