This minor version adds bug fixes and some features that provide stability to v10.0.0. These release notes include the changes added in versions 10.1.0, 10.1.1 and 10.1.2. You can look at the detailed changelog and download the pre-compiled binaries on the GitHub release page.


Pool Connection Lifetime

To prevent memory leaks caused by long-lived connections, PostgREST limits their lifetime in the pool through db-pool-max-lifetime.

Pool Connection Acquisition Timeout

There is now a time limit to wait for pool connections to be acquired. If a new request cannot get a connection in the time specified in db-pool-acquisition-timeout then a response with a 504 status is returned.

Documentation improvements


  • Removed db-pool-timeout option because it was removed in the hasql-pool library that PostgREST uses for SQL connections. (#2444)


  • Deprecate bulk-calls when including the Prefer: params=multiple-objects in the request. It is preferable to use a function with an array or JSON parameter for a better performance. (#1385)

Bug fixes

  • Reduce allocations communication with PostgreSQL, particularly for request bodies. (#2261, #2349, #2467)

  • Fix SIGUSR1 to fully flush the connection pool. (#2401, #2444)

  • Fix opening an empty transaction on failed resource embedding. (#2428)

  • Fix embedding the same table multiple times. (#2455)

  • Fix a regression when embedding views where base tables have a different column order for foreign key columns (#2518)

  • Fix a regression with the Location header when inserting into views with primary keys from multiple tables (#2458)

  • Fix a regression in OpenAPI output with mode follow-privileges (#2356)

  • Fix infinite recursion when loading schema cache with self-referencing view (#2283)

  • Return status code 200 instead of 404 for PATCH requests which don’t affect any rows (#2343)

  • Treat the computed relationships that do not return SETOF as M2O/O2O relationship (#2481)

  • Fix embedding a computed relationship with a normal relationship (#2534)

  • Fix error message when [] is used inside select (#2362)

  • Disallow !inner on computed columns (#2475)

  • Ignore leading and trailing spaces in column names when parsing the query string (#2285)

  • Fix UPSERT with PostgreSQL 15 (#2545)

  • Fix embedding views with multiple references to the same base column (#2459)

  • Fix regression when embedding views with partial references to multi column foreign keys (#2548)

  • Fix regression when requesting limit=0 and db-max-row is set (#2558)

  • Return a clear error without hitting the database when trying to update or insert an unknown column with ?columns (#2542)

  • Fix bad M2M embedding on RPC (#2565)

  • Replace misleading error message when no function is found with a hint containing functions/parameters names suggestions (#2575)

  • Move explanation about “single parameters” from the message to the details in the error output (#2582)

  • Replace misleading error message when no relationship is found with a hint containing parent/child names suggestions (#2569)

  • Add the required OpenAPI items object when the parameter is an array (#1405)

  • Add upsert headers for POST requests to the OpenAPI output (#2592)

  • Fix foreign keys pointing to VIEW instead of TABLE in OpenAPI output (#2623)

  • Consider any PostgreSQL authentication failure as fatal and exit immediately (#2622)

  • Fix NOTIFY pgrst not reloading the db connections catalog cache (#2620)

  • Fix db-pool-acquisition-timeout not logging to stderr when the timeout is reached (#2667)

  • Fix PostgreSQL resource leak with long-lived connections through the db-pool-max-lifetime configuration (#2638)

  • There is now a stricter parsing of the query string. Instead of silently ignoring, the parser now returns a PostgREST error on invalid syntax. (#2537)


Big thanks from the PostgREST team to our sponsors!

../_images/cybertec-new.png ../_images/2ndquadrant.png ../_images/retool.png ../_images/gnuhost.png ../_images/supabase.png ../_images/oblivious.jpg
  • Evans Fernandes

  • Jan Sommer

  • Franz Gusenbauer

  • Daniel Babiak

  • Tsingson Qin

  • Michel Pelletier

  • Jay Hannah

  • Robert Stolarz

  • Nicholas DiBiase

  • Christopher Reid

  • Nathan Bouscal

  • Daniel Rafaj

  • David Fenko

  • Remo Rechkemmer

  • Severin Ibarluzea

  • Tom Saleeba

  • Pawel Tyll

If you like to join them please consider supporting PostgREST development.