aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/libpqxx/NEWS
blob: 7fa015859b00aa7a5080c983dfba84a76a18da08 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
6.4.5
 - Fixed "const" support in arguments to parameterised/prepared statements.
6.4.4
 - Use pkg-config if pg-config is not available.
 - In CMake build, prefer CMake's config headers over any found in source tree.
6.4.3
 - Updated copyright strings.
 - Added missing "stream" headers to autotools-based install.
 - Added stream headers to pqxx/pqxx header.
6.4.2
 - Fix mistake for Windows in 6.4.1: use PQfreemem, not std::free.
 - Easily enable runtime checks in configure: "--enable-audit".
 - Enable optimisation in CircleCI build.
6.4.1
 - Fixed more memory leaks.
6.4.0
 - Half fix, half work around nasty notice processor life time bug.
 - Fix selective running of tests: "test/unit/runner test_infinities".
 - Added some missing `std::` qualifications.
6.3.3
 - Throw more appropriate error when unable to read client encoding.
 - CMake build fixes.
6.3.2
 - Conversion errors no longer throw pqxx::failure; always conversion_error!
 - Use C++17's built-in numeric string conversions, if available.
 - Query numeric precision in a more sensible, standard way.
 - Avoid "dead code" warning.
 - Replace obsolete autoconf macros.
 - Remove all "using namespace std".
 - CMake build fixes.
6.3.1
 - Windows compile fix (CALLBACK is a macro there).
 - Work around Visual Studio 2017 not supporting ISO 646.
6.3.0
 - New "table stream" classes by Joseph Durel: stream_from/stream_to.
 - Support weird characters in more identifiers: cursors, notifcations, etc.
 - Connection policies are deprecated.  It'll all be one class in 7.0!
 - Connection deactivation/reactivation is deprecated.
 - Some items that were documented as deprecated are now also declared as such.
 - Fix Windows bug where WSAPoll was never used.  Thanks dpolunin.
 - Fix Windows CMake build to link to socket libraries.  Thanks dpolunin.
 - Various other changes to the CMake build.
 - Fix failure when doing multiple string conversions with Visual C++.
 - Fix nested project builds in CMake.  Thanks Andrew Brownsword.
 - In Visual Studio, build for host architecture, not "x64".
 - Fix string conversion link error in Visual Studio.  Thanks Ivan Poiakov.
 - Fix string conversion to bool for "1".  Thanks Amaracs.
 - Fix in escaping of strings in arrays.  Thanks smirql.
 - Faster copying of results of large queries.  Thanks Vsevolod Strukchinsky.
 - Starting to handle encodings properly!  Thanks to Joseph Durel.
 - No longer using std::iterator (deprecated in C++17).
6.2.5
 - Removed deprecated pqxx-config.
 - Build fix on Visual C++ when not defining NOMINMAX.
 - Reduce setup code for string conversions, hopefully improving speed.
 - Allow nul bytes in tablereader.
 - Support defining string conversions for enum types.
 - Fixed const/pure attributes warning in gcc 8.
 - Updated build documentation to mention CMake option.
 - Fixed a floating-point string conversion failure with Visual Studio 2017.
6.2.4
 - Fix builds in paths containing non-ASCII characters.
 - New macro: PQXX_HIDE_EXP_OPTIONAL (to work around a client build error).
6.2.3
 - Build fixes.
6.2.2
 - Variable number of arguments to prepared or parameterised statement (#75).
 - Windows build fix (#76).
6.2.1
 - Compile fixes.
6.2.0
 - At last!  A check against version mismatch between library and headers.
 - Small compile fixes.
6.1.1
 - Small compile fixes.
 - A particular error string would always come out empty.
6.1.0
 - Dependencies among headers have changed.  You may need extra includes.
 - Library headers now include "*.hxx" directly, not the user-level headers.
 - Supports parsing of SQL arrays, when using "ASCII-like" encodings.
6.0.0
 - C++11 is now required.  Your compiler must have shared_ptr, noexcept, etc.
 - Removed configure.ac.in; we now use configure.ac directly.
 - 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.
 - Uses WSAPoll() on Windows.
 - Documentation on readthedocs.org, thanks Tim Sheerman-Chase.
5.1.0
 - Releases after this will require C++11!
 - Internal simplification to pqxx::result.
 - A row object now keeps its result object alive.
 - New exec() variants: "expect & return 1 row," "expect no rows," "expect n."
 - ChangeLog is gone.  It was a drag on maintenance.
5.0.1
 - Exposed sqlstate in sql_error exception class.
5.0
 - The PGSTD namespace alias is gone.  Use the std namespace directly.
 - pqxx::tuple is now pqxx::row, to avoid clashes with std::tuple.
 - Deprecated escape_binary functions dropped.
 - Deprecated notify_listener class dropped.
 - Support for many old compilers dropped.
 - Support for "long long" and "long double" types is always enabled.
 - No longer uses obsolete std::tr1 namespace; use plain std instead.
 - Now requires libpq 9.1 or better.
 - Requires server version 9.1 or better.
 - Support for REPEATABLE READ isolation level added.
 - Makefile fixes for Visual Studio 2013.
 - Supports C++11 and C++14.
 - No longer has obsolete debian & RPM packaging built in.
 - Fixed failure to abort uncommitted subtransactions on destruction.
 - Fixed failure to detect some integer overflows during conversion.
 - Build tooling uses /usr/bin/env python instead of /usr/bin/python.
 - New configure options: --with-postgres-include and --with-postgres-lib.
 - In g++ or compatible compilers, non-exported items are no longer accessible.
 - Many build fixes for various platforms and compilers.
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)
2.5.5
 - Diagnoses connection failure during result transfer
 - Fixes invalid -R link option in pqxx-config
2.5.4
 - Fix workaround code for older libpq versions without PQunescapeBytea()
 - Work around grep bug in Fedora Core 4 that broke configure in UTF-8 locales
 - In Visual C++, assume libpqxx is a DLL when linking to std library as DLL
 - Missing documentation in distribution archive is back again
 - Export fewer symbols from library binary with gcc 4.0
 - Releases now automatically tested against gcc 4.0
 - Meaningful link errors for additional ambiguous string conversions
 - DLL symbol exports now automatically tested before each release
2.5.3
 - Greatly improved builds on MinGW with MSYS
 - All known problems with MinGW fixed
 - Fix bugs in stream classes that caused failures and crashes with STLport
 - Detects and uses STLport automatically
2.5.2
 - Fix memory leaks
 - Fix problems with NaN (not-a-number values) on some compilers
2.5.1
 - Fix configure script; broke when very recent libpqxx was already installed
 - Fix cursor breakage when "long" is more than 32 bits
 - Fix cases where new-style abort/doubt handlers are used
 - Fix for division-by-zero error in Visual C++ (changed sample headers)
 - Improved checking for strerror_r in configure script
 - Fix for problem MinGW has with configure script
 - Fix spurious failure of Oid check in configure script
2.5.0
 - Fix race condition in removing triggers
 - Fix binary string conversion with older libpq
 - Fix some error strings that may previously have come out wrong
 - No longer includes any libpq headers while compiling client code
 - Improved thread safety: avoid strerror() where possible
 - Prepared statements
 - Translate more error conditions to std::bad_alloc exception
 - Clearer and more specific explanations for configuration failures
 - Improved documentation
 - Looks for standard library in global namespace as well as std
 - Accepts standard C library in std namespace
 - Release script automatically tests with a range of compilers, not just one
 - Compatible with g++ 2.95 again; this time it's tested automatically
2.4.4
 - Fix problems building shared library in Visual C++
 - Fix autobuild in Debian, which was broken by mistake in BSD grep workaround
 - Fix conversion of string to floating-point type NaN
 - Remove stray CVS directories from distribution archive
 - Workaround for Visual C++ problem when issuing messages from destructors
 - Yet more workarounds for Visual C++ bugs
 - Fix situation where connection state might not be restored after failure
 - Fix configuration problem on SunOS
 - Network speedup in connection setup with pending variables and/or triggers
2.4.3
 - Yet more workarounds for bugs in Visual C++ .NET 2003
 - Fixes for SunC++ 5.5
 - On Visual C++, now defines NOMINMAX, fixing large object support
 - Workaround for BSD grep
 - Improvements for builds from CVS
 - Sample config headers for Sun ONE Studio 8
2.4.2
 - Fix minor problems with Apple's version of g++ 3.3
 - Fix problem with MingW on Windows
 - Workarounds and fixes for Visual C++.NET 2003
 - Renewed compatibility with g++ 2.95
 - More sample configuration headers
 - Updated reference documentation
 - Removed assert code
2.4.1
 - Several bugs in icursor_iterator fixed; incompatible interface changes
 - Tightens throw specifications on begin(), end(), size(), capacity()
 - Containers define reference and pointer types
 - Implements swap() in all container types
 - Implements == and != in all container types
 - Stabilizes new (but still limited) cursor interface
 - icursor_iterator thinks purely in stride granularity
 - Introduces </<=/>/>= comparisons for icursor_iterators
 - Allows "adopted SQL cursors" in new cursor interface
 - Reference-counting in binarystrings, so they can be copied (and efficiently)
 - Fixes reference-to-temporary problem with std::reverse_iterator in results
 - Result/tuple reverse_iterators no longer require std::reverse_iterator
 - Includes some sample config headers (in config/sample-headers)
 - Replaces iffy autoconf checks (avoid failures with maintainer mode's -Werror)
 - Fixes incompatibility with some implementations of Unix "cut" program (again)
2.4.0
 - Fixes incompatibility with some implementations of Unix "cut" program
 - Fixes "ptrdiff_t redefinition" problem in some environments
 - More container-like tuples, so fields can be iterated
 - All size_type types are now unsigned
 - More conservative robusttransaction--thanks Tom Lane
 - Stream-like extraction operator for result field conversion
 - Warnings about deprecated headers now suppressed while compiling library
 - Iterator constructors and copy assignments now have empty throw specs
2.3.0
 - Generates MinGW Makefile automatically
 - Documents MinGW build
 - Workaround for missing prepared-statement support
 - Potential bug fixed in closing of connections
 - Fixed incompatibility between new cursor streams and older backends
 - Removed pqxxbench
2.2.9
 - Bugfix in removing trigger
 - Added "failed connection" to regression test
 - Some changes to throw specifications
 - Putting libpq in its own namespace is optional
2.2.8
 - Moved libpq into pqxx::internal::pq namespace
 - New config system separates compiler-related items from libpq-related ones
 - Auto-generates Visual C++ Makefile, should always remain up-to-date now
2.2.7
 - Bugfix: from_string() didn't handle LONG_MIN--thanks Yannick Boivin
2.2.6
 - Complete "pipeline" rewrite, for better exception safety
 - New garbage collection scheme for "result;" constructors now exception-free
2.2.5
 - First new cursor classes!
 - Fixed strange failure in tablewriter during large insertions
 - Updated tutorial
2.2.4
 - New utility class template, items<> for easy container initialization
 - New utility function template, separated_list()
 - Error handling bugfix in tablewriter
 - Fixed tablereader handling of lines ending in empty fields
 - tablereader lines no longer end in newline with old libpq versions
2.2.3
 - Trigger names no longer need to be proper identifiers
 - Compile fixes for g++ 3.4.0 and other modern compilers
 - Tablestreams may specify column lists
 - Deprecated Quote() in favour of sqlesc(); improved quoting
 - Fixed generation of libpqxx.spec
2.2.2
 - Bugfix in fieldstream w.r.t. reading strings on some systems
 - Renamed config.h to internalconfig.h to avoid confusion
 - New connection functions allow client to sleep until notification arrives
 - Notification functions return number of notifications received
 - Even fewer client-visible macros exported by libconfig.h
2.2.1
 - New, 2.x-style string conversions without locale problem
 - Documentation improvements
 - Implemented result::swap()
2.2.0
 - Installs to /usr/local by default, NOT to /usr/local/pqxx like before!
 - Uses Postgres-provided script to find Postgres (thanks Peter Eisentraut)
 - Which means no more configure arguments required on Irix (thanks Arjen Baart)
 - Fixes long-standing bug in result class!
 - New pipeline class for throughput optimization
 - New field stream class: read result field as C++ stream
 - Separate namespace pqxx::internal for definitions not relevant to the user
 - More Windows compilation fixes
 - SUN Workshop 6 compile fixes and workarounds (thanks Jon Meinecke)
 - Implemented reverse_iterator for result class
 - Checks for functional std::reverse_iterator template
 - Preliminary Makefile for MinGW compiler (thanks Pasquale Fersini)
 - Changed the way unique<> works
 - Checks for functional std::count_if()
 - Bugs fixed & test programs added
2.1.3
 - Makefile fixes for Visual C++, thanks Paresh Patel
 - Library ABI versioning implemented, thanks Roger Leigh
 - Uses old SQL isolation level syntax for compatibility, thanks koun@sina.com
 - tablestreams can explicitly complete() before destructor
 - Bugfix in robusttransaction: forgot to set isolation level
 - Fixed off-by-ones in tablewriter escape code
 - tablestreams now use \n-style escape sequences
 - tablestreams support octal numbers
 - Freely definable "null" strings in tablestreams, as originally intended
 - Improved Debian packaging, thanks Roger Leigh
 - tablestreams use libpq's new-style COPY functions, if available
 - Extended automation of build/release procedure
 - tablewriter writes in nonblocking mode to help hide communication latency
 - Can get backend variables as well as set them
 - More configuration macro cleanups
 - Workaround for missing clear() in standard string
 - Merry Christmas!
2.1.2
 - Compile fix for gcc libstdc++ 2.9, thanks Jaroslaw Staniek
 - Moved deprecated functions below current ones
 - Cleanups for Debian packaging (thanks Roger Leigh, new Debian maintainer!)
 - Updated authors listings
 - Bumped ABI version number for the first time (now 2:0:1)
2.1.1
 - More workarounds for gcc 2.95
 - Automated tools keep test makefiles up to date
2.1.0
 - Asynchronous connections
 - Fixed configure --includedir option (thanks Ray Dassen!)
 - Compile fixes for SUN Workshop 6, and one for gcc on FreeBSD 4.8
2.0.0
 - New stable release!
 - Includes all changes since 1.5 release.
 - Workarounds for Microsoft Visual C++ 7 problems.  Thanks Costin Musteata!
 - No longer need to define PQXX_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
 - Integrated Windows configuration into regular configuration
 - Only uses #warning if preprocessor supports it
 - Works on libpq versions without PQ[un]escapeBytea()
1.9.9
 - Minor documentation changes
1.9.8
 - Workaround for compile problem with postgres 7.3
 - Convenience typedef for transaction<>: "work"
1.9.7
 - binarystring rewritten and moved to its own file
 - binarystring::size() does not include terminating null byte!
 - Implemented escaping of binary strings
 - Fix in workaround for missing numeric_limits on some compilers
 - String conversion supported for unsigned char *
 - More helpful link errors for unsupported string conversions
 - Complete test coverage
1.9.6
 - Fixes in "field table" support
 - Improved coexistence with client program's config.h, if any
 - Prefixed autoconf macros used in headers with "PQXX_"
1.9.5
 - Header file contents moved to .hxx files for editor filetype recognition
 - Fixes wrong timestamp for include/pqxx/result in 1.9.4 distribution
1.9.4
 - Fixes Visual C++ build problem when compiling as library
1.9.3
 - Quick release for various minor changes
1.9.2
 - Renamed most public member functions to all-lower-case names
 - <pqxx/all> (previously <pqxx/all.h> is now called <pqxx/pqxx>
1.9.1
 - tablestream destructor crashed if table didn't exist (thanks Sean [Rogers?])
 - Renamed all header files to remove ".h" suffix
 - Tables created by regression test now prefixed with "pqxx" for safety
 - Large objects now considered stable
 - Migrated tutorial from SGML to DocBook XML (thanks Wichert Akkerman)
 - Added tests 57-59
 - Fixed compile error in largeobject
 - Updated Windows makefiles
1.9.0
 - EVERYTHING HAS CHANGED.  Read the list or run into trouble!
 - CURSOR HAS INCOMPATIBLE CHANGES AND MAY BE REPLACED COMPLETELY
 - CACHEDRESULT HAS INCOMPATIBLE CHANGES (won't compile without changes)
 - REVISE YOUR TRANSACTORS; now templatized on transaction type
 - Finally got license file in order
 - Incompatible change in setting transactor quality of service
 - Cursors require serializable isolation level (checked at link time)
 - Renamed Connection_base to connection_base, Connection to connection,
   LazyConnection to lazyconnection
 - Renamed LargeObject to largeobject, LargeObjectAccess to largeobjectaccess
 - Renamed Noticer to noticer
 - Renamed Trigger to trigger
 - Renamed Result to result, Tuple to tuple, Field to field
 - Renamed Unique<> to unique<>
 - Renamed CachedResult to cachedresult
 - Transformed Transaction Taxonomy (TTT):
 - Renamed Transaction_base to transaction_base
 - Renamed Transaction to transaction
 - Renamed Transactor to transactor<> (now a template)
 - Implemented transaction isolation levels as compile-time static properties
 - transaction and robusttransaction now templatized on their isolation levels
 - cachedresult requires serializable isolation level (checked at link time)
 - Now need to include pqxx/transactor.h yourself if you need transactors
 - Large objects require real backend transaction at compile time
 - New type oid and constant oid_none for row identifiers resp. null oid
 - Added some forgotten PQXX_LIBEXPORTs
 - Tweaked documentation in many places
1.8.1
 - By popular request: more convenient way to read field values
 - Documented locale sensitivity of ToString(), FromString(), Field::to()
1.8.0
 - Compiles on gcc 2.95 again (heavy streambuf workarounds in largeobject.h)
 - ConnectionItf renamed to Connection_base, TransactionItf to Transaction_base
 - connectionitf.h is now connection_base.h, transactionitf.h connection_base.h
1.7.8
 - BinaryString class for unescaping bytea strings
 - PQAlloc template keeps track of libpq-allocated objects
 - Removed some consts in Unique<>, ConnectionItf, sorry!
 - Can now set session variables on connections, transactions
1.7.7
 - ./configure also looks for postgres in /usr/local/pgsql
 - test007 now uses SQL_ASCII as its test encoding
 - integrated Greg Hookey's Debian packaging
1.7.6
 - added postgres library (libpq) to dynamic link path
1.7.5
 - added test052 - test055
 - added Result::Tuple::ColumnNumber()
 - also test setting of client encodings
 - removed superfluous versions of to_file() from large object classes
1.7.4
 - new exception class, sql_error, remembers query text
 - moved exception classes to new file include/pqxx/except.h
 - test cases report texts of any failed queries
 - added tools/rmlo.cxx
1.7.3
 - default constructors for connection classes
 - revamped seeking operations on large objects
 - better error messages in large objects
 - added test050, test051
1.7.2
 - more workarounds for Sun CC 5.1, thanks Jeroen van Erp!
 - preliminary support for "named" queries
 - can now Quote() string constants
 - included Doxyfile in distribution archive
 - helps avoid Windows memory allocation problem in DLLs
 - allows setting of client character set encoding
1.7.1
 - regenerated documentation
1.7.0
 - removed all deprecated features
 - connection string documentation in README
 - separate Connection, LazyConnection classes
 - made test001 more concise
 - added test049
1.6.4
 - configure script now respects different std namespace
1.6.3
 - olostream, lostream now flush themselves before closing
 - fixed compilation problems when using ToString<>() on a plain char *
 - compilation fixes for Sun compiler (thanks Jeroen van Erp!)
 - added .pc file for pkgconfig (thanks Ray Dassen!)
1.6.2
 - Debian packaging added to distribution archive
 - new ilostream, olostream, lostream classes
1.6.1
 - large object's cunlink() replaced by remove()
 - default constructor for LargeObject
1.6.0
 - new large objects interface
 - added test048
1.5.0
 - allow result fields to be written to streams
 - removed confusing CachedResult::clear()
 - minor documentation updates
 - added test046, test047
 - added <pqxx/all.h> convenience header
1.4.5
 - fixed crash CachedResult that was less shallow than I thought
 - fixed quoting problem with adopted SQL cursors
1.4.4
 - (forgot to save cursor.cxx with new constructor in 1.4.4, sorry)
1.4.3
 - all tests now have three-digit numbers
 - Cursor can adopt SQL cursor returned by a function
1.4.2
 - bugfix in CachedResult when accessing empty Results
 - minor documentation improvements
1.4.1
 - documents new homepage: http://pqxx.tk/
 - Connection constructor accepts null connect string
 - Exec() now also takes queries as C++ strings
1.4.0
 - Connection::IsOpen() renamed to is_open()
 - NoticeProcessor replaced by Noticer (with C++ linkage)
1.3.7:
 - detects nasty rare problem case with Cursors in unknown positions
1.3.6:
 - fixed detection of missing PQescapeString().  Thanks David Wright!
v1.3.5:
 - documented Windows build procedure
 - fixed problem with upper-case letters in cursor names.  Thanks key88!
2003-01-19 16:00, v1.3.4:
 - support long double type
 - clarified some error messages
2003-01-08 18:45, v1.3.3:
 - fix missing include in test13
2003-01-07 02:30, v1.3.2:
 - configure looks for postgres includes/library in more places, thanks Ray!
2003-01-02 23:00, v1.3.1:
 - bugfix in Cursor positioning
2003-01-02 20:30, v1.3.0:
 - absolute positioning for Cursor
 - better documentation on cursors
 - reduced, but improved test suite output
2002-12-23 17:30, v1.2.8:
 - Cursor::Move() returns number of rows skipped
 - new typedef Cursor::size_type
2002-12-14 23:30, v1.2.7:
 - test suite now distinguishes expected errors from unexpected ones
2002-12-09 20:00, v1.2.6:
 - fixed some Cursor test cases for change in postgres 7.3
 - added important warning to Cursor
2002-12-09 02:00, v1.2.5:
 - added important warning to CachedResult
2002-12-08 14:14, v1.2.4:
 - fixed compile error on some systems in include/pqxx/util.h
2002-12-04 12:00, v1.2.3:
 - workaround for broken <sys/select.h> on some systems
 - fixed Quote() bug
2002-12-03 01:30, v1.2.2:
 - fixed serious CachedResult bug
 - added test41
2002-12-02 17:00, v1.2.1:
 - hopefully fixed cursor bug with PostgreSQL 7.3
2002-12-01 22:00, v1.2.0:
 - new CachedResult class
2002-11-07 13:15, v1.1.4:
 - workaround for missing InvalidOid definition
2002-10-23 16:00, v1.1.3:
 - Cursor & TableStream hierarchy now work on any transaction type
 - get no. of affected rows & oid of inserted row from Result
 - increased test coverage
2002-10-21 01:30, v1.1.2:
 - updated build procedure
 - Debian packaging improvements
2002-09-25 03:00, v1.1.1:
 - supports activating/deactivating of connections
 - various Connection getters now activate deferred connection first
2002-09-23 01:00, v1.1.0:
 - supports lazy connections (added 19 test cases just for these)
 - greatly reduced performance overhead for RobustTransaction
 - removed id field from RobustTransaction's transaction log tables
2002-09-14 20:00, v1.0.1:
 - now lives on GBorg
 - various packaging updates
2002-06-12 17:30, v0.5.1:
 - no longer have to destroy one transaction before creating the next
2002-06-07 17:15, v0.5.0:
 - "make install" now finally installs headers!
 - distribution now includes SGML (DocBook) version of tutorial
2002-06-04 15:00, v0.4.4:
 - may now have multiple triggers with same name on single connection
2002-06-02 23:00, v0.4.3:
 - fixed TableReader problem with \t and \n
2002-06-01 21:00, v0.4.2:
 - hopefully fixes compile problem with broken std::iterator
 - configure no longer requires --with-postgres-include=/usr/include/postgresql
2002-05-29 22:00, v0.4.1:
 - can now also handle bool, unsigned char, short field types
2002-05-27 22:30, v0.4.0:
 - RENAMED Transactor::TRANSACTIONTYPE to argument_type for STL conformance
 - RENAMED Result::Field::name() to Name()
 - documentation improvements
 - minor optimizations
2002-05-18 00:00, v0.3.1:
 - removed broken postgres_fe.h dependency (hopefully permanent fix)
2002-05-12 22:45, v0.3.0:
 - also looks for postgres_fe.h in postgres' internal/ directory (tmp fix)
2002-05-05 01:30, v0.2.3:
 - extensive build instructions in README
 - make check now controlled through PG environment variables
2002-05-04 19:30, v0.2.2:
 - more STL conformance
 - fixed regression test
 - test6 now copies "orgevents" to "events" by default
2002-04-28 23:45 Version bumped to 0.2
2002-04-28 23:45 Self-generated distribution archive
2002-04-27 14:20 Replaced automake symlinks with actual files
2002-04-07 02:30 Released with configure script
2002-03-29 01:15 Not yet released.  Still integrating autogen stuff...