graphql-engine/server
Antoine Leblanc b9ee669ee1 Improve remote joins collect
### Description

This PR improves the `Collect` module by re-ordering the functions to make clear what is public API and what is internal implementation. Furthermore, it makes use of `traverseOf` and `traverseFields` to reduce duplication. To do so, it also introduces a few more lenses in the rest of the codebase, and uses this opportunity to harmonize some structures that were not following our naming convention.

While the diff is massive, a lot of it is just code moving around; the file is now divided into separate sections:
- entry points: IR types for which we want to run the collection
- internal monadic structure
- internal traversals: functions that do nothing but drill down further
- actual transformations: the three cases where we do actually have work to do: selection sets on which we do want to insert join columns, extract remote relationships... those functions are left unchanged by this PR
- internal helpers

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3863
GitOrigin-RevId: f7cbecfae9eed9737b62acfa5848bfcf9d4651f6
2022-03-10 06:18:48 +00:00
..
bench-wrk server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
benchmarks ci: hide old benchmark reports for PRs with many comments 2022-02-24 20:09:17 +00:00
documentation Enable remote joins from remote schemas in the execution engine. 2022-03-09 03:18:22 +00:00
packaging ci: add support for linux/arm64 docker image 2021-12-09 09:34:22 +00:00
src-exec server: add metric for the metadata resource version 2022-03-08 23:00:27 +00:00
src-lib Improve remote joins collect 2022-03-10 06:18:48 +00:00
src-rsr server/postgres: improve fetching tables' and functions' metadata (from database) 2022-03-08 13:03:14 +00:00
src-test Reduce the size of SelectSpec test to reduce memory usage. 2022-03-10 03:06:55 +00:00
tests/integration server: add metric for the metadata resource version 2022-03-08 23:00:27 +00:00
tests-hspec server: add metric for the metadata resource version 2022-03-08 23:00:27 +00:00
tests-py Customize column GraphQL schema descriptions 2022-03-09 06:35:46 +00:00
.dockerignore update packages (#251) 2018-08-08 13:10:13 +05:30
.gitignore server/citus: feature branch 2021-05-21 02:47:51 +00:00
commit_diff.txt Rewrite GraphQL schema generation and query parsing (close #2801) (#4111) 2020-08-21 12:27:01 -05:00
COMPILING-ON-M1.md update contributing and compiling on m1 2022-01-21 11:21:49 +00:00
CONTRIBUTING.md server: testing guidelines 2022-03-08 09:53:27 +00:00
graphql-engine.cabal server: split the Postgres Connection module 2022-03-09 07:15:17 +00:00
Makefile ci: misc. cleanup, naming 2022-01-03 06:26:39 +00:00
STYLE.md server, CI: use ormolu as a formatter for Haskell sources 2021-09-23 21:23:21 +00:00
testing-guidelines.md server: testing guidelines 2022-03-08 09:53:27 +00:00