30th alpha release for v1.0.0
Pre-releaseKnown Issues
There is a bug in this release which causes applying metadata (exported from a previous version) to fail. A workaround is to add remote_schemas: []
as a top-level key in the meatadata.yaml
file.
A fix (#1121) is already in the works and we should be releasing it by Wednesday.
Changelog
There is a minor breaking change so please read carefully before upgrading to v1.0.0-alpha30
.
Breaking change
The behavior of desc
in order_by
clause is now changed to DESC NULLS FIRST
from DESC NULLS LAST
. This was needed as Postgres cannot use a btree index on the ordering column with DESC NULLS LAST
resulting in bad performance. After the change, the behavior is similar to that o Postgres when you specify ORDER BY column DESC
.
This will only affect you if you are using desc
in an order_by
clause with a column which is nullable. If you want the previous behavior, you can force it by {order_by: {column: desc_nulls_last}
.
Features
-
Postgres's
DISTINCT ON
feature is now supported in queries with a new argumentdistinct_on
. You can find an example here: https://docs.hasura.io/1.0/graphql/manual/queries/distinct-queries.html and Postgres's docs here: https://www.postgresql.org/docs/11/sql-select.html#SQL-DISTINCT. -
We have added experimental support for remote schemas/schema stitching in graphql-engine. If you currently have your own graphql server which schema stitches with hasura, we do not recommend you to use this feature yet as it has these limitations:
- Type names and top level field names need to be unique across all merged schemas.
- Top level fields from different GraphQL servers cannot be used in the same query/mutation. All top-level fields have to be from the same GraphQL server.
- Subscriptions on remote GraphQL server are not supported.
- Interfaces and unions are not supported - if a remote schema has interfaces/errors, an error will be thrown if you try to merge it.
These limitations will be addressed over the course of next few releases.
Fixes
- The new SQL generation logic for
_in
introduced inalpha29
couldn't handle empty arrays for input. This is now fixed. - Previously the server docker image had
ENV HASURA_GRAPHQL_ENABLE_CONSOLE=true
by default. This has been removed in this release, which means that console will not be enabled unless this env var is added or the--enable-console
is used.
Commit history
- server: handle empty array for _in and _nin operators, fix #1075 (#1076)
- server: change descending ordering to nulls first (fix #1008) (#1009)
- server: support Postgres's DISTINCT ON (close #1040) (#1099)
- server: update server dockerfile, install manifests and docs (#1097)
- server: cli: console: adds basic support for remote schemas/schema stitching (#952)