Thread: Major release of advanced PostgreSQL driver written in C++

Major release of advanced PostgreSQL driver written in C++

From
Dmitry Igrishin
Date:
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!



Re: Major release of advanced PostgreSQL driver written in C++

From
Dominique Devienne
Date:
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);



Re: Major release of advanced PostgreSQL driver written in C++

From
Dmitry Igrishin
Date:
вт, 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 :-)