Read database result row by row: stackless coroutines
Description:
Explore the design and implementation of an asynchronous DBMS client library in this comprehensive conference talk from C++Now 2018. Delve into efficient database communication, type-safe queries, and result handling. Learn about customization points, library extensions, and performance optimization techniques. Discover how to implement strongly typed requests and responses without boilerplate, and extend the library's type system using Boost.Hana and Boost.Fusion. Examine the benefits of C++17 for flexibility and type safety, and explore the limits of constexpr in database interactions. Gain insights into asynchronous programming techniques using Boost.Asio and Networking TS, and understand how concepts aid in providing an efficient, customizable mechanism. The talk covers the implementation of these ideas in the production-ready PostgreSQL client library, ozo, which supports binary protocol, retries, transactions, and streaming. Finally, learn about testing strategies using GUnit and get a comprehensive overview of database communication models, connection abilities, query building, and result handling using modern C++ techniques.
Read more
Design and Implementation of DBMS Asynchronous Client Library