graphql-engine/server/tests-py/queries/explain/limit_orderby_column_query.yaml
Samir Talwar dd46aa6715 server: Preserve ordering when possible, and sort when it's not.
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
2023-06-02 09:31:26 +00:00

24 lines
934 B
YAML

description: Explain query with limit and order by table column
url: /v1/graphql/explain
status: 200
query:
query:
query: |
query {
article(limit: 5, order_by: {author_id: desc}){
id
title
content
}
}
response:
- field: article
sql: "SELECT coalesce(json_agg(\"root\" ORDER BY \"root.pg.author_id\" DESC NULLS\
\ FIRST), '[]' ) AS \"root\" FROM (SELECT row_to_json((SELECT \"_e\" FROM\
\ (SELECT \"_root.base\".\"id\" AS \"id\", \"_root.base\".\"title\" AS \"title\"\
, \"_root.base\".\"content\" AS \"content\" ) AS \"_e\" ) ) AS \"root\"\
, \"_root.base\".\"author_id\" AS \"root.pg.author_id\" FROM (SELECT * FROM\
\ \"public\".\"article\" WHERE ('true') ORDER BY \"author_id\" DESC NULLS FIRST\
\ LIMIT 5 ) AS \"_root.base\" ORDER BY \"root.pg.author_id\" DESC NULLS FIRST\
\ ) AS \"_root\" "