2024-01-04 22:35:41 by Patrick Welche | Files touched by this commit (3) | |
Log message:
Update libpqxx to 7.8.1
Note: given the previous choice to use
USE_CXX_FEATURES+= c++17
don't attempt to use with a program using e.g. -std=c++20
7.8.1
- Regenerate build files. Should fix ARM Mac build. (#715)
- Reinstate `<ciso646>` that MSVC can't live with or without. (#713)
7.8.0
- Streaming large data sets now benchmarks faster than similar C/libpq code!
- New `array` class for easier parsing of SQL arrays.
- Deprecating `stream_from`. Use `transaction_base::stream()`.
- Use `array_parser` only on comma-separated types, i.e. most of them. (#590)
- Bumping requirements versions: need postgres 10.
- Fix `array_parser` bug when parsing semicolon in an unquoted string.
- Make some `zview` constructors `noexcept` if `string_view` does it.
- Handle result status code for starting streaming replication. (#631)
- Faster text decoding and escaping in data streaming. (#601)
- Deprecate `basic_fieldstream` and `fieldstream`.
- Deprecate `<<` operator inserting a field into an `ostream`.
- New string conversion fields: `converts_to_string` & `converts_from_string`.
- Ran `autoupdate` (because the autotools told me to).
- Documentation tweak. (#584)
- Typo in README.md. (#586)
- Support `std::optional<std::string_view>` etc. in `stream_to`. (#596)
- Remove support for single-quoted array/composite elements. No such thing!
- Optimise out a kink in composite field parser.
- Work around build warning in MinGW: include `winsock2.h` before `windows.h`.
- Drop some redundant encoding groups.
- If CMake can't find libpq, fall back to pkg-config. (#664)
- Work around spurious compile error on g++ pre-gcc-10. (#665)
- Include `<pqxx/range>` and `<pqxx/time>` headers in \
`<pqxx/pqxx>`. (#667)
- Don't use `std::function` as deleter for smart pointers.
- Work around gcc compile error with regex + address sanitizer + analyzers.
- Fix "double free" on exit when built as shared library on Debian. (#681)
- Stop including `<ciso646>`; should be built into compilers. (#680)
- New `broken_connection` exception subclass: `protocol_violation`. (#686)
- Retired unused `blob_already_exists` exception class. (#686)
- Support for `PQinitOpenSSL()`. (#678)
- Slightly more helpful error for unsupported conversions. (#695)
- Replace some C++ feature tests with C++20 feature macros.
- Support moving of `stream_to`. (#706)
- Incorporate `source_location` in exceptions.
|
2023-09-21 11:22:28 by Paolo Vincenzo Olivo | Files touched by this commit (1) |
Log message:
databases/libpqxx: force C++17 standard to fix build.
|
2023-09-01 12:49:07 by Nia Alarie | Files touched by this commit (2) |
Log message:
libpqxx: Convert to USE_CXX_FEATURES.
|
2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247) |
Log message:
*: recursive bump for Python 3.11 as new default
|
2022-12-29 23:24:48 by Patrick Welche | Files touched by this commit (4) |
Log message:
Update libpqx to 7.7.4
You now have three basic ways to query data, all through methods on your \
transaction object:
- "query" methods execute the query, load the full result set,
and then let you iterate the rows. They convert each row to a
tuple of values of your chosen types.
- "stream" methods do the same thing, except they run the query
in a different way that's slower to start up, but starts giving
you rows right away without waiting for the full result to come
in. The rows also come in faster.
- "exec" methods execute the query, load the full result set,
and return a pqxx::result object. It contains both the result
data and metadata such as how many rows there are in the result.
Highlights:
- Build docs in `doc/html/`, no longer in `doc/html/Reference/`.
- New `result::for_stream()`: simple iteration and conversion of rows.
- New `transaction_base::for_query()` is similar, but non-streaming. (#580)
- Query data and iterate directly as client-side types: `query()`. (#580)
- New ways to query a single row! `query01()` and `query1()`. (#580)
- We now have 3 kinds of execution: "exec", "query", and \
"stream" functions.
- Use C++23 `std::unreachable()` where available.
- New class, `connecting` for nonblocking connection to the database. (#487)
- New class, `range` for SQL range types. (#490)
- Support `result::at(row_num, col_num)`.
- Support `result[row_num, col_num]` if the compiler allows it.
- `result::iter()` return value now keeps its `result` alive.
- Add C++20 concepts: `binary`, `char_string`, `char_strings`.
- New helper: `pqxx::value_type<CONTAINER>`.
- New helper: `pqxx::binary_cast`. (#450)
- Helper for generating parameter placeholders `$1`, `$2`, etc. (#443)
- Now requires `std::variant` support! No longer works with gcc7.
- New `blob::read()` using `std::span`. (#429)
- New, simpler API for large objects: `blob` ("binary large object").
For full changelog, see https://github.com/jtv/libpqxx/blob/7.7.4/NEWS
|
2021-10-26 12:10:08 by Nia Alarie | Files touched by this commit (417) |
Log message:
databases: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (some may be only fetched
conditionally):
./databases/cstore/distinfo D6.data.ros.gz
./databases/cstore/distinfo cstore0.2.tar.gz
./databases/cstore/distinfo data4.tar.gz
|
2021-10-07 15:35:53 by Nia Alarie | Files touched by this commit (417) |
Log message:
databases: Remove SHA1 distfile hashes
|
2021-01-07 17:29:30 by Patrick Welche | Files touched by this commit (4) |
Log message:
Update libpqxx to 7.3.0
7.3.0
- `stream_to` now quotes and escapes its table name.
- Removed `transaction_base::classname()`. Did anyone ever use it?
- Internal reorg of the `transaction` and `transactionfocus` hierarchies.
- Removed the only case of virtual inheritance, related to `namedclass`.
- Internal `concat()` for faster, simpler string concatentation.
- Fix compile omission in string conversions for `nullptr_t`.
- `pqxx::size_buffer()` can now size multiple values at once.
- `multi_to_string()` to convert multiple values into one `std::string`.
- Implicit `zview` constructor from `char const *`. (#389)
- Many `std::string&` parameters are now `zview` or `std::string_view`.
- Now checking statement parameter lengths for overflow.
- `#include <array>` in connection.cxx. (#394)
7.2.1
- Fix infinite loop in converting `char *` to string. (#377)
- Deprecated `namedclass`.
- Convert an entire row using `row::as<type...>()`.
- Internal rework of `field::to()` and `field::as()` functions.
- Some more warning options in maintainer mode.
- Removed the old, DocBook-based tutorial.
- Fixed wrong `query` and SQLSTATE params to some exceptions. (#378)
|
2020-10-24 13:35:37 by Patrick Welche | Files touched by this commit (3) |
Log message:
Update libpqxx to 7.2.0
7.2.0
- You can now implicitly convert a `const std::string &` to `zview`.
- Replaced some overloads for C strings and C++ strings with `zview`.
- Deprecating `binarystring`. Use `std::basic_string<std::byte>` instead!
- Array parser did not recognise escaping in unquoted values.
- gcc10 test build fix: a result iterator is not the same thing as a `row`.
- Doc fix: field size does _not_ include terminating zero. (#356)
- Fix error message in `demangle_type_name`: printed result, not raw name.
- Fix compile warning in `demangle_type_name` on GNU systems.
- Document that string conversions assume non-null values.
- Start playing with C++20 _concepts._
- Sketch out concepts-based `PQconnectdbParams` support. (#343)
- Add missing link to "datatypes" documentation. (#346)
- Supports `to_string`, `stream_to`, etc. for `binarystring`. (#312)
- Fixed infinite recursion when using `std::optional` in `stream_to`. (#364)
- Home-rolled hex-escaping. Saves an allocation.
- Catch floating-point negative overflow in `check_cast`, not underflow.
- Bit more work on CMake build doc. (#318)
- Typo in `datatypes.md`: `nullness`, not `nullness_traits`. (#353)
- Fixed test names map in `tests/runner.cxx`. (#354)
- Integral `from_string` now accept leading whitespace, as in composite types.
- Experimental support basics for composite types. (#355)
- Use `stream_from` without knowing the number of fields. (#357)
- Global `size_buffer` function.
- `quote()` now works for always-null types without conversions defined.
- `std::nullopt` now converts to an SQL null.
- Skip quoting and escaping array/composite fields of "safe" types.
- New type trait: `is_unquoted_safe`.
- Forbid invalid specialisations of `query_value`.
- Fixed `mktemp` invocation that broke on FreeBSD.
- Avoid unneeded encode/decode step on more binary data.
- If `__cxa_demangle` fails, fall back on raw type name. (#361)
|
2020-09-15 11:48:26 by Patrick Welche | Files touched by this commit (6) |
Log message:
Update libpqxx to 7.1.2
Now requires c++17.
Headline:
Easier, faster, neater: the transaction classes now have a stream
method. You specify a query and the C++ types to which you want
the fields converted, and you get to iterate over the rows. And
thanks to C++14 structured bindings, you can read the fields
straight into separate local variables:
for (auto const [id, name]:
tx.stream<int, std::string_view>("SELECT id, name FROM \
thing"))
{
process(id, name);
}
For super-fast access to a field's text-format contents, convert
it to std::string_view. It'll give you an immediate reference
to the buffer containing the field. Beware though: the buffer
only holds that text for the one iteration. The next iteration
will overwrite it.
Full list of changes at:
https://github.com/jtv/libpqxx/blob/7.1.2/NEWS
|