mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-15 17:31:56 +03:00
dd46aa6715
When upgrading to GHC v9.4, we noticed a number of failures because the sort order of HashMaps has changed. With this changeset, I am endeavoring to mitigate this now and in the future. This makes one of two changes in a few areas where we depend on the sort order of elements in a `HashMap`: 1. the ordering of the request is preserved with `InsOrdHashMap`, or 2. we sort the data after retrieving it. Fortunately, we do not do this anywhere where we _must_ preserve order; it's "just" descriptions, error messages, and OpenAPI metadata. The main problem is that tests are likely to fail each time we upgrade GHC (or whatever is providing the hash seed). [NDAT-705]: https://hasurahq.atlassian.net/browse/NDAT-705?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9390 GitOrigin-RevId: 84503e029b44094edbbc298651744bc2843c15f3
30 lines
1.4 KiB
YAML
30 lines
1.4 KiB
YAML
description: Explain query with order by and array relationship's column
|
|
url: /v1/graphql/explain
|
|
status: 200
|
|
query:
|
|
query:
|
|
query: |
|
|
query {
|
|
author {
|
|
name
|
|
articles(order_by: {id: desc}){
|
|
title
|
|
}
|
|
}
|
|
}
|
|
response:
|
|
- field: author
|
|
sql: "SELECT coalesce(json_agg(\"root\" ), '[]' ) AS \"root\" FROM (SELECT row_to_json((SELECT\
|
|
\ \"_e\" FROM (SELECT \"_root.base\".\"name\" AS \"name\", \"_root.ar.root.articles\"\
|
|
.\"articles\" AS \"articles\" ) AS \"_e\" ) ) AS \"root\" FROM (SELECT\
|
|
\ * FROM \"public\".\"author\" WHERE ('true') ) AS \"_root.base\" LEFT\
|
|
\ OUTER JOIN LATERAL (SELECT coalesce(json_agg(\"articles\" ORDER BY \"root.ar.root.articles.pg.id\"\
|
|
\ DESC NULLS FIRST), '[]' ) AS \"articles\" FROM (SELECT row_to_json((SELECT\
|
|
\ \"_e\" FROM (SELECT \"_root.ar.root.articles.base\".\"title\" AS \"title\"\
|
|
\ ) AS \"_e\" ) ) AS \"articles\", \"_root.ar.root.articles.base\"\
|
|
.\"id\" AS \"root.ar.root.articles.pg.id\" FROM (SELECT * FROM \"public\".\"\
|
|
article\" WHERE ((\"_root.base\".\"id\") = (\"author_id\")) ORDER BY \"id\"\
|
|
\ DESC NULLS FIRST ) AS \"_root.ar.root.articles.base\" ORDER BY \"root.ar.root.articles.pg.id\"\
|
|
\ DESC NULLS FIRST ) AS \"_root.ar.root.articles\" ) AS \"_root.ar.root.articles\"\
|
|
\ ON ('true') ) AS \"_root\" "
|