graphql-engine icon indicating copy to clipboard operation
graphql-engine copied to clipboard

Support for more JSONB operators for Postgres

Open vijayprasanna13 opened this issue 1 year ago • 3 comments

Description

Currently, the documentation for JSONB column operators has support for only _contains, _contained_in, _has_key, _has_keys_any and _has_keys_all. However, in PostgreSQL, we can execute queries using operators such as >, <, =, among others, as illustrated in the example below:

select * from service_item_instances where (custom_data ->> 'screen_size')::int > 30;

The documented operators might not suffice for operations like >, <, =, and similar comparisons.

vijayprasanna13 avatar Feb 21 '24 12:02 vijayprasanna13

@vijayprasanna13 @SamirTalwar Any updates on this? whether it will come in future or cant be done?

anish-pr avatar Feb 23 '24 10:02 anish-pr

Hey @anish-pr, thanks for pinging me.

Currently, we don't support this kind of composition over JSONB columns, and doing so would require a significant modification to our GraphQL syntax and schema. There are no plans to make changes to this in Hasura v2. We plan on providing much greater support for JSONB columns with v3, but it won't be in the first batch of functionality.

We suggest you use one of two features to accomplish this.

  1. Computed fields will allow you to transform the JSONB column so that you can work with it.
  2. Native queries let you write your own SQL and then automatically convert it into a GraphQL structure for you.

Hopefully one of those suits your needs!

SamirTalwar avatar Feb 23 '24 12:02 SamirTalwar

@SamirTalwar @vijayprasanna13 any updates on this? when can we expect this? we have a growing need for filtering based on JSONB column values like greater than, less than, equals, etc. We use Hasura extensively for all our workflows, and sometimes because of the nature of the data, it is schemaless too. This would help us.

anish-pr avatar Jul 02 '24 06:07 anish-pr