Hasura - Citus Compatibility
Introductionβ
As Citus is an extension of Postgres, the way it functions with Hasura is also very similar. Currently the following features are supported with Citus and Hasura:
Tablesβ
Querying from all kinds of tables and views is currently supported. This includes local, reference and distributed tables. All the tables can be tracked from the Console.
Relationshipsβ
The following table describes the supported relationships based on the supported joins in Citus:
To Local | To Reference | To Distributed | |
---|---|---|---|
From Local | Object, Array | Object, Array | |
From Reference | Object, Array | Object, Array | |
From Distributed | Object | Object, Array |
The Hasura Console allows you to add all the supported relationships.
Permissionsβ
All permissions work like on Postgres without any restrictions.
Functionsβ
Citus supported plpgsql
functions are supported on Hasura with the
following restrictions:
- Fetching relationships as part of the functionβs response is currently not supported
Mutationsβ
Mutations are supported in GraphQL Engine with the following restrictions:
- Fetching relationship data as part of
returning
is not yet supported
Subscriptionsβ
Live Queries and Streaming Subscriptions are supported with Citus.
Event Triggersβ
Citus does not yet support creating triggers (See issue) on reference tables. Hence this is currently not supported.
Computed fieldsβ
Computed fields are currently supported on Postgres and BigQuery only. Raise a GitHub issue to request support for computed fields on Citus sources.
Naming conventionsβ
Naming conventions are currently only implemented as an experimental feature on Postgres sources. See docs.