Skip to content

v2.0.1 – Stable reflection queries and example cleanup

Choose a tag to compare

@g2px1 g2px1 released this 03 Nov 11:53
· 76 commits to main since this release

This release finalizes reflection-based query stability and resolves several
edge cases in coroutine and lambda usage under GCC 13+.

🧩 Core Changes

  • Fixed internal compiler errors triggered by local struct definitions and
    inline std::tuple with std::optional inside coroutines.
  • Reflection-based queries (query_reflect, exec_reflect) are now fully
    stable and GCC-compatible.
  • Adjusted reflection mapper to correctly handle aggregates passed from
    lambdas and transactions.

⚙️ Example & Schema

  • Updated example to remove all local struct definitions.
  • Replaced tuple inserts with aggregate-based inserts for clarity.
  • Fixed invalid SQL in ensure_schema() (extra semicolons removed).
  • Added explicit std::string conversion in query_awaitable() calls to
    support C++23’s explicit string_view constructor.

🔒 Reliability

  • Safe connection cleanup added in run_notifications().
  • Verified transaction rollback/commit behavior under nested SAVEPOINTs.

✅ Result

Upq now builds cleanly with GCC 13+, Clang 17+, and MSVC 2022.
Reflection queries are production-stable