Skip to content

Releases: svenvc/P3

Version 1.4

31 May 10:04
e7155c4
Compare
Choose a tag to compare
  • Add SCRAM-SHA-256 authentication method (sponsored by Schmidt GmbH)
  • Improve parsing speed for DateAndTime and Date based on the ISO PSQL 8601 format (as suggested by Esteban Maringolo)
  • Extend P3ConnectionEstablishedEvent to report authentication type
  • Extend the P3 connection URL with TLS/SSL to psql://username:password@localhost:5432/databasename?sslmode=require (selectively based on PostgreSQL's own format)
  • Make P3Client>>#url: more forgiving regarding the scheme, psql:// postgres:// as well as postgresql:// are now accepted (but psql:// remains our preferred shorthand)
  • Use GitHub Actions CI with tests on Pharo 7 to 10 against latest PostgreSQL database version
  • Move #isServerVersionAtLeastMajor:minor: to P3Client and make it more robust
  • Add a mechanism to retry faulty connections (see #retryCount and #retryDelay)
  • Fix P3Client>>#runQueryResult to better handle multiple commands in one query (as suggested by Yann Lesage)
  • Make it possible to use ZTimestamp with nanasecond precision as alternative to DateAndTime
  • Improve and extend unit tests related to and impacted by timezones, they now pass on a local Postgres server in the same timezone as against one in UTC
  • Add support for _oid oid[] type 1028 (as contributed by Dmitriy Dorofeev)
  • Improve documentation (Authentication, Logging)
  • Various bug fixes

Version 1.3

21 Sep 08:50
Compare
Choose a tag to compare
  • Add object logging, see the P3LogEvent hierarchy
  • Added P3ConnectionPool with tests
  • Better management of prepared statements
  • Add support for Chronology objects Time, Date and DateAndTime to be used directly as binding arguments for formatted/prepared statements, with tests
  • Added basic support for array based parameter binding, see P3ValuesArray and #printValuesArrayOn:
  • Better documentation and fallback for session/connection timezone and character encoder/decoder
  • Reimplementation of P3Error adding unique codes and #isLocal as opposed to PostreSQL server generated messages; signalling now happens with instances created by class side accessors
  • Bring back P3Client>>#queryEncoding as an alias for P3Client>>#serverEncoding as compatibility support for PharoDatabaseAccessor
  • Add P3DatabaseDriver>>#connectSSL: for GLORP
  • Various cleanups and internal improvements

Version 1.2

12 Feb 14:16
Compare
Choose a tag to compare
  • P3PreparedStatement is now joined by a polymorphic P3FormattedStatement working client side on text strings
  • P3PreparedStatement & P3FormattedStatement now share the same double dispatch mechanism to process argument binding
  • Added convenience methods #listDatabases #listSchemas & #listTablesInSchema: to P3Client
  • Added convenience methods #firstColumnData & #firstFieldOfFirstRecord to P3Result
  • Added dynamic ENUM support via #loadEnums in P3Client
  • Add support for the 7 geometric types POINT, CIRCLE, LINE, LSEG, POLYGON & PATH with corresponding objects P3Point, P3Circle, P3Line, P3LineSegment, P3Polygon & P3Path
  • Add support for the INTERVAL type with P3Interval object
  • Added P3Client>>#serverVersion accessor
  • Add support for BIT & VARBIT types with P3FixedBitString & P3BitString objects
  • Add TIMETZ support
  • Organised P3 package with tags
  • More & better documentation & unit tests

version 1.1

31 Dec 10:43
Compare
Choose a tag to compare
  • added support for Postgres Extended Query protocol (P3PreparedStatement) (thx Jan @jvdsandt)
  • added support for reading array type values (currently INTEGER[] FLOAT[] BOOLEAN[] TEXT[] VARCHAR[])
  • added P3-Tests package and moved all tests there
  • more comments
  • more unit tests

version 1.0

18 Dec 11:06
2fe6124
Compare
Choose a tag to compare

Initial/first release tag as a starting point.