Releases: svenvc/P3
Releases · svenvc/P3
Version 1.4
- 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
- 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
- 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
- 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
Initial/first release tag as a starting point.