Changes between Version 195 and Version 196 of WikiStart

Sep 22, 2018, 5:41:21 PM (4 weeks ago)



  • WikiStart

    v195 v196  
    1010= News =
    12 == 2018-03-15: Bug-fix update 6.1.1 ==
    14 More people are looking at the code now, and submitting bugs or patches.  Thanks to all who did!
    16 This update contains mostly small compile fixes, but there's a runtime bug as well: in some circumstances an error string could be left empty.
    19 == 2018-02-16: Releasing 6.1.0 ==
    21 Fixing a few compilation problems for specific configurations.
    23 Also, 6.1 adds the first generation of an SQL array parser.  As long as your client encoding is ASCII, or UTF-8, or some single-byte encoding that's a superset of ASCII, the `array_parser` class will help you retrieve the elements from array fields in your result sets.
    26 == 2017-12-25: Releasing 6.0.0 ==
    28 The new all-C++11 release libpqxx 6.0.0 is now tagged in the [ GitHub] repo.
    30 Major changes:
    31  * C++11 is now required.  Your compiler must have `shared_ptr`, `noexcept`, etc.
    32  * Removed ``; we now use `` directly.
    33  * Removed `pqxx::items`.  Use the new C++11 initialiser syntax.
    34  * Removed maketemporary.  We weren't using it.
    35  - Can now be built outside the source tree.
    36  - New, simpler, lambda-friendly transactor framework.
    37  - New, simpler, prepared statements and parameterised statements.
    38  - Result rows can be passed around independently.
    39  - New `exec0()`: perform query, expect zero rows of data.
    40  - New `exec1()`: perform query, expect (and return) a single row of data.
    41  - New `exec_n()`: perform query, expect exactly `n` rows of data.
    42  - No longer defines Visual Studio's `NOMINMAX` in headers.
    43  - Much faster configure script.
    44  - Most configuration items are gone.
    45  - Retired all existing capability flags.
    46  - Uses `WSAPoll()` on Windows.
    47  - Documentation on [], thanks Tim Sheerman-Chase.
    49 Merry Christmas!
    52 == 2017-12-23: Read The Docs ==
    54 Thanks to Tim Sheerman-Chase, libpqxx is now documented on [ Read the Docs].
     12== 2018-09-22: libpqxx turns 18 ==
     14Today marks 18 years since I committed the first revision of libpqxx in its original CVS repo.  I later converted that repo to Subversion (svn), and imported it to Bazaar (bzr), and finally converted the Subversion repo to Git, but amazingly, the 18-year revision history is still there.
     16Happy birthday, libpqxx — you are now old enough to vote!
     18It's been a real education to maintain my own code for 18 years.  ''The most important property'' a piece of code can have is clarity.  Not functionality, not correctness: you can fix those later, so long as the clarity is there.  To write software is to explain, to both computers and humans, of a solution to a problem.  Over 18 years you often find yourself wondering "what was I thinking when I wrote this?"  A constant reminder that something which seemed perfectly obvious when you wrote it, can become a total mystery.  Always be nice to the poor human who's struggling to understand your code, because it may be a future you.
     20And so, I hope libpqxx today is clearer and more maintainable than it was even a few years ago.  C++11 helped a lot, and I hope to move the baseline to C++14 before too long.  C++17 will bring more radical improvements, streamlining the string conversions in particular, and maybe adding some optimisations.  The language is still evolving in wonderful ways, PostgreSQL is still getting better, and libpqxx has more changes to look forward to in its adult life.