Skip to main content
Version: v2.x

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 LocalTo ReferenceTo Distributed
From LocalObject, ArrayObject, Array
From ReferenceObject, ArrayObject, Array
From DistributedObjectObject, 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.