Added
- #1414, Add related orders - @steve-chavez
- On a many-to-one or one-to-one relationship, you can order a parent by a child column
/projects?select=*,clients(*)&order=clients(name).desc.nullsfirst
- On a many-to-one or one-to-one relationship, you can order a parent by a child column
- #1233, #1907, #2566, Allow spreading embedded resources - @steve-chavez
- On a many-to-one or one-to-one relationship, you can unnest a json object with
/projects?select=*,...clients(client_name:name)
- Allows including the join table columns when resource embedding
- Allows disambiguating a recursive m2m embed
- Allows disambiguating an embed that has a many-to-many relationship using two foreign keys on a junction
- On a many-to-one or one-to-one relationship, you can unnest a json object with
- #2340, Allow embedding without selecting any column - @steve-chavez
- #2563, Allow
is.null
ornot.is.null
on an embedded resource - @steve-chavez- Offers a more flexible replacement for
!inner
, e.g./projects?select=*,clients(*)&clients=not.is.null
- Allows doing an anti join, e.g.
/projects?select=*,clients(*)&clients=is.null
- Allows using or across related tables conditions
- Offers a more flexible replacement for
- #1100, Customizable OpenAPI title - @AnthonyFisi
- #2506, Add
server-trace-header
for tracing HTTP requests. - @steve-chavez- When the client sends the request header specified in the config it will be included in the response headers.
- #2694, Make
db-root-spec
stable. - @steve-chavez- This can be used to override the OpenAPI spec with a custom database function
- #1567, On bulk inserts, missing values can get the column DEFAULT by using the
Prefer: missing=default
header - @steve-chavez - #2501, Allow filtering by
IS DISTINCT FROM
using theisdistinct
operator, e.g./people?alias=isdistinct.foo
- #1569, Allow
any/all
modifiers on theeq,like,ilike,gt,gte,lt,lte,match,imatch
operators, e.g./tbl?id=eq(any).{1,2,3}
- @steve-chavez- This converts the input into an array type
- #2561, Configurable role settings - @steve-chavez
- Database roles that are members of the connection role get their settings applied, e.g. doing
ALTER ROLE anon SET statement_timeout TO '5s'
will result in thatstatement_timeout
getting applied for that role. - Works when switching roles when a JWT is sent
- Settings can be reloaded with
NOTIFY pgrst, 'reload config'
.
- Database roles that are members of the connection role get their settings applied, e.g. doing
- #2468, Configurable transaction isolation level with
default_transaction_isolation
- @steve-chavez- Can be set per function
create function .. set default_transaction_isolation = 'repeatable read'
- Or per role
alter role .. set default_transaction_isolation = 'serializable'
- Can be set per function
Fixed
- #2651, Add the missing
get
path item for RPCs to the OpenAPI output - @laurenceisla - #2648, Fix inaccurate error codes with new ones - @laurenceisla
PGRST204
: Column is not foundPGRST003
: Timed out when acquiring connection to db
- #1652, Fix function call with arguments not inlining - @steve-chavez
- #2705, Fix bug when using the
Range
header onPATCH/DELETE
- @laurenceisla- Fix the
"message": "syntax error at or near \"RETURNING\""
error - Fix doing a limited update/delete when an
order
query parameter was present
- Fix the
- #2742, Fix db settings and pg version queries not getting prepared - @steve-chavez
- #2618, Fix
PATCH
requests not recognizing embedded filters and using the top-level resource instead - @steve-chavez
Changed
- #2705, The
Range
header is now only considered onGET
requests and is ignored for any other method - @laurenceisla- Other methods should use the
limit/offset
query parameters for sub-ranges PUT
requests no longer return an error when this header is present (usinglimit/offset
still triggers the error)
- Other methods should use the
- #2733, Remove bulk RPC call with the
Prefer: params=multiple-objects
header. A function with a JSON array or object parameter should be used instead.