The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 2.0.0

  • Major changes:
    • Make minimum supported server 7.4. [GSM]
    • Overhaul COPY functions: deprecate pg_getline, pg_putline, and pg_endcopy. The new functions are pg_getcopydata, pg_getcopydata_async, pg_putcopydata, and pg_putcopyend. [GSM]
    • Add support for arrays: can pass in arrayrefs to execute, and they are automatically returned as arrays when fetching. [GSM]
    • Add support for asynchronous queries. [GSM]
    • Allow raw transaction statements through - in other words, do not croak if $dbh->prepare("COMMIT") is attempted. Not only was this a little too controlling, there is a growing host of other commands such as "COMMIT PREPARED" that we need to allow. [GSM].
    • Check transaction status after each command, to allow things such as 'PREPARE TRANSACTION' to work properly. (CPAN bug #32423) [GSM]
    • Overhauled the data type system. [GSM]
    • Switch from cvs to subversion. Switch from gborg to perl.org.
    • Change versioning system to three numbered system.
  • Bug fixes:
    • Add $dbh->{pg_placeholder_dollaronly} to allow '?' and other symbols to be used in prepared statements without getting interpreted as placeholders, i.e. the geometric operator '?#' (CPAN bug #24124) [GSM]
    • Fix memory leak in bytea quoting. (CPAN bug #21392). Fix memory leak in pg_notifies. [Stephen Marshall smarshall@wsi.com]
    • Fix memory leak when using savepoints. (CPAN bug #29791)
      • airwave@cpan.org
    • Use adbin, not adsrc, when figuring out the sequence name for the last_insert_id() method. This allows the function to work properly if the sequence name is changed. Note that {pg_cache=>0} should be passed to the function if you expect this might happen. (CPAN bug #30924) [GSM]
    • Use unsigned chars when parsing passed-in queries, preventing UTF-8 strings from ruining the prepare. UTF-16 may still cause problems. (CPAN bug #31577) [GSM]
    • Fix crash when executing query with two placeholders side by side. Thanks to Daniel Browning for spotting this. [GSM]
    • Skip item if no matching key in foreign_key_info. (CPAN bug #32308) [GSM]
    • Fix bug in last_insert_id. (CPAN bug #15918) [orentocy@gmail.com]
    • Fix pg_description join in table_info(). [Max Cohan max@endpoint.com]
    • Make sure arrays handle UTF-8 smoothly (CPAN bug #32479) [GSM]
    • Force column names to respect utf8-ness. Per report from Ch Lamprect. [GSM]
    • Make sure array items are marked as UTF as needed. (CPAN bug #29656) [GSM]
    • Force SQL_REAL and SQL_NUMERIC to be float8 not float4. (CPAN bug #30010) [GSM]
    • Allow objects with stringification overloading to work with quote(). (CPAN bug #32868) [David E. Wheeler and GSM]
    • Use prepare_cached in last_insert_id function. (CPAN bug #24313)
    • Switch from pow to powf to support AIX compiler issue. (CPAN bug #24579) [GSM]
  • Enhancements and API changes:
    • Complain loudly and fail to proceed if Makefile.PL finds no -lpq [GSM]
    • Add three new columns to column_info, to return unquoted version: pg_schema, pg_table, and pg_columns. Add all three to primary_key_info, and the first two to table_info (CPAN bug #20282) [GSM]
    • Change $dbh->{User} to $dbh->{Username} [GSM]
    • Change $dbh->{Name} to return the entire DSN string, minus the 'dbi:Pg:' part. Thanks to Mark Stosberg for the idea. [GSM]
    • Allow data_sources to accept optional arguments. [GSM]
    • Add private_attribute_info() method. [GSM]
    • Add SQL_INTERVAL and others to types.c [GSM]
    • Added statistics_info function [Brandon Black blblack@gmail.com]
    • Be much more flexible in test connection options. [GSM]
    • Overhaul test suite, allow tests to be run individually. [GSM]
  • New and experimental:
    • Quick support for named trace level 'SQL' [GSM]
    • Very experimental support for bind_param_inout, use with caution. [GSM]
  • Documentation fixes:

Modules

PostgreSQL database driver for the DBI module