Skip to content

Releases: PostgREST/postgrest

v9.0.1

08 Jun 23:26
39e3246
Compare
Choose a tag to compare

Fixed

  • #2165, Fix json/jsonb columns should not have type in OpenAPI spec - @clrnd
  • #2020, Execute deferred constraint triggers when using Prefer: tx=rollback - @wolfgangwalther
  • #2077, Fix is not working with upper or mixed case values like NULL, TrUe, FaLsE - @steve-chavez
  • #2024, Fix schema cache loading when views with XMLTABLE and DEFAULT are present - @wolfgangwalther
  • #1724, Fix wrong CORS header Authentication -> Authorization - @wolfgangwalther
  • #2120, Fix reading database configuration properly when = is present in value - @wolfgangwalther
  • #2135, Remove trigger functions from schema cache and OpenAPI output, because they can't be called directly anyway. - @wolfgangwalther
  • #2101, Remove aggregates, procedures and window functions from the schema cache and OpenAPI output. - @wolfgangwalther
  • #2153, Fix --dump-schema running with a wrong PG version. - @wolfgangwalther
  • #2042, Keep working when EMFILE(Too many open files) is reached. - @steve-chavez
  • #2147, Ignore Content-Type headers for GET requests when calling RPCs. - @laurenceisla
    • Previously, GET without parameters, but with Content-Type: text/plain or Content-Type: application/octet-stream would fail with 404 Not Found, even if a function without arguments was available.
  • #2239, Fix misleading disambiguation error where the content of the relationship key looks like valid syntax - @laurenceisla
  • #2294, Disable parallel GC for better performance on higher core CPUs - @steve-chavez
  • #1076, Fix using CPU while idle - @steve-chavez

v9.0.0

26 Nov 20:05
c9f017c
Compare
Choose a tag to compare

Added

  • #1783, Include partitioned tables into the schema cache. Allows embedding, UPSERT, INSERT with Location response, OPTIONS request and OpenAPI support for partitioned tables - @laurenceisla
  • #1878, Add Retry-After hint header when in recovery mode - @gautam1168
  • #1735, Allow calling function with single unnamed param through RPC POST. - @steve-chavez
    • Enables calling a function with a single json parameter without using Prefer: params=single-object
    • Enables uploading bytea to a function with Content-Type: application/octet-stream
    • Enables uploading raw text to a function with Content-Type: text/plain
  • #1938, Allow escaping inside double quotes with a backslash, e.g. ?col=in.("Double\"Quote"), ?col=in.("Back\\slash") - @steve-chavez
  • #1075, Allow filtering top-level resource based on embedded resources filters. This is enabled by adding !inner to the embedded resource, e.g. /projects?select=*,clients!inner(*)&clients.id=eq.12- @steve-chavez, @Iced-Sun
  • #1857, Make GUC names for headers, cookies and jwt claims compatible with PostgreSQL v14 - @laurenceisla, @robertsosinski
    • Getting the value for a header GUC on PostgreSQL 14 is done using current_setting('request.headers')::json->>'name-of-header' and in a similar way for request.cookies and request.jwt.claims
    • PostgreSQL versions below 14 can opt in to the new JSON GUCs by setting the db-use-legacy-gucs config option to false (true by default)
  • #1988, Allow specifying unknown for the is operator - @steve-chavez
  • #2031, Improve error message for ambiguous embedding and add a relevant hint that includes unambiguous embedding suggestions - @laurenceisla

Fixed

  • #1871, Fix OpenAPI missing default values for String types and identify Array types as "array" instead of "string" - @laurenceisla
  • #1930, Fix RPC return type handling for RETURNS TABLE with a single column. Regression of #1615. - @wolfgangwalther
  • #1938, Fix using single double quotes(") and backslashes(/) as values on the "in" operator - @steve-chavez
  • #1992, Fix schema cache query failing with standard_conforming_strings = off - @wolfgangwalther

Changed

  • #1949, Drop support for embedding hints used with .(e.g. select=projects.client_id(*)), ! should be used instead(e.g. select=projects!client_id(*)) - @steve-chavez
  • #1783, Partitions (created using PARTITION OF) are no longer included in the schema cache. - @laurenceisla
  • #2038, Dropped support for PostgreSQL 9.5 - @wolfgangwalther

v8.0.0

26 Jul 06:07
Compare
Choose a tag to compare

Added

Fixed

  • #1592, Removed single column restriction to allow composite foreign keys in join tables - @goteguru
  • #1530, Fix how the PostgREST version is shown in the help text when the .git directory is not available - @monacoremo
  • #1094, Fix expired JWTs starting an empty transaction on the db - @steve-chavez
  • #1162, Fix location header for POST request with select= without PK - @wolfgangwalther
  • #1585, Fix error messages on connection failure for localized postgres on Windows - @wolfgangwalther
  • #1636, Fix application/octet-stream appending charset=utf-8 - @steve-chavez
  • #1469, #1638 Fix overloading of functions with unnamed arguments - @wolfgangwalther
  • #1560, Return 405 Method not Allowed for GET of volatile RPC instead of 500 - @wolfgangwalther
  • #1584, Fix RPC return type handling and embedding for domains with composite base type (#1615) - @wolfgangwalther
  • #1608, #1635, Fix embedding through views that have COALESCE with subselect - @wolfgangwalther
  • #1572, Fix parsing of boolean config values for Docker environment variables, now it accepts double quoted truth values ("true", "false") and numbers("1", "0") - @wolfgangwalther
  • #1624, Fix using app.settings.xxx config options in Docker, now they can be used as PGRST_APP_SETTINGS_xxx - @wolfgangwalther
  • #1814, Fix panic when attempting to run with unix socket on non-unix host and properly close unix domain socket on exit - @monacoremo
  • #1825, Disregard internal junction(in non-exposed schema) when embedding - @steve-chavez
  • #1846, Fix requests for overloaded functions from html forms to no longer hang (#1848) - @laurenceisla
  • #1858, Add a hint and clarification to the no relationship found error - @laurenceisla
  • #1841, Show comprehensive error when an RPC is not found in a stale schema cache - @laurenceisla
  • #1875, Fix Location headers in headers only representation for null PK inserts on views - @laurenceisla

Changed

  • #1522, #1528, #1535, Docker images are now built from scratch based on a the static PostgREST executable (#1494) and with Nix instead of a Dockerfile. This reduces the compressed image size from over 30mb to about 4mb - @monacoremo
  • #1461, Location header for POST request is only included when PK is available on the table - @wolfgangwalther
  • #1560, Volatile RPC called with GET now returns 405 Method not Allowed instead of 500 - @wolfgangwalther
  • #1584, #1849 Functions that declare returns composite_type no longer return a single object array by default, only functions with returns setof composite_type return an array of objects - @wolfgangwalther
  • #1604, Change the default logging level to log-level=error. Only requests with a status greater or equal than 500 will be logged. If you wish to go back to the previous behaviour and log all the requests, use log-level=info - @steve-chavez
    • Because currently there's no buffering for logging, defaulting to the error level(minimum logging) increases throughput by around 15% for simple GET queries(no embedding, with filters applied).
  • #1617, Dropped support for PostgreSQL 9.4 - @wolfgangwalther
  • #1679, Renamed config settings with fallback aliases. e.g. max-rows is now db-max-rows, but max-rows is still accepted - @wolfgangwalther
  • #1656, Allow Prefer=headers-only on POST requests and change default to minimal (#1813) - @laurenceisla
  • #1854, Dropped undocumented support for gzip compression (which was surprisingly slow and easily enabled by mistake). In some use-cases this makes Postgres up to 3x faster - @aljungberg
  • #1872, Send startup/worker logs to stderr to differentiate from access logs on stdout - @steve-chavez

v7.0.1

18 May 20:37
Compare
Choose a tag to compare

Fixed

Changed

  • From this version onwards, the release page will include a single Linux static executable that can be run on any Linux distribution.

v7.0.0

03 Apr 18:02
Compare
Choose a tag to compare

Added

  • #1417, Accept: application/vnd.pgrst.object+json behavior is now enforced for POST/PATCH/DELETE regardless of Prefer: return=representation/minimal - @dwagin
  • #1415, Add support for user defined socket permission via server-unix-socket-mode config option - @Dansvidania
  • #1383, Add support for HEAD request - @steve-chavez
  • #1378, Add support for Prefer: count=planned and Prefer: count=estimated on GET /table - @steve-chavez, @LorenzHenk
  • #1327, Add support for optional query parameter on_conflict to upsert with specified keys for POST - @ykst
  • #1430, Allow specifying the foreign key constraint name(/source?select=fk_constraint(*)) to disambiguate an embedding - @steve-chavez
  • #1168, Allow access to the Authorization header through the request.header.authorization GUC - @steve-chavez
  • #1435, Add request.method and request.path GUCs - @steve-chavez
  • #1088, Allow adding headers to GET/POST/PATCH/PUT/DELETE responses through the response.headers GUC - @steve-chavez
  • #1427, Allow overriding provided headers(Location, Content-Type, etc) through the response.headers GUC - @steve-chavez
  • #1450, Allow multiple schemas to be exposed in one instance. The schema to use can be selected through the headers Accept-Profile for GET/HEAD and Content-Profile for POST/PATCH/PUT/DELETE - @steve-chavez, @MahmoudKassem

Fixed

Changed

  • #1385, bulk RPC call now should be done by specifying a Prefer: params=multiple-objects header - @steve-chavez
  • #1401, resource embedding now outputs an error when multiple relationships between two tables are found - @steve-chavez
  • #1423, default Unix Socket file mode from 755 to 660 - @dwagin
  • #1430, Remove embedding with duck typed column names GET /projects?select=client(*)- @steve-chavez
    • You can rename the foreign key to client to make this request work in the new version: alter table projects rename constraint projects_client_id_fkey to client
  • #1413, Change server-proxy-uri config option to openapi-server-proxy-uri - @steve-chavez

v6.0.2

22 Aug 18:44
713b214
Compare
Choose a tag to compare

Fixed

  • #1369, Change raw-media-types to accept a string of comma separated MIME types - @Dansvidania
  • #1368, Fix long column descriptions being truncated at 63 characters in PostgreSQL 12 - @amedeedaboville
  • #1348, Go back to converting plus "+" to space " " in querystrings by default - @steve-chavez

Deprecated

  • #1348, Deprecate . symbol for disambiguating resource embedding(added in #918). The url-safe '!' should be used instead. We refrained from using + as part of our syntax because it conflicts with some http clients and proxies.

v6.0.1

31 Jul 00:30
Compare
Choose a tag to compare

Added

  • #1349, Add user defined raw output media types via raw-media-types config option - @Dansvidania
  • #1243, Add websearch_to_tsquery support - @herulume

Fixed

  • #1336, Error when testing on Chrome/Firefox: text/html requested but a single column was not selected - @Dansvidania
  • #1334, Unable to compile v6.0.0 on windows - @steve-chavez

v6.0.0

21 Jun 21:23
dd86fe3
Compare
Choose a tag to compare

Added

  • #1186, Add support for user defined unix socket via server-unix-socket config option - @Dansvidania
  • #690, Add ?columns query parameter for faster bulk inserts, also ignores unspecified json keys in a payload - @steve-chavez
  • #1239, Add support for resource embedding on materialized views - @vitorbaptista
  • #1264, Add support for bulk RPC call - @steve-chavez
  • #1278, Add db-pool-timeout config option - @Qu4tro
  • #1285, Abort on wrong database password - @Qu4tro
  • #790, Allow override of OpenAPI spec through root-spec config option - @steve-chavez
  • #1308, Accept text/plain and text/html for raw output - @steve-chavez

Fixed

Changed

  • #1288, Change server-host default of 127.0.0.1 to !4

Deprecated

  • #1288, Deprecate . symbol for disambiguating resource embedding(added in #918). '+' should be used instead. Though '+' is url safe, certain clients might need to encode it to '%2B'.

Removed

  • #1288, Removed support for schema reloading with SIGHUP, SIGUSR1 should be used instead - @steve-chavez

v5.2.0

13 Dec 04:34
Compare
Choose a tag to compare

Added

  • #1205, Add support for parsing JSON Web Key Sets - @russelldavies
  • #1203, Add support for reading db-uri from a separate file - @zhoufeng1989
  • #1200, Add db-extra-search-path config for adding schemas to the search_path, solves issues related to extensions created on the public schema - @steve-chavez
  • #1219, Add ability to quote column names on filters - @steve-chavez

Fixed

v5.1.0

02 Sep 13:46
Compare
Choose a tag to compare

Added

Fixed

Changed

  • #1099, Numbers in json path ?select=data->1->>key now get treated as json array indexes instead of keys - @steve-chavez
  • #1128, Allow finishing a json path with a single arrow ->. Now a json can be obtained without resorting to casting, Previously: /json_arr?select=data->>2::json, now: /json_arr?select=data->2 - @steve-chavez
  • #724, Change server-host default of *4 to 127.0.0.1

Deprecated

  • #724, SIGHUP deprecated, SIGUSR1 should be used instead