| Age | Commit message (Collapse) | Author | Files | Lines |
|
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)
|
|
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)
|
|
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
|
|
patch-ab no longer needed just since 15 Jan 2018(!)
5 years worth of changes including:
- C++11 is now required. Your compiler must have shared_ptr, noexcept, etc.
- Removed pqxx::items. Use the new C++11 initialiser syntax.
- Removed maketemporary. We weren't using it.
- Can now be built outside the source tree.
- New, simpler, lambda-friendly transactor framework.
- New, simpler, prepared statements and parameterised statements.
- Result rows can be passed around independently.
- New exec0(): perform query, expect zero rows of data.
- New exec1(): perform query, expect (and return) a single row of data.
- New exec_n(): perform query, expect exactly n rows of data.
- No longer defines Visual Studio's NOMINMAX in headers.
- Much faster configure script.
- Most configuration items are gone.
- Retired all existing capability flags.
- Documentation on readthedocs.org, thanks Tim Sheerman-Chase.
- Expose SQLSTATE error codes in sql_error exceptions.
- Adds a first-generation parser for SQL arrays.
|
|
Changes from previous
=====================
4.0.1
- Support for REPEATABLE READ isolation level.
- Build fix for OS X.
- Build fixes for clang++ 3.2.
- Build fixes for clang++ 3.0.
- Build fix for MinGW.
- Build fix for BSD (and possibly other grep flavours).
- Compatibility typedefs: pqxx::result::tuple & pqxx::result::field.
- Supports C++11.
- Fixed failure to detect some integer overflows during conversion.
4.0
- API change: noticers are gone! Use errorhandlers to capture error output.
- API change: tablereaders and tablewriters are gone; they weren't safe.
- API change: prepared statements are now weakly-typed, and much simpler.
- API change: fields and tuples are now stand-alone classes in ::pqxx.
- API change: thread-safety field have_strerror_r is now have_safe_strerror.
- API change: notify_listener has been replaced with notification_receiver.
- notification_receiver takes a payload parameter.
- Easier Visual C++ setup.
- Absolutely requires a libpq version with PQescapeStringConn.
- Absolutely requires libpq 8.0 or better.
- Changes for C++0x.
- Supports clang++.
- Visual C++ makefiles now support new-style unit tests.
- Sample headers for more recent Visual Studio versions.
- Fixes binary-data escaping problems with postgres 9.0.
- Fixes problems with binary-string handling and escaping.
- Fixes compatibility problems between 9.x libpq and 7.x backend.
- quote_name to escape SQL identifiers for use in queries.
- syntax_error reports error's approximate location in the query.
- On Windows, now uses ws2_32 instead of wsock32.
- Various Windows build fixes.
- Updated for gcc 4.6.0.
- configure script supports --enable-documentation/--disable-documentation.
- Streamlined test/release toolchain.
3.1
- Shared libraries are now versioned by ABI: 3.1 instead of 3.1.0 etc.
- Threading behaviour is now documented, and can be queried.
- Version information available at compile time.
- Supports parameterized statements.
- Result tuples now support slicing.
- Configure with --with-tr1=boost to use BOOST shared_ptr.
- String conversion now has its own header file.
- Supports read-only transactions.
- Fixed breakage with Solaris "make".
- Uses shared_ptr if available.
- binarystring::str() is no longer cached; no longer returns reference.
- Fixed problems in Visual C++ Makefile for test suite.
- Fixed problems with RPM packaging.
- Fixed build problem on RedHat/CentOS 5.
- Lets you check whether a prepared statement has been defined.
- "Varargs" prepared statements.
- Unnamed prepared statements now supported.
- Results have iterator as well as const_iterator.
- Rewrite of robusttransaction logic; may actually do its job now.
- Connections support async query cancel from signal handler or thread.
- More documentation for performance features.
3.0
- Website is now at http://pqxx.org/ (no redirects)
- Completely replaced cursor classes
- More helpful error messages on failed connections
- More detailed hierarchy of constraint-violation exception classes
- trigger is now called notify_listener, trigger header is now notify-listen
- New mixin base class pqxx_exception distinguishes libpqxx exception types
- Quoting is back! transaction_base::quote() & connection_base::quote()
- Several build & documentation problems with Visual C++ fixed
- Compile fixes for gcc 4.2, 4.3
- Compile fixes for Sun Studio Express 5.9
- Uses strlcpy() where available, instead of strncpy()
- Keeps better track of applicable text encodings
- Fixed bug with prepared statement parameters in separate C++ statements
- robusttransaction now works for multiple users
- Pipeline lets you cancel ongoing queries, e.g. because they run for too long
- Fixed broken escaping of binary values in tablewriter
- Floating-point types now represented with full precision
- Proper unit tests for new functionality
- New traits-based system for adding data types
- Floating-point infinities now supported
- Flushing/completing a pipeline now frees up the transaction for other use
- Completely reworked test suite, builds and runs much faster
- tablewriter supports writing of raw lines
2.6.9
- Removed old 1.x API (that means all identifiers with capital letters!)
- Tested with all current libpq versions and oldest/newest supported backends
- No longer have old OnCommit()/OnAbort()/OnDoubt() callbacks in transactor!
- Fixes failure when closing cursors with upper-case letters in their names
- Fixes bug when adding triggers to connections that aren't open yet
- Fixes bug when removing triggers
- Fixes small memory leak when preparing statements
- Fixes many problems with older backends
- Fixes bug in result::swap(): protocol versions were not swapped
- Some errors went undetected when using certain libpq versions
- Fixes prepared statements on new libpq versions talking to old backends
- Can estimate server version if libpq does not know how to obtain it
- Greatly reduced memory usage while escaping strings
- With Visual C++, creates lib/ directory if not already present
- Useful error messages when preparing statements
- Allows prepared statements to be registered explicitly
- Support for "long long" types; enable with PQXX_ALLOW_LONG_LONG macro
- Compilation errors for older libpq versions fixed
- Some new small utility classes for disabling notice processing etc.
- Result sets remember the queries that yielded them
- New test script, pqxx-fulltest, tests against all current postgres versions
- Connections can simulate failure
- Adds password encryption function
2.6.8
- Fixes bug: binary parameters to prepared statements truncated at nul bytes
- New, more specific exception types to distinguish errors from server
- Resolved serious problems with generated reference documentation
- Automatically detect Windows socket library with MinGW
- Windows "make" fixed to run from main directory, not win32
- Fixes "mktemp" problems on some BSD-based platforms
- pqxx-config is deprecated; use pkg-config instead
- On GNU/Linux, uses poll() instead of select() to avoid file descriptor limit
- Will provide server and protocol version information where available
- New cursor class, absolute_cursor
2.6.7
- New escape functions for binary data: transaction_base::esc_raw()
- Improved detection of socket libraries, especially for MinGW
- Works around bug in some versions of GNU grep 2.5.1
- Fixes problem with configuration headers
- Fixes PQprepare() detection
- Fixes incomplete Visual C++ Makefile
- Fixes compile error in workaround for older libpq versions
- Removes "rpath" link option
2.6.6
- New, encoding-safe string-escaping functions
- Upper-case letters now allowed in prepared-statement names
- Fixes crash in test005
- More Visual C++ improvements
- Removed collaboration diagrams from reference docs
- New templating system for generating Windows Makefiles etc.
2.6.5
- Visual C++ users: copy win32/common-sample to win32/common before editing it
- Should fix problems finding socket library on MinGW
- Even more work on Visual C++ problems
- Updated documentation for Visual C++ users
- Fixed bug in prepared statements (mostly visible on Visual C++)
- Nested transactions work harder to detect backend support
2.6.4
- Massively improved compatibility with Windows and Visual C++
- Fixed late initialization of "direct" connection state
- Fixed problem with initialization of connection capabilities
- Fixed configuration bug for libpq in nonstandard locations
- Sample configuration header for libpq found in PostgreSQL 8.1
2.6.3
- Radical rework of prepared statements; INCOMPATIBLE INTERFACE CHANGE!
- Dropped support for g++ 2.95
- Emulate prepared statements support on old libpq or old backend
- Bug fix: missing tutorial (release script now tests for this)
- Automatically links in socket library on Windows or Solaris, if needed
- Bug fix: check for std namespace didn't work
- Fixes for Cygwin/MSYS/MinGW
2.6.2
- Bug fix: connection state was not set up properly in some common cases
- Bug fix: headers were installed in "include" instead of "include/pqxx"
- Bug fix: sqlesc(string) broke with multibyte or multiple encodings
- namedclass is now used as a virtual base; affects all subclass constructors
- Initial implementation of subtransactions
- Detect more connection capabilities
- Standard library namespace can be set from configure script's command line
- Completely reworked connection hierarchy, with separate policy objects
- Clients can now define their own connection policies
- Paved the way for client-defined thread synchronization
- Now lives at http://thaiopensource.org/development/libpqxx/
2.6.1
- Hugely improved recognition of different strerror_r() versions
- Resolved link problems with gcc 4.0 and shared library
2.6.0
- New macro PQXX_SHARED defines whether to use/build libpqxx as shared library
- Robusttransaction compatible with PostgreSQL 8.1
- Infrastructure for querying connection/backend capabilities at runtime
- Greatly improved cursor support
- Connection reactivation can be inhibited explicitly
- Tries even harder to make sense of conflicting strerror_r() definitions
- Detects connection failures that libpq glosses over
- Reference documentation grouped into more coherent sections
- Assumes strerror() is threadsafe on systems that have no strerror_r()
- Now allows connection's socket number to be queried
- New internal_error class for libpqxx-internal errors
- With Visual C++, doesn't redefine NOMINMAX if it is defined already
- Several compatibility improvements for Visual C++
- Fixes and workarounds for HP-UX and HP aCC compiler
- Phased old cursor interface out of test suite; tests ported to new interface
- Added documentation on thread safety
- New thread safety model
- Large objects have functions to tell current position
- Minor updates to tutorial (somebody pay me and I'll do more :)
- No longer needs libpq-fs.h header
- Meaningful error messages for ambiguous string conversions fixed
2.5.6
- Support null parameters to prepared statements (use C-style char pointers)
|
|
|
|
Changes: Lots of bugfixes and compatibility issues addressed.
|
|
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
|
|
|