NEWS 51 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040
  1. 7.7.3
  2. - Fix up more damage done by auto-formatting.
  3. - New `result::for_each()`: simple iteration and conversion of rows. (#528)
  4. - Add some missing headers in `<pqxx/pqxx>`. (#551)
  5. - More strictness in `header-pre.hxx`/`header-post.hxx` checking.
  6. - Disallow nesting of `ignore-deprecated` blocks.
  7. - Deprecate `exec` functions' `desc` parameter.
  8. - Fix `placeholders` documentation. (#557)
  9. - Strip `const` and references from `value_type`. (#558)
  10. - Get tests running on appveyor. (#560)
  11. - Fix broken nonblocking connection on Windows. (#560)
  12. 7.7.2
  13. - Fix up damage done by auto-formatting.
  14. 7.7.1
  15. - When you build libpqxx, configure the compiler's C++ version yourself!
  16. - Finally fix a long-standing silly warning in autogen.
  17. - Fix `digit_to_number` not being found on some comilers. (#518, #519)
  18. - In audit mode, define `_FORTIFY_SOURCE` to enable some extra checks.
  19. - Make more functions `constexpr`. Nothing particularly useful though.
  20. - Make more functions `noexcept`.
  21. - Move constructor & assignment for `result`.
  22. - Support LGTM.com and Facebook "infer" static analysis.
  23. - Deprecated `set_variable`/`get_variable` on `transaction_base`.
  24. - (Design unearthed warts in SQL variables, which were then fixed.)
  25. - Set/get session variables on `connection`: `set_session_var`/`get_var`.
  26. - Set/get local variables: execute SQL statements.
  27. - When using `select()`, include `<winsock2.h>` if available.
  28. 7.7.0
  29. - Fix `stream_to` for differing table/client encodings. (#473)
  30. - Use `[[likely]]` & `[[unlikely]]` only in C++20, to silence warnings.
  31. - Fix clang "not a const expression" error in Windows. (#472)
  32. - Fix warnings about `[[likely]]` in `if constexpr`. (#475)
  33. - Clearer error for ambiguous string conversion of `char` type. (#481)
  34. - Pseudo-statement in `prepare()` error was for the wrong statement. (#488)
  35. - New class, `connecting` for nonblocking connection to the database. (#487)
  36. - New class, `range` for SQL range types. (#490)
  37. - Replace `std::isdigit` with a safer alternative.
  38. - Support string conversions for `std::chrono::year_month_day`. (#492)
  39. - Helper for implementing string traits: `generic_to_buf`.
  40. - Support `result::at(row_num, col_num)`.
  41. - Support `result[row_num, col_num]` if the compiler allows it.
  42. - Work around broken `std::filesystem::path` in MinGW. (#498)
  43. - Fix leak when getting client encoding fails. (#500)
  44. - Use `std::cmp_greater` etc. when available. Saves some ugly casts.
  45. - Move `result_iterator.hxx` into `pqxx/include/internal/`.
  46. - Move `compiler-public.hxx` into `pqxx/include/internal/`.
  47. - Add script for updating copyright strings.
  48. - Make `tools/lint` figure out source directory by itself.
  49. - Pass the actual C++ version to `tools/lint`, not the baseline one.
  50. - Re-enable pyflakes testing in `tools/lint`.
  51. - Make more functions `[[nodiscard]]`.
  52. - Qualified some member functions as lvalue or rvalue.
  53. - Don't run clang-tidy by default. Compatibility issues with gcc options.
  54. - Describe version requirements in a JSON file, `requirements.json`.
  55. - Doxygen documentation now uses the (Doxygen-extended) Markdown format.
  56. - Build docs in `doc/html/`, no longer in `doc/html/Reference/`.
  57. - Disable some `std::filesystem` features on Windows.
  58. - Shut up stupid Visual Studio warnings.
  59. - On gcc, mark rarely-used functions as "cold," to be optimised for size.
  60. - Glyph scanning for GB18030 encoding was utterly broken. (#517)
  61. 7.6.0
  62. - Removed bad string conversion to `std::basic_string_view<std::byte>`. (#463)
  63. - Add C++20 concepts: `binary`, `char_string`, `char_strings`.
  64. - Generalise binary strings to any contiguous range of `std::byte`.
  65. - Mark `zview` as a view and as a borrowed range.
  66. - Save a copy step on string fields in `stream_to`.
  67. - New helper: `pqxx::value_type<CONTAINER>`.
  68. - New helper: `pqxx::binary_cast`. (#450)
  69. - Some escaping functions now have "into my buffer" variants.
  70. - More generic escaping functions, supporting more types of binary.
  71. - In C++20, accept generic columns list for `stream_to`. (#447)
  72. - Renamed `<pqxx/prepared_statement>` to `<pqxx/params>`.
  73. - Deprecated `dynamic_params` in favour of `params`.
  74. - `pqxx::params::append_multi()` now calls `reserve()` if possible.
  75. - `pqxx::params::size()` is now `noexcept` (but sadly, `ssize()` is not).
  76. - Helper for generating parameter placeholders `$1`, `$2`, etc. (#443)
  77. - Now requires support for C++14 `[[deprecated]]` attribute.
  78. - Deprecated `unesc_raw()` with `unesc_bin()` variants.
  79. - Once `unesc_raw()` is gone, we'll support only the hex escape format.
  80. - Work around broken `thread_local` in MinGW gcc < 11.1.
  81. - `pqxx::blob` now supports `std::filesystem::path`.
  82. - Fixed check against header/lib version mismatch: `check_pqxx_version_7_6`
  83. - Deprecated result slicing. Expect `row::slice()` to disappear.
  84. - More complete documentation, of cursors in particular.
  85. 7.5.2
  86. - **Actual serious bug.** `blob::read(std::vector<...>)` was broken.
  87. 7.5.1
  88. - Fixed some Visual Studio warnings.
  89. - Missed a bit in working around MinGW's broken `<thread>`.
  90. - Deprecated more obsolete representations of binary data. Use `std::byte`.
  91. - New script `tools/deprecations` lists files that use deprecated code.
  92. - Added automake-generated `config/compile` to revision control.
  93. 7.5.0
  94. - Now requires `std::variant` support! No longer works with gcc7.
  95. - When implementing a string conversion, consider specialising `param_format`.
  96. - Stop "aborting" nontransaction on closing. (#419)
  97. - Silence an overzealous Visual C++ warning. (#418)
  98. - Starting support for C++20 `std::span`.
  99. - New `blob::read()` using `std::span`. (#429)
  100. - New `params` class lets you build parameter lists incrementally. (#387)
  101. - Pass `std::vector<std::byte>` params in binary format.
  102. - Dropped legacy tests 31 and 49 to work around clang C++20 bug.
  103. - Fixed `stream_to` test failure in non-English locales. (#440)
  104. - Clarify `transaction_base::stream` documentation. (#423)
  105. - Avoid `<thread>` on MinGW; it's broken there. (#336, #398, #424, #441)
  106. 7.4.1
  107. - Missing includes; broke macOS clang build. (#416)
  108. 7.4.0
  109. - Work around Visual Studio 2017 bug with `[[deprecated]]`. (#405, #406)
  110. - Work around eternal Windows bug with `max` macro yet again. (#101)
  111. - Prepare for C++20 `std::ssize()`.
  112. - Dropped test12, which didn't add much and tried to read null strings.
  113. - Support string conversion for `std::monostate`. (#409)
  114. - Consistent "named constructors" for `stream_to` and `stream_from`.
  115. - New `table_path` type.
  116. - New `connection` methods `quote_table` and `quote_columns`.
  117. - Lots of deprecated stream constructors.
  118. - `pqxx::row::swap()` now finally has the `deprecated` attribute.
  119. - Finally deprecated a bunch of `field`, `row`, and `result` constructors.
  120. - Exposed `transaction_focus` marker class.
  121. 7.3.1
  122. - New, simpler API for large objects: `blob` ("binary large object").
  123. - `largeobject` and friends are now deprecated.
  124. - Fix visibility issue on gcc/clang, especially on macOS. (#395)
  125. - Use "pure" & "visibility" attributes if they work, regardless of compiler.
  126. - More deprecated items now have the `[[deprecated]]` attribute.
  127. - Document the concept of transaction focus.
  128. - Error messages more often report query description, if given.
  129. - Suppress spurious deprecation messages on Visual Studio. (#402)
  130. - Correct error when prepared/param statement clashes with tx focus. (#401)
  131. - `from_stream` with `from_query` now has a convenient factory function.
  132. - Removed some obsolete scripts from the `tools/` directory.
  133. 7.3.0
  134. - `stream_to` now quotes and escapes its table name.
  135. - Removed `transaction_base::classname()`. Did anyone ever use it?
  136. - Internal reorg of the `transaction` and `transactionfocus` hierarchies.
  137. - Removed the only case of virtual inheritance, related to `namedclass`.
  138. - Internal `concat()` for faster, simpler string concatentation.
  139. - Fix compile omission in string conversions for `nullptr_t`.
  140. - `pqxx::size_buffer()` can now size multiple values at once.
  141. - `multi_to_string()` to convert multiple values into one `std::string`.
  142. - Implicit `zview` constructor from `char const *`. (#389)
  143. - Many `std::string&` parameters are now `zview` or `std::string_view`.
  144. - Now checking statement parameter lengths for overflow.
  145. - `#include <array>` in connection.cxx. (#394)
  146. 7.2.1
  147. - Fix infinite loop in converting `char *` to string. (#377)
  148. - Deprecated `namedclass`.
  149. - Convert an entire row using `row::as<type...>()`.
  150. - Internal rework of `field::to()` and `field::as()` functions.
  151. - Some more warning options in maintainer mode.
  152. - Removed the old, DocBook-based tutorial.
  153. - Fixed wrong `query` and SQLSTATE params to some exceptions. (#378)
  154. 7.2.0
  155. - You can now implicitly convert a `const std::string &` to `zview`.
  156. - Replaced some overloads for C strings and C++ strings with `zview`.
  157. - Deprecating `binarystring`. Use `std::basic_string<std::byte>` instead!
  158. - Array parser did not recognise escaping in unquoted values.
  159. - gcc10 test build fix: a result iterator is not the same thing as a `row`.
  160. - Doc fix: field size does _not_ include terminating zero. (#356)
  161. - Fix error message in `demangle_type_name`: printed result, not raw name.
  162. - Fix compile warning in `demangle_type_name` on GNU systems.
  163. - Document that string conversions assume non-null values.
  164. - Start playing with C++20 _concepts._
  165. - Sketch out concepts-based `PQconnectdbParams` support. (#343)
  166. - Add missing link to "datatypes" documentation. (#346)
  167. - Supports `to_string`, `stream_to`, etc. for `binarystring`. (#312)
  168. - Fixed infinite recursion when using `std::optional` in `stream_to`. (#364)
  169. - Home-rolled hex-escaping. Saves an allocation.
  170. - Catch floating-point negative overflow in `check_cast`, not underflow.
  171. - Bit more work on CMake build doc. (#318)
  172. - Typo in `datatypes.md`: `nullness`, not `nullness_traits`. (#353)
  173. - Fixed test names map in `tests/runner.cxx`. (#354)
  174. - Integral `from_string` now accept leading whitespace, as in composite types.
  175. - Experimental support basics for composite types. (#355)
  176. - Use `stream_from` without knowing the number of fields. (#357)
  177. - Global `size_buffer` function.
  178. - `quote()` now works for always-null types without conversions defined.
  179. - `std::nullopt` now converts to an SQL null.
  180. - Skip quoting and escaping array/composite fields of "safe" types.
  181. - New type trait: `is_unquoted_safe`.
  182. - Forbid invalid specialisations of `query_value`.
  183. - Fixed `mktemp` invocation that broke on FreeBSD.
  184. - Avoid unneeded encode/decode step on more binary data.
  185. - If `__cxa_demangle` fails, fall back on raw type name. (#361)
  186. 7.1.2
  187. - Document build in `BUILDING-configure.md` / `BUILDING-cmake.md`.
  188. - Work around silly clang warning in `test_errorhandler.cxx`.
  189. - Fix install error with some internal headers. (#322)
  190. - Fix "No object selected" error message in large objects. (#324)
  191. - If error has no SQLSTATE, throw `broken_connection`. (#280)
  192. - Fix argument order in `encrypt_password`. (#333, #334)
  193. - Fix underestimate of buffer size for `to_string` for floats. (#328)
  194. 7.1.1
  195. - Compile fix for Visual Studio.
  196. - Warning fix for clang.
  197. - Also install `transaction_focus.hxx`. (#320)
  198. 7.1.0
  199. - Query tuples straight into `std::tuple` using `transaction::stream()`!
  200. - And, `stream_from` now supports more or less arbitrary queries.
  201. - Instead of a tuple of fields, you can pass `stream_to` a container as well.
  202. - `string_traits::size_buffer()` must now be `noexcept`.
  203. - New `nullness` member: `always_null`.
  204. - There is now `to_buf` support for string literals.
  205. - Streaming data is now more efficient.
  206. - The table name in `stream_from` is now escaped.
  207. - You can now "convert" strings to `std::string_view`. Mind your lifetimes!
  208. - A `std::variant` will now convert to string, if its member types do.
  209. - If a `stream_from` row fails to convert, you can no longer retry it.
  210. - `from_string(field const &)` now handles null values properly.
  211. - Obsolete Windows build docs are gone.
  212. - Added `row::to(std::tuple<...>)`.
  213. - Unified the test suites. We no longer need `test/unit/unit_runner`.
  214. - New helper: `strip_t<...>` to remove a type's constness and reference.
  215. - Replace custom templating with CMake glob in `src/CMakeLists.txt`.
  216. - Replace custom templating with CMake glob in `doc/CMakeLists.txt`.
  217. - Replace custom templating with CMake glob in `test/unit/CMakeLists.txt`.
  218. 7.0.8
  219. - Inline `type_name` in `PQXX_DECLARE_ENUM_CONVERSION`.
  220. 7.0.7
  221. - Fix broken `--with-postgres-lib` option in `configure` script (#311)
  222. - Should now build even if neither `pkg-config` nor `pg_config` is available.
  223. - CMake accepts `PostgreSQL_ROOT`, if it's a sufficiently recent version.
  224. 7.0.6
  225. - Prefer `pg_config` over `pkg-config` for include path (#291).
  226. - Try to plod on if we don't know the PostgreSQL include path.
  227. - Fix error message when starting overlapping transactions and such (#303).
  228. - Fix potential crashes when converting invalid strings to floats (#307, #308).
  229. 7.0.5
  230. - Compile fix for g++ 10: include `<limits>` (#292).
  231. - Cleaned up error-checking of PG results. (#280).
  232. - The `esc()` methods now also take `std::string_view` (#295).
  233. 7.0.4
  234. - Fix possible crash in `connection::connection_string` (#290).
  235. - Fix filtering of default values in `connection::connection_string` (#288).
  236. - Deprecate `row::swap` and public inheritance of iterators from `row`.
  237. - More copy/move/default constructors/assignments on result iterators.
  238. - More copy/move/default constructors/assignments on row iterators.
  239. 7.0.3
  240. - Fixed misreporting of broken connection as `sql_error` (#280).
  241. - Replaced non-ASCII test texts with escape codes (#282, #283).
  242. - `ilostream` could truncate at `0xff` byte at buffer boundary (#284, #286).
  243. 7.0.2
  244. - New query function: `query_value`, queries and converts a single value.
  245. - A `stream_from` stream can now be iterated.
  246. - More callable types qualify as transactors, thanks to `std::invoke`.
  247. 7.0.1
  248. - Windows build fixes.
  249. - Documentation for writing your own string conversions.
  250. - `transaction_rollback` and children are now `sql_error`, not just `failure`.
  251. 7.0.0
  252. - Bumped minimum required C++ version to C++17.
  253. - Everything has changed. If you're porting from older versions, be careful!
  254. - There is now only one connection class: `connection`.
  255. - Removed tablereader/tablewriter, replaced by stream_from/stream_to.
  256. - Removed obsolete transactor framework, replaced by post-C++11 one.
  257. - Removed old ways of invoking parameterised and prepared statements.
  258. - Session variables are no longer cached.
  259. - If you do weird stuff with setting/getting variables, it may break.
  260. - Reading a variable written from raw SQL, procedures, etc, will now work.
  261. - Prepared statements are now registered immediately.
  262. - If you do weird stuff with preparing/unpreparing statements, it may break.
  263. - Changed exceptions and errors for many error situations.
  264. - Mishandling prepared statements will now break the connection.
  265. - Many string references and const char pointers are now `std::string_view`.
  266. - New `zview` class wraps `string_view` for string with terminating zero.
  267. - The `stream_base` abstract base class is gone.
  268. - Transactions no longer have an `isolation_tag` nested type.
  269. - The `isolation_traits` type is gone.
  270. - There's no more `pqxx_exception`. Complicated things too much.
  271. - `pqxx::string_traits<>::name()` has been replaced with `pqxx::type_name`.
  272. - `to_string()` can now handle `std::vector` (to produce an SQL array).
  273. - All `from_string()` that took a C string now take a `std::string_view`.
  274. - There are now separate `string_traits` and `null_traits` templates.
  275. - Enums outside classes are now scoped enums.
  276. - `error_verbosity` is no longer nested in connection.
  277. - `connection::get_verbosity` is gone.
  278. - Some enums have changed names: `accesspolicy` to `access_policy`, and so on.
  279. - `dynamic_params` now accepts an accessor.
  280. - Fixed "const" support in arguments to parameterised/prepared statements.
  281. - Connection objects can now be moved.
  282. - `connections::options()` has been replaced by `connection_string()`.
  283. - Replaced pqxx-fulltest with `test_all.py`.
  284. - Some `size_type` have changed to different types, to match current libpq.
  285. - Internal overflows are more consistently caught and reported.
  286. - Deprecated items have been removed.
  287. - Large objects now require backend version 9.3 or better.
  288. - Seeking inside large objects now supports 64-bit sizes.
  289. - Visual Studio project files and sample headers are gone. Use CMake.
  290. - MinGW Makefiles are gone. Use `configure` or CMake.
  291. - Need PostgreSQL 10 to use robusttransaction.
  292. - `robusttransaction` no longer uses a log table. Feel free to drop it.
  293. 6.4.4
  294. - Use pkg-config if pg-config is not available.
  295. - In CMake build, prefer CMake's config headers over any found in source tree.
  296. 6.4.3
  297. - Updated copyright strings.
  298. - Added missing "stream" headers to autotools-based install.
  299. - Added stream headers to pqxx/pqxx header.
  300. 6.4.2
  301. - Fix mistake for Windows in 6.4.1: use PQfreemem, not std::free.
  302. - Easily enable runtime checks in configure: "--enable-audit".
  303. - Enable optimisation in CircleCI build.
  304. 6.4.1
  305. - Fixed more memory leaks.
  306. 6.4.0
  307. - Half fix, half work around nasty notice processor life time bug.
  308. - Fix selective running of tests: "test/unit/runner test_infinities".
  309. - Added some missing `std::` qualifications.
  310. 6.3.3
  311. - Throw more appropriate error when unable to read client encoding.
  312. - CMake build fixes.
  313. 6.3.2
  314. - Conversion errors no longer throw pqxx::failure; always conversion_error!
  315. - Use C++17's built-in numeric string conversions, if available.
  316. - Query numeric precision in a more sensible, standard way.
  317. - Avoid "dead code" warning.
  318. - Replace obsolete autoconf macros.
  319. - Remove all "using namespace std".
  320. - CMake build fixes.
  321. 6.3.1
  322. - Windows compile fix (CALLBACK is a macro there).
  323. - Work around Visual Studio 2017 not supporting ISO 646.
  324. 6.3.0
  325. - New "table stream" classes by Joseph Durel: stream_from/stream_to.
  326. - Support weird characters in more identifiers: cursors, notifcations, etc.
  327. - Connection policies are deprecated. It'll all be one class in 7.0!
  328. - Connection deactivation/reactivation is deprecated.
  329. - Some items that were documented as deprecated are now also declared as such.
  330. - Fix Windows bug where WSAPoll was never used. Thanks dpolunin.
  331. - Fix Windows CMake build to link to socket libraries. Thanks dpolunin.
  332. - Various other changes to the CMake build.
  333. - Fix failure when doing multiple string conversions with Visual C++.
  334. - Fix nested project builds in CMake. Thanks Andrew Brownsword.
  335. - In Visual Studio, build for host architecture, not "x64".
  336. - Fix string conversion link error in Visual Studio. Thanks Ivan Poiakov.
  337. - Fix string conversion to bool for "1". Thanks Amaracs.
  338. - Fix in escaping of strings in arrays. Thanks smirql.
  339. - Faster copying of results of large queries. Thanks Vsevolod Strukchinsky.
  340. - Starting to handle encodings properly! Thanks to Joseph Durel.
  341. - No longer using std::iterator (deprecated in C++17).
  342. 6.2.5
  343. - Removed deprecated pqxx-config.
  344. - Build fix on Visual C++ when not defining NOMINMAX.
  345. - Reduce setup code for string conversions, hopefully improving speed.
  346. - Allow nul bytes in tablereader.
  347. - Support defining string conversions for enum types.
  348. - Fixed const/pure attributes warning in gcc 8.
  349. - Updated build documentation to mention CMake option.
  350. - Fixed a floating-point string conversion failure with Visual Studio 2017.
  351. 6.2.4
  352. - Fix builds in paths containing non-ASCII characters.
  353. - New macro: PQXX_HIDE_EXP_OPTIONAL (to work around a client build error).
  354. 6.2.3
  355. - Build fixes.
  356. 6.2.2
  357. - Variable number of arguments to prepared or parameterised statement (#75).
  358. - Windows build fix (#76).
  359. 6.2.1
  360. - Compile fixes.
  361. 6.2.0
  362. - At last! A check against version mismatch between library and headers.
  363. - Small compile fixes.
  364. 6.1.1
  365. - Small compile fixes.
  366. - A particular error string would always come out empty.
  367. 6.1.0
  368. - Dependencies among headers have changed. You may need extra includes.
  369. - Library headers now include "*.hxx" directly, not the user-level headers.
  370. - Supports parsing of SQL arrays, when using "ASCII-like" encodings.
  371. 6.0.0
  372. - C++11 is now required. Your compiler must have shared_ptr, noexcept, etc.
  373. - Removed configure.ac.in; we now use configure.ac directly.
  374. - Removed pqxx::items. Use the new C++11 initialiser syntax.
  375. - Removed maketemporary. We weren't using it.
  376. - Can now be built outside the source tree.
  377. - New, simpler, lambda-friendly transactor framework.
  378. - New, simpler, prepared statements and parameterised statements.
  379. - Result rows can be passed around independently.
  380. - New exec0(): perform query, expect zero rows of data.
  381. - New exec1(): perform query, expect (and return) a single row of data.
  382. - New exec_n(): perform query, expect exactly n rows of data.
  383. - No longer defines Visual Studio's NOMINMAX in headers.
  384. - Much faster configure script.
  385. - Most configuration items are gone.
  386. - Retired all existing capability flags.
  387. - Uses WSAPoll() on Windows.
  388. - Documentation on readthedocs.org, thanks Tim Sheerman-Chase.
  389. 5.1.0
  390. - Releases after this will require C++11!
  391. - Internal simplification to pqxx::result.
  392. - A row object now keeps its result object alive.
  393. - New exec() variants: "expect & return 1 row," "expect no rows," "expect n."
  394. - ChangeLog is gone. It was a drag on maintenance.
  395. 5.0.1
  396. - Exposed sqlstate in sql_error exception class.
  397. 5.0
  398. - The PGSTD namespace alias is gone. Use the std namespace directly.
  399. - pqxx::tuple is now pqxx::row, to avoid clashes with std::tuple.
  400. - Deprecated escape_binary functions dropped.
  401. - Deprecated notify_listener class dropped.
  402. - Support for many old compilers dropped.
  403. - Support for "long long" and "long double" types is always enabled.
  404. - No longer uses obsolete std::tr1 namespace; use plain std instead.
  405. - Now requires libpq 9.1 or better.
  406. - Requires server version 9.1 or better.
  407. - Support for REPEATABLE READ isolation level added.
  408. - Makefile fixes for Visual Studio 2013.
  409. - Supports C++11 and C++14.
  410. - No longer has obsolete debian & RPM packaging built in.
  411. - Fixed failure to abort uncommitted subtransactions on destruction.
  412. - Fixed failure to detect some integer overflows during conversion.
  413. - Build tooling uses /usr/bin/env python instead of /usr/bin/python.
  414. - New configure options: --with-postgres-include and --with-postgres-lib.
  415. - In g++ or compatible compilers, non-exported items are no longer accessible.
  416. - Many build fixes for various platforms and compilers.
  417. 4.0
  418. - API change: noticers are gone! Use errorhandlers to capture error output.
  419. - API change: tablereaders and tablewriters are gone; they weren't safe.
  420. - API change: prepared statements are now weakly-typed, and much simpler.
  421. - API change: fields and tuples are now stand-alone classes in ::pqxx.
  422. - API change: thread-safety field have_strerror_r is now have_safe_strerror.
  423. - API change: notify_listener has been replaced with notification_receiver.
  424. - notification_receiver takes a payload parameter.
  425. - Easier Visual C++ setup.
  426. - Absolutely requires a libpq version with PQescapeStringConn.
  427. - Absolutely requires libpq 8.0 or better.
  428. - Changes for C++0x.
  429. - Supports clang++.
  430. - Visual C++ makefiles now support new-style unit tests.
  431. - Sample headers for more recent Visual Studio versions.
  432. - Fixes binary-data escaping problems with postgres 9.0.
  433. - Fixes problems with binary-string handling and escaping.
  434. - Fixes compatibility problems between 9.x libpq and 7.x backend.
  435. - quote_name to escape SQL identifiers for use in queries.
  436. - syntax_error reports error's approximate location in the query.
  437. - On Windows, now uses ws2_32 instead of wsock32.
  438. - Various Windows build fixes.
  439. - Updated for gcc 4.6.0.
  440. - configure script supports --enable-documentation/--disable-documentation.
  441. - Streamlined test/release toolchain.
  442. 3.1
  443. - Shared libraries are now versioned by ABI: 3.1 instead of 3.1.0 etc.
  444. - Threading behaviour is now documented, and can be queried.
  445. - Version information available at compile time.
  446. - Supports parameterized statements.
  447. - Result tuples now support slicing.
  448. - Configure with --with-tr1=boost to use BOOST shared_ptr.
  449. - String conversion now has its own header file.
  450. - Supports read-only transactions.
  451. - Fixed breakage with Solaris "make".
  452. - Uses shared_ptr if available.
  453. - binarystring::str() is no longer cached; no longer returns reference.
  454. - Fixed problems in Visual C++ Makefile for test suite.
  455. - Fixed problems with RPM packaging.
  456. - Fixed build problem on RedHat/CentOS 5.
  457. - Lets you check whether a prepared statement has been defined.
  458. - "Varargs" prepared statements.
  459. - Unnamed prepared statements now supported.
  460. - Results have iterator as well as const_iterator.
  461. - Rewrite of robusttransaction logic; may actually do its job now.
  462. - Connections support async query cancel from signal handler or thread.
  463. - More documentation for performance features.
  464. 3.0
  465. - Website is now at http://pqxx.org/ (no redirects)
  466. - Completely replaced cursor classes
  467. - More helpful error messages on failed connections
  468. - More detailed hierarchy of constraint-violation exception classes
  469. - trigger is now called notify_listener, trigger header is now notify-listen
  470. - New mixin base class pqxx_exception distinguishes libpqxx exception types
  471. - Quoting is back! transaction_base::quote() & connection_base::quote()
  472. - Several build & documentation problems with Visual C++ fixed
  473. - Compile fixes for gcc 4.2, 4.3
  474. - Compile fixes for Sun Studio Express 5.9
  475. - Uses strlcpy() where available, instead of strncpy()
  476. - Keeps better track of applicable text encodings
  477. - Fixed bug with prepared statement parameters in separate C++ statements
  478. - robusttransaction now works for multiple users
  479. - Pipeline lets you cancel ongoing queries, e.g. because they run for too long
  480. - Fixed broken escaping of binary values in tablewriter
  481. - Floating-point types now represented with full precision
  482. - Proper unit tests for new functionality
  483. - New traits-based system for adding data types
  484. - Floating-point infinities now supported
  485. - Flushing/completing a pipeline now frees up the transaction for other use
  486. - Completely reworked test suite, builds and runs much faster
  487. - tablewriter supports writing of raw lines
  488. 2.6.9
  489. - Removed old 1.x API (that means all identifiers with capital letters!)
  490. - Tested with all current libpq versions and oldest/newest supported backends
  491. - No longer have old OnCommit()/OnAbort()/OnDoubt() callbacks in transactor!
  492. - Fixes failure when closing cursors with upper-case letters in their names
  493. - Fixes bug when adding triggers to connections that aren't open yet
  494. - Fixes bug when removing triggers
  495. - Fixes small memory leak when preparing statements
  496. - Fixes many problems with older backends
  497. - Fixes bug in result::swap(): protocol versions were not swapped
  498. - Some errors went undetected when using certain libpq versions
  499. - Fixes prepared statements on new libpq versions talking to old backends
  500. - Can estimate server version if libpq does not know how to obtain it
  501. - Greatly reduced memory usage while escaping strings
  502. - With Visual C++, creates lib/ directory if not already present
  503. - Useful error messages when preparing statements
  504. - Allows prepared statements to be registered explicitly
  505. - Support for "long long" types; enable with PQXX_ALLOW_LONG_LONG macro
  506. - Compilation errors for older libpq versions fixed
  507. - Some new small utility classes for disabling notice processing etc.
  508. - Result sets remember the queries that yielded them
  509. - New test script, pqxx-fulltest, tests against all current postgres versions
  510. - Connections can simulate failure
  511. - Adds password encryption function
  512. 2.6.8
  513. - Fixes bug: binary parameters to prepared statements truncated at nul bytes
  514. - New, more specific exception types to distinguish errors from server
  515. - Resolved serious problems with generated reference documentation
  516. - Automatically detect Windows socket library with MinGW
  517. - Windows "make" fixed to run from main directory, not win32
  518. - Fixes "mktemp" problems on some BSD-based platforms
  519. - pqxx-config is deprecated; use pkg-config instead
  520. - On GNU/Linux, uses poll() instead of select() to avoid file descriptor limit
  521. - Will provide server and protocol version information where available
  522. - New cursor class, absolute_cursor
  523. 2.6.7
  524. - New escape functions for binary data: transaction_base::esc_raw()
  525. - Improved detection of socket libraries, especially for MinGW
  526. - Works around bug in some versions of GNU grep 2.5.1
  527. - Fixes problem with configuration headers
  528. - Fixes PQprepare() detection
  529. - Fixes incomplete Visual C++ Makefile
  530. - Fixes compile error in workaround for older libpq versions
  531. - Removes "rpath" link option
  532. 2.6.6
  533. - New, encoding-safe string-escaping functions
  534. - Upper-case letters now allowed in prepared-statement names
  535. - Fixes crash in test005
  536. - More Visual C++ improvements
  537. - Removed collaboration diagrams from reference docs
  538. - New templating system for generating Windows Makefiles etc.
  539. 2.6.5
  540. - Visual C++ users: copy win32/common-sample to win32/common before editing it
  541. - Should fix problems finding socket library on MinGW
  542. - Even more work on Visual C++ problems
  543. - Updated documentation for Visual C++ users
  544. - Fixed bug in prepared statements (mostly visible on Visual C++)
  545. - Nested transactions work harder to detect backend support
  546. 2.6.4
  547. - Massively improved compatibility with Windows and Visual C++
  548. - Fixed late initialization of "direct" connection state
  549. - Fixed problem with initialization of connection capabilities
  550. - Fixed configuration bug for libpq in nonstandard locations
  551. - Sample configuration header for libpq found in PostgreSQL 8.1
  552. 2.6.3
  553. - Radical rework of prepared statements; INCOMPATIBLE INTERFACE CHANGE!
  554. - Dropped support for g++ 2.95
  555. - Emulate prepared statements support on old libpq or old backend
  556. - Bug fix: missing tutorial (release script now tests for this)
  557. - Automatically links in socket library on Windows or Solaris, if needed
  558. - Bug fix: check for std namespace didn't work
  559. - Fixes for Cygwin/MSYS/MinGW
  560. 2.6.2
  561. - Bug fix: connection state was not set up properly in some common cases
  562. - Bug fix: headers were installed in "include" instead of "include/pqxx"
  563. - Bug fix: sqlesc(string) broke with multibyte or multiple encodings
  564. - namedclass is now used as a virtual base; affects all subclass constructors
  565. - Initial implementation of subtransactions
  566. - Detect more connection capabilities
  567. - Standard library namespace can be set from configure script's command line
  568. - Completely reworked connection hierarchy, with separate policy objects
  569. - Clients can now define their own connection policies
  570. - Paved the way for client-defined thread synchronization
  571. - Now lives at http://thaiopensource.org/development/libpqxx/
  572. 2.6.1
  573. - Hugely improved recognition of different strerror_r() versions
  574. - Resolved link problems with gcc 4.0 and shared library
  575. 2.6.0
  576. - New macro PQXX_SHARED defines whether to use/build libpqxx as shared library
  577. - Robusttransaction compatible with PostgreSQL 8.1
  578. - Infrastructure for querying connection/backend capabilities at runtime
  579. - Greatly improved cursor support
  580. - Connection reactivation can be inhibited explicitly
  581. - Tries even harder to make sense of conflicting strerror_r() definitions
  582. - Detects connection failures that libpq glosses over
  583. - Reference documentation grouped into more coherent sections
  584. - Assumes strerror() is threadsafe on systems that have no strerror_r()
  585. - Now allows connection's socket number to be queried
  586. - New internal_error class for libpqxx-internal errors
  587. - With Visual C++, doesn't redefine NOMINMAX if it is defined already
  588. - Several compatibility improvements for Visual C++
  589. - Fixes and workarounds for HP-UX and HP aCC compiler
  590. - Phased old cursor interface out of test suite; tests ported to new interface
  591. - Added documentation on thread safety
  592. - New thread safety model
  593. - Large objects have functions to tell current position
  594. - Minor updates to tutorial (somebody pay me and I'll do more :)
  595. - No longer needs libpq-fs.h header
  596. - Meaningful error messages for ambiguous string conversions fixed
  597. 2.5.6
  598. - Support null parameters to prepared statements (use C-style char pointers)
  599. 2.5.5
  600. - Diagnoses connection failure during result transfer
  601. - Fixes invalid -R link option in pqxx-config
  602. 2.5.4
  603. - Fix workaround code for older libpq versions without PQunescapeBytea()
  604. - Work around grep bug in Fedora Core 4 that broke configure in UTF-8 locales
  605. - In Visual C++, assume libpqxx is a DLL when linking to std library as DLL
  606. - Missing documentation in distribution archive is back again
  607. - Export fewer symbols from library binary with gcc 4.0
  608. - Releases now automatically tested against gcc 4.0
  609. - Meaningful link errors for additional ambiguous string conversions
  610. - DLL symbol exports now automatically tested before each release
  611. 2.5.3
  612. - Greatly improved builds on MinGW with MSYS
  613. - All known problems with MinGW fixed
  614. - Fix bugs in stream classes that caused failures and crashes with STLport
  615. - Detects and uses STLport automatically
  616. 2.5.2
  617. - Fix memory leaks
  618. - Fix problems with NaN (not-a-number values) on some compilers
  619. 2.5.1
  620. - Fix configure script; broke when very recent libpqxx was already installed
  621. - Fix cursor breakage when "long" is more than 32 bits
  622. - Fix cases where new-style abort/doubt handlers are used
  623. - Fix for division-by-zero error in Visual C++ (changed sample headers)
  624. - Improved checking for strerror_r in configure script
  625. - Fix for problem MinGW has with configure script
  626. - Fix spurious failure of Oid check in configure script
  627. 2.5.0
  628. - Fix race condition in removing triggers
  629. - Fix binary string conversion with older libpq
  630. - Fix some error strings that may previously have come out wrong
  631. - No longer includes any libpq headers while compiling client code
  632. - Improved thread safety: avoid strerror() where possible
  633. - Prepared statements
  634. - Translate more error conditions to std::bad_alloc exception
  635. - Clearer and more specific explanations for configuration failures
  636. - Improved documentation
  637. - Looks for standard library in global namespace as well as std
  638. - Accepts standard C library in std namespace
  639. - Release script automatically tests with a range of compilers, not just one
  640. - Compatible with g++ 2.95 again; this time it's tested automatically
  641. 2.4.4
  642. - Fix problems building shared library in Visual C++
  643. - Fix autobuild in Debian, which was broken by mistake in BSD grep workaround
  644. - Fix conversion of string to floating-point type NaN
  645. - Remove stray CVS directories from distribution archive
  646. - Workaround for Visual C++ problem when issuing messages from destructors
  647. - Yet more workarounds for Visual C++ bugs
  648. - Fix situation where connection state might not be restored after failure
  649. - Fix configuration problem on SunOS
  650. - Network speedup in connection setup with pending variables and/or triggers
  651. 2.4.3
  652. - Yet more workarounds for bugs in Visual C++ .NET 2003
  653. - Fixes for SunC++ 5.5
  654. - On Visual C++, now defines NOMINMAX, fixing large object support
  655. - Workaround for BSD grep
  656. - Improvements for builds from CVS
  657. - Sample config headers for Sun ONE Studio 8
  658. 2.4.2
  659. - Fix minor problems with Apple's version of g++ 3.3
  660. - Fix problem with MingW on Windows
  661. - Workarounds and fixes for Visual C++.NET 2003
  662. - Renewed compatibility with g++ 2.95
  663. - More sample configuration headers
  664. - Updated reference documentation
  665. - Removed assert code
  666. 2.4.1
  667. - Several bugs in icursor_iterator fixed; incompatible interface changes
  668. - Tightens throw specifications on begin(), end(), size(), capacity()
  669. - Containers define reference and pointer types
  670. - Implements swap() in all container types
  671. - Implements == and != in all container types
  672. - Stabilizes new (but still limited) cursor interface
  673. - icursor_iterator thinks purely in stride granularity
  674. - Introduces </<=/>/>= comparisons for icursor_iterators
  675. - Allows "adopted SQL cursors" in new cursor interface
  676. - Reference-counting in binarystrings, so they can be copied (and efficiently)
  677. - Fixes reference-to-temporary problem with std::reverse_iterator in results
  678. - Result/tuple reverse_iterators no longer require std::reverse_iterator
  679. - Includes some sample config headers (in config/sample-headers)
  680. - Replaces iffy autoconf checks (avoid failures with maintainer mode's -Werror)
  681. - Fixes incompatibility with some implementations of Unix "cut" program (again)
  682. 2.4.0
  683. - Fixes incompatibility with some implementations of Unix "cut" program
  684. - Fixes "ptrdiff_t redefinition" problem in some environments
  685. - More container-like tuples, so fields can be iterated
  686. - All size_type types are now unsigned
  687. - More conservative robusttransaction--thanks Tom Lane
  688. - Stream-like extraction operator for result field conversion
  689. - Warnings about deprecated headers now suppressed while compiling library
  690. - Iterator constructors and copy assignments now have empty throw specs
  691. 2.3.0
  692. - Generates MinGW Makefile automatically
  693. - Documents MinGW build
  694. - Workaround for missing prepared-statement support
  695. - Potential bug fixed in closing of connections
  696. - Fixed incompatibility between new cursor streams and older backends
  697. - Removed pqxxbench
  698. 2.2.9
  699. - Bugfix in removing trigger
  700. - Added "failed connection" to regression test
  701. - Some changes to throw specifications
  702. - Putting libpq in its own namespace is optional
  703. 2.2.8
  704. - Moved libpq into pqxx::internal::pq namespace
  705. - New config system separates compiler-related items from libpq-related ones
  706. - Auto-generates Visual C++ Makefile, should always remain up-to-date now
  707. 2.2.7
  708. - Bugfix: from_string() didn't handle LONG_MIN--thanks Yannick Boivin
  709. 2.2.6
  710. - Complete "pipeline" rewrite, for better exception safety
  711. - New garbage collection scheme for "result;" constructors now exception-free
  712. 2.2.5
  713. - First new cursor classes!
  714. - Fixed strange failure in tablewriter during large insertions
  715. - Updated tutorial
  716. 2.2.4
  717. - New utility class template, items<> for easy container initialization
  718. - New utility function template, separated_list()
  719. - Error handling bugfix in tablewriter
  720. - Fixed tablereader handling of lines ending in empty fields
  721. - tablereader lines no longer end in newline with old libpq versions
  722. 2.2.3
  723. - Trigger names no longer need to be proper identifiers
  724. - Compile fixes for g++ 3.4.0 and other modern compilers
  725. - Tablestreams may specify column lists
  726. - Deprecated Quote() in favour of sqlesc(); improved quoting
  727. - Fixed generation of libpqxx.spec
  728. 2.2.2
  729. - Bugfix in fieldstream w.r.t. reading strings on some systems
  730. - Renamed config.h to internalconfig.h to avoid confusion
  731. - New connection functions allow client to sleep until notification arrives
  732. - Notification functions return number of notifications received
  733. - Even fewer client-visible macros exported by libconfig.h
  734. 2.2.1
  735. - New, 2.x-style string conversions without locale problem
  736. - Documentation improvements
  737. - Implemented result::swap()
  738. 2.2.0
  739. - Installs to /usr/local by default, NOT to /usr/local/pqxx like before!
  740. - Uses Postgres-provided script to find Postgres (thanks Peter Eisentraut)
  741. - Which means no more configure arguments required on Irix (thanks Arjen Baart)
  742. - Fixes long-standing bug in result class!
  743. - New pipeline class for throughput optimization
  744. - New field stream class: read result field as C++ stream
  745. - Separate namespace pqxx::internal for definitions not relevant to the user
  746. - More Windows compilation fixes
  747. - SUN Workshop 6 compile fixes and workarounds (thanks Jon Meinecke)
  748. - Implemented reverse_iterator for result class
  749. - Checks for functional std::reverse_iterator template
  750. - Preliminary Makefile for MinGW compiler (thanks Pasquale Fersini)
  751. - Changed the way unique<> works
  752. - Checks for functional std::count_if()
  753. - Bugs fixed & test programs added
  754. 2.1.3
  755. - Makefile fixes for Visual C++, thanks Paresh Patel
  756. - Library ABI versioning implemented, thanks Roger Leigh
  757. - Uses old SQL isolation level syntax for compatibility, thanks [email protected]
  758. - tablestreams can explicitly complete() before destructor
  759. - Bugfix in robusttransaction: forgot to set isolation level
  760. - Fixed off-by-ones in tablewriter escape code
  761. - tablestreams now use \n-style escape sequences
  762. - tablestreams support octal numbers
  763. - Freely definable "null" strings in tablestreams, as originally intended
  764. - Improved Debian packaging, thanks Roger Leigh
  765. - tablestreams use libpq's new-style COPY functions, if available
  766. - Extended automation of build/release procedure
  767. - tablewriter writes in nonblocking mode to help hide communication latency
  768. - Can get backend variables as well as set them
  769. - More configuration macro cleanups
  770. - Workaround for missing clear() in standard string
  771. - Merry Christmas!
  772. 2.1.2
  773. - Compile fix for gcc libstdc++ 2.9, thanks Jaroslaw Staniek
  774. - Moved deprecated functions below current ones
  775. - Cleanups for Debian packaging (thanks Roger Leigh, new Debian maintainer!)
  776. - Updated authors listings
  777. - Bumped ABI version number for the first time (now 2:0:1)
  778. 2.1.1
  779. - More workarounds for gcc 2.95
  780. - Automated tools keep test makefiles up to date
  781. 2.1.0
  782. - Asynchronous connections
  783. - Fixed configure --includedir option (thanks Ray Dassen!)
  784. - Compile fixes for SUN Workshop 6, and one for gcc on FreeBSD 4.8
  785. 2.0.0
  786. - New stable release!
  787. - Includes all changes since 1.5 release.
  788. - Workarounds for Microsoft Visual C++ 7 problems. Thanks Costin Musteata!
  789. - No longer need to define PQXX_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
  790. - Integrated Windows configuration into regular configuration
  791. - Only uses #warning if preprocessor supports it
  792. - Works on libpq versions without PQ[un]escapeBytea()
  793. 1.9.9
  794. - Minor documentation changes
  795. 1.9.8
  796. - Workaround for compile problem with postgres 7.3
  797. - Convenience typedef for transaction<>: "work"
  798. 1.9.7
  799. - binarystring rewritten and moved to its own file
  800. - binarystring::size() does not include terminating null byte!
  801. - Implemented escaping of binary strings
  802. - Fix in workaround for missing numeric_limits on some compilers
  803. - String conversion supported for unsigned char *
  804. - More helpful link errors for unsupported string conversions
  805. - Complete test coverage
  806. 1.9.6
  807. - Fixes in "field table" support
  808. - Improved coexistence with client program's config.h, if any
  809. - Prefixed autoconf macros used in headers with "PQXX_"
  810. 1.9.5
  811. - Header file contents moved to .hxx files for editor filetype recognition
  812. - Fixes wrong timestamp for include/pqxx/result in 1.9.4 distribution
  813. 1.9.4
  814. - Fixes Visual C++ build problem when compiling as library
  815. 1.9.3
  816. - Quick release for various minor changes
  817. 1.9.2
  818. - Renamed most public member functions to all-lower-case names
  819. - <pqxx/all> (previously <pqxx/all.h> is now called <pqxx/pqxx>
  820. 1.9.1
  821. - tablestream destructor crashed if table didn't exist (thanks Sean [Rogers?])
  822. - Renamed all header files to remove ".h" suffix
  823. - Tables created by regression test now prefixed with "pqxx" for safety
  824. - Large objects now considered stable
  825. - Migrated tutorial from SGML to DocBook XML (thanks Wichert Akkerman)
  826. - Added tests 57-59
  827. - Fixed compile error in largeobject
  828. - Updated Windows makefiles
  829. 1.9.0
  830. - EVERYTHING HAS CHANGED. Read the list or run into trouble!
  831. - CURSOR HAS INCOMPATIBLE CHANGES AND MAY BE REPLACED COMPLETELY
  832. - CACHEDRESULT HAS INCOMPATIBLE CHANGES (won't compile without changes)
  833. - REVISE YOUR TRANSACTORS; now templatized on transaction type
  834. - Finally got license file in order
  835. - Incompatible change in setting transactor quality of service
  836. - Cursors require serializable isolation level (checked at link time)
  837. - Renamed Connection_base to connection_base, Connection to connection,
  838. LazyConnection to lazyconnection
  839. - Renamed LargeObject to largeobject, LargeObjectAccess to largeobjectaccess
  840. - Renamed Noticer to noticer
  841. - Renamed Trigger to trigger
  842. - Renamed Result to result, Tuple to tuple, Field to field
  843. - Renamed Unique<> to unique<>
  844. - Renamed CachedResult to cachedresult
  845. - Transformed Transaction Taxonomy (TTT):
  846. - Renamed Transaction_base to transaction_base
  847. - Renamed Transaction to transaction
  848. - Renamed Transactor to transactor<> (now a template)
  849. - Implemented transaction isolation levels as compile-time static properties
  850. - transaction and robusttransaction now templatized on their isolation levels
  851. - cachedresult requires serializable isolation level (checked at link time)
  852. - Now need to include pqxx/transactor.h yourself if you need transactors
  853. - Large objects require real backend transaction at compile time
  854. - New type oid and constant oid_none for row identifiers resp. null oid
  855. - Added some forgotten PQXX_LIBEXPORTs
  856. - Tweaked documentation in many places
  857. 1.8.1
  858. - By popular request: more convenient way to read field values
  859. - Documented locale sensitivity of ToString(), FromString(), Field::to()
  860. 1.8.0
  861. - Compiles on gcc 2.95 again (heavy streambuf workarounds in largeobject.h)
  862. - ConnectionItf renamed to Connection_base, TransactionItf to Transaction_base
  863. - connectionitf.h is now connection_base.h, transactionitf.h connection_base.h
  864. 1.7.8
  865. - BinaryString class for unescaping bytea strings
  866. - PQAlloc template keeps track of libpq-allocated objects
  867. - Removed some consts in Unique<>, ConnectionItf, sorry!
  868. - Can now set session variables on connections, transactions
  869. 1.7.7
  870. - ./configure also looks for postgres in /usr/local/pgsql
  871. - test007 now uses SQL_ASCII as its test encoding
  872. - integrated Greg Hookey's Debian packaging
  873. 1.7.6
  874. - added postgres library (libpq) to dynamic link path
  875. 1.7.5
  876. - added test052 - test055
  877. - added Result::Tuple::ColumnNumber()
  878. - also test setting of client encodings
  879. - removed superfluous versions of to_file() from large object classes
  880. 1.7.4
  881. - new exception class, sql_error, remembers query text
  882. - moved exception classes to new file include/pqxx/except.h
  883. - test cases report texts of any failed queries
  884. - added tools/rmlo.cxx
  885. 1.7.3
  886. - default constructors for connection classes
  887. - revamped seeking operations on large objects
  888. - better error messages in large objects
  889. - added test050, test051
  890. 1.7.2
  891. - more workarounds for Sun CC 5.1, thanks Jeroen van Erp!
  892. - preliminary support for "named" queries
  893. - can now Quote() string constants
  894. - included Doxyfile in distribution archive
  895. - helps avoid Windows memory allocation problem in DLLs
  896. - allows setting of client character set encoding
  897. 1.7.1
  898. - regenerated documentation
  899. 1.7.0
  900. - removed all deprecated features
  901. - connection string documentation in README
  902. - separate Connection, LazyConnection classes
  903. - made test001 more concise
  904. - added test049
  905. 1.6.4
  906. - configure script now respects different std namespace
  907. 1.6.3
  908. - olostream, lostream now flush themselves before closing
  909. - fixed compilation problems when using ToString<>() on a plain char *
  910. - compilation fixes for Sun compiler (thanks Jeroen van Erp!)
  911. - added .pc file for pkgconfig (thanks Ray Dassen!)
  912. 1.6.2
  913. - Debian packaging added to distribution archive
  914. - new ilostream, olostream, lostream classes
  915. 1.6.1
  916. - large object's cunlink() replaced by remove()
  917. - default constructor for LargeObject
  918. 1.6.0
  919. - new large objects interface
  920. - added test048
  921. 1.5.0
  922. - allow result fields to be written to streams
  923. - removed confusing CachedResult::clear()
  924. - minor documentation updates
  925. - added test046, test047
  926. - added <pqxx/all.h> convenience header
  927. 1.4.5
  928. - fixed crash CachedResult that was less shallow than I thought
  929. - fixed quoting problem with adopted SQL cursors
  930. 1.4.4
  931. - (forgot to save cursor.cxx with new constructor in 1.4.4, sorry)
  932. 1.4.3
  933. - all tests now have three-digit numbers
  934. - Cursor can adopt SQL cursor returned by a function
  935. 1.4.2
  936. - bugfix in CachedResult when accessing empty Results
  937. - minor documentation improvements
  938. 1.4.1
  939. - documents new homepage: http://pqxx.tk/
  940. - Connection constructor accepts null connect string
  941. - Exec() now also takes queries as C++ strings
  942. 1.4.0
  943. - Connection::IsOpen() renamed to is_open()
  944. - NoticeProcessor replaced by Noticer (with C++ linkage)
  945. 1.3.7:
  946. - detects nasty rare problem case with Cursors in unknown positions
  947. 1.3.6:
  948. - fixed detection of missing PQescapeString(). Thanks David Wright!
  949. v1.3.5:
  950. - documented Windows build procedure
  951. - fixed problem with upper-case letters in cursor names. Thanks key88!
  952. 2003-01-19 16:00, v1.3.4:
  953. - support long double type
  954. - clarified some error messages
  955. 2003-01-08 18:45, v1.3.3:
  956. - fix missing include in test13
  957. 2003-01-07 02:30, v1.3.2:
  958. - configure looks for postgres includes/library in more places, thanks Ray!
  959. 2003-01-02 23:00, v1.3.1:
  960. - bugfix in Cursor positioning
  961. 2003-01-02 20:30, v1.3.0:
  962. - absolute positioning for Cursor
  963. - better documentation on cursors
  964. - reduced, but improved test suite output
  965. 2002-12-23 17:30, v1.2.8:
  966. - Cursor::Move() returns number of rows skipped
  967. - new typedef Cursor::size_type
  968. 2002-12-14 23:30, v1.2.7:
  969. - test suite now distinguishes expected errors from unexpected ones
  970. 2002-12-09 20:00, v1.2.6:
  971. - fixed some Cursor test cases for change in postgres 7.3
  972. - added important warning to Cursor
  973. 2002-12-09 02:00, v1.2.5:
  974. - added important warning to CachedResult
  975. 2002-12-08 14:14, v1.2.4:
  976. - fixed compile error on some systems in include/pqxx/util.h
  977. 2002-12-04 12:00, v1.2.3:
  978. - workaround for broken <sys/select.h> on some systems
  979. - fixed Quote() bug
  980. 2002-12-03 01:30, v1.2.2:
  981. - fixed serious CachedResult bug
  982. - added test41
  983. 2002-12-02 17:00, v1.2.1:
  984. - hopefully fixed cursor bug with PostgreSQL 7.3
  985. 2002-12-01 22:00, v1.2.0:
  986. - new CachedResult class
  987. 2002-11-07 13:15, v1.1.4:
  988. - workaround for missing InvalidOid definition
  989. 2002-10-23 16:00, v1.1.3:
  990. - Cursor & TableStream hierarchy now work on any transaction type
  991. - get no. of affected rows & oid of inserted row from Result
  992. - increased test coverage
  993. 2002-10-21 01:30, v1.1.2:
  994. - updated build procedure
  995. - Debian packaging improvements
  996. 2002-09-25 03:00, v1.1.1:
  997. - supports activating/deactivating of connections
  998. - various Connection getters now activate deferred connection first
  999. 2002-09-23 01:00, v1.1.0:
  1000. - supports lazy connections (added 19 test cases just for these)
  1001. - greatly reduced performance overhead for RobustTransaction
  1002. - removed id field from RobustTransaction's transaction log tables
  1003. 2002-09-14 20:00, v1.0.1:
  1004. - now lives on GBorg
  1005. - various packaging updates
  1006. 2002-06-12 17:30, v0.5.1:
  1007. - no longer have to destroy one transaction before creating the next
  1008. 2002-06-07 17:15, v0.5.0:
  1009. - "make install" now finally installs headers!
  1010. - distribution now includes SGML (DocBook) version of tutorial
  1011. 2002-06-04 15:00, v0.4.4:
  1012. - may now have multiple triggers with same name on single connection
  1013. 2002-06-02 23:00, v0.4.3:
  1014. - fixed TableReader problem with \t and \n
  1015. 2002-06-01 21:00, v0.4.2:
  1016. - hopefully fixes compile problem with broken std::iterator
  1017. - configure no longer requires --with-postgres-include=/usr/include/postgresql
  1018. 2002-05-29 22:00, v0.4.1:
  1019. - can now also handle bool, unsigned char, short field types
  1020. 2002-05-27 22:30, v0.4.0:
  1021. - RENAMED Transactor::TRANSACTIONTYPE to argument_type for STL conformance
  1022. - RENAMED Result::Field::name() to Name()
  1023. - documentation improvements
  1024. - minor optimizations
  1025. 2002-05-18 00:00, v0.3.1:
  1026. - removed broken postgres_fe.h dependency (hopefully permanent fix)
  1027. 2002-05-12 22:45, v0.3.0:
  1028. - also looks for postgres_fe.h in postgres' internal/ directory (tmp fix)
  1029. 2002-05-05 01:30, v0.2.3:
  1030. - extensive build instructions in README
  1031. - make check now controlled through PG environment variables
  1032. 2002-05-04 19:30, v0.2.2:
  1033. - more STL conformance
  1034. - fixed regression test
  1035. - test6 now copies "orgevents" to "events" by default
  1036. 2002-04-28 23:45 Version bumped to 0.2
  1037. 2002-04-28 23:45 Self-generated distribution archive
  1038. 2002-04-27 14:20 Replaced automake symlinks with actual files
  1039. 2002-04-07 02:30 Released with configure script
  1040. 2002-03-29 01:15 Not yet released. Still integrating autogen stuff...