packagist martin-georgiev/postgresql-for-doctrine v4.9.0

4 hours ago

4.9.0 (2026-09-28)

Features

  • Add PostGIS geometry validation and repair functions through ST_MakeValid and ST_IsValidReason (#772) (ee07212)
  • Add PostGIS OGC element accessors (#775) (13585e8)
  • Add PostGIS WKT and EWKT text conversion functions (#773) (63d3f61)
  • Add support for geometry_type and srid options to geometry[] and geography[] (#824) (ad8bda5)
  • Add support for the aggregate FILTER clause (#792) (f98c93d)
  • Add support for the ordered-set aggregates (MODE(), PERCENTILE_DISC(), PERCENTILE_CONT()) (#793) (8c0c8fd)
  • Add support for the ranking window functions (ROW_NUMBER, RANK, DENSE_RANK, PERCENT_RANK, CUME_DIST, NTILE) (#799) (e6188f5)
  • Add support for the value window functions (LAG, LEAD, FIRST_VALUE, LAST_VALUE, NTH_VALUE) (#800) (e0f978c)
  • Add support for window functions through OVER (#798) (4209935)
  • Let WktSpatialData parse under the same-named fromString method like every other value object (#767) (5a95db7)
  • Value objects throw their own exception (#752) (a50c9db)

Bug Fixes

  • Accept LCA with an array of paths (#850) (d02ccf8)
  • Accept ST_COLLECTIONEXTRACT with only a geometry (#846) (131da97)
  • Accept ST_SCALE with a geometry factor (#847) (d973e71)
  • Accept ST_SUBDIVIDE with only a geometry (#845) (4981c85)
  • Accept TO_TIMESTAMP with a Unix epoch (#848) (77da8cd)
  • Accept WIDTH_BUCKET with an array of thresholds (#849) (8a5542d)
  • Accept a signed number wherever a DQL function takes a numeric argument (#833) (8f0b9b9)
  • Accept every real and double precision array item PostgreSQL accepts (#838) (9ff6c1d)
  • Accept only digits and letter numbers in lquery and ltxtquery labels (#840) (bd40ec6)
  • Keep a fetch-joined collection's order out of an aggregate's ORDER BY (#830) (a9753fa)
  • Keep an empty ltree inside an ltree array (#829) (df4ad76)
  • Keep every decimal when reading geometry and geography columns (#825) (3370ecd)
  • Keep every microsecond of long interval times (#834) (710b8cf)
  • Keep every significant digit of floats in composite fields and numeric ranges (#831) (0fc765f)
  • Keep every significant digit of the floats a WKT point is built from (#853) (b3198c1)
  • Keep the sign of a range bound of positive infinity below or negative infinity above (#832) (e309d3d)
  • Read and write range bounds with a five-digit year or a BC date (#836) (2181392)
  • Read geometry and geography arrays through the ORM (#821) (4771a42)
  • Read geometry and geography columns through the ORM on ORM 2 (#823) (631e73c)
  • Read PostgreSQL arrays whose index does not start at one (#839) (e0124fa)
  • Read the glued dimensional modifier spelling in the scalar spatial types (#827) (6bffe41)
  • Reject a DATE_EXTRACT field that is not a string literal (#844) (774c638)
  • Reject a cidr with bits set right of its netmask (#837) (3d91660)
  • Remove ND_BOUNDING_BOX_DISTANCE, whose <<#>> operator was never released in a stable PostGIS version (#813) (1be13d3)
  • Swap the inverted exception family on some DBAL types (#781) (7f02b8d)
  • Treat a discrete range with no value between its bounds as empty (#835) (03cd58a)
  • Write text array and vector floats through PostgresFloat (#841) (568909a)

Code Refactoring

  • Keep PostgreSQL float conversion in one internal Utils class (#852) (366637e)
  • The exception factories follow their own message rule (#757) (b89c15d)
  • The value objects throw their own exception family (#754) (c7b316b)

Don't miss a new postgresql-for-doctrine release

NewReleases is sending notifications on new releases.