Обсуждение: Major release of advanced PostgreSQL driver written in C++
Hello, I'm excited to announce Pgfe 2.0.0, an advanced and feature rich PostgreSQL driver written in C++. Features: - fast and robust; - can be used as either header-only, static or shared library; - works with database connections in both blocking and non-blocking IO manner; - supports prepared statements with both positional and named parameters; - provides first-class support for calling functions and procedures; - supports advanced features of PostgreSQL, such as pipeline, COPY and large objects; - supports advanced error handling via exceptions and error conditions: provides enum entry for each predefined SQLSTATE; - provides advanced support for the client/server data conversion: even multidimensional PostgreSQL arrays to/from any combinations of STL containers can be performed with easy; - provides a support of dynamic construction of SQL queries; - allows to separate SQL queries and C++ code on the client side; - provides simple, robust and thread-safe connection pool. Please, see https://github.com/dmitigr/pgfe Happy Cosmonautics Day!
On Tue, Apr 12, 2022 at 12:17 PM Dmitry Igrishin <dmitigr@gmail.com> wrote: > I'm excited to announce Pgfe 2.0.0, an advanced and feature rich > PostgreSQL driver written in C++. Congrats on the release. I've been following your progress, and saw good stuff in your commits. Could you please more clearly state in the project's README.md the minimal version of C++ required, and whether the interface or impl changes with higher versions of std? Your hello-world example (extracted below), uses lambda-auto (C++14), probably variadic templates (C++11 and up, C++17 for fold-expressions), etc... So if you require C++20, that's important to know (since out of bounds to me, for example). In the same vein, what platforms / compilers / versions it's built and tested on is also useful to know upfront. (again, as an example, I need to be cross-platform and cross-compiler, including Windows and MS VS). My $0.02. And thanks for sharing your work. --DD // Executing statement with positional parameters. conn.execute([](auto&& r) { std::printf("Number %i\n", to<int>(r.data())); }, "select generate_series($1::int, $2::int)", 1, 3);
вт, 12 апр. 2022 г. в 13:59, Dominique Devienne <ddevienne@gmail.com>: > > On Tue, Apr 12, 2022 at 12:17 PM Dmitry Igrishin <dmitigr@gmail.com> wrote: > > I'm excited to announce Pgfe 2.0.0, an advanced and feature rich > > PostgreSQL driver written in C++. > > Congrats on the release. I've been following your progress, and saw > good stuff in your commits. Thank you! :-) > > Could you please more clearly state in the project's README.md the > minimal version > of C++ required, and whether the interface or impl changes with higher > versions of std? Okay, I've added the Requirements section - https://github.com/dmitigr/pgfe#requirements > > Your hello-world example (extracted below), uses lambda-auto (C++14), > probably variadic templates (C++11 and up, C++17 for > fold-expressions), etc... So if you require C++20, > that's important to know (since out of bounds to me, for example). Pgfe 2 requires C++17 compiler. > > In the same vein, what platforms / compilers / versions it's built and > tested on is also useful to know upfront. > (again, as an example, I need to be cross-platform and cross-compiler, > including Windows and MS VS). I've successfully tested Pgfe 2 with either GCC 11.2.0 and MSVC 19.30.30709 (VS 2022). (Not tested with a cross-compiler though.) > > My $0.02. And thanks for sharing your work. --DD Thank you very much again :-)