From ea37fd2550e8751412a5db24f5bd304365f269d1 Mon Sep 17 00:00:00 2001 From: Antoine Leblanc Date: Fri, 13 Nov 2020 10:00:39 +0100 Subject: [PATCH] add support for POSIX operators --- cli-ext/package.json | 4 +- cli-ext/tests/sdl/payload.js | 6466 +++++++++-------- .../sample-apps/react-relay/schema.graphql | 5 +- .../components/Common/FilterQuery/types.ts | 6 +- .../components/Common/FilterQuery/utils.ts | 16 + .../PermissionBuilder/utils.js | 16 + .../src/components/Services/Data/constants.js | 21 + .../src/unused/BoolExp.schema.json | 16 + contrib/metadata-types/src/unused/BoolExp.ts | 4 + .../api-reference/graphql-api/mutation.rst | 4 + .../core/api-reference/graphql-api/query.rst | 8 + .../schema-metadata-api/syntax-defs.rst | 9 + docs/graphql/core/queries/query-filters.rst | 2 +- .../Hasura/Backends/Postgres/SQL/DML.hs | 14 +- .../Backends/Postgres/Translate/BoolExp.hs | 17 + .../src-lib/Hasura/GraphQL/Schema/BoolExp.hs | 12 + server/src-lib/Hasura/RQL/IR/BoolExp.hs | 10 + .../search/select_city_where_ilike.yaml | 2 +- .../search/select_city_where_nilike.yaml | 2 +- .../search/select_city_where_nlike.yaml | 2 +- .../select_city_where_not_posix_ci.yaml | 20 + .../select_city_where_not_posix_cs.yaml | 24 + .../search/select_city_where_not_similar.yaml | 2 +- .../search/select_city_where_posix_ci.yaml | 18 + .../search/select_city_where_posix_cs.yaml | 18 + .../search/select_city_where_similar.yaml | 2 +- server/tests-py/test_v1_queries.py | 12 + 27 files changed, 3696 insertions(+), 3036 deletions(-) create mode 100644 server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_ci.yaml create mode 100644 server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_cs.yaml create mode 100644 server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_ci.yaml create mode 100644 server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_cs.yaml diff --git a/cli-ext/package.json b/cli-ext/package.json index 98fd5d60fc6b6f..831c70bc674c6c 100644 --- a/cli-ext/package.json +++ b/cli-ext/package.json @@ -4,7 +4,7 @@ "description": "A service to generate Hasura action scaffolds", "main": "src/server.js", "scripts": { - "get-shared-modules": "rm -rf src/shared && cp ../console/src/shared ./src/shared -r", + "get-shared-modules": "rm -rf ./src/shared && cp -r ../console/src/shared ./src/shared", "pretranspile": "npm run get-shared-modules", "transpile": "rm -rf build/* && babel --extensions '.ts,.js' ./src ./tests --out-dir build", "prebuild": "npm run transpile", @@ -57,4 +57,4 @@ "prettier-eslint-cli": "^5.0.0", "typescript": "^3.9.2" } -} \ No newline at end of file +} diff --git a/cli-ext/tests/sdl/payload.js b/cli-ext/tests/sdl/payload.js index 140e601246ad3a..0accb38a8a3467 100644 --- a/cli-ext/tests/sdl/payload.js +++ b/cli-ext/tests/sdl/payload.js @@ -1,3038 +1,3458 @@ const toPayload = { - "derive": { - "operation": "mutation ($objects: user_insert_input!) { insert_user ( objects: [$objects] ) { affected_rows } }", - "action_name": "actionName", - "introspection_schema": { - "__schema": { - "directives": [{ - "args": [{ - "name": "if", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "description": null - }], - "name": "include", - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "description": null - }, { - "args": [{ - "name": "if", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "description": null - }], - "name": "skip", - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "description": null - }], - "queryType": { - "name": "query_root" + derive: { + operation: + 'mutation ($objects: user_insert_input!) { insert_user ( objects: [$objects] ) { affected_rows } }', + action_name: 'actionName', + introspection_schema: { + __schema: { + directives: [ + { + args: [ + { + name: 'if', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + }, + description: null, + }, + ], + name: 'include', + locations: ['FIELD', 'FRAGMENT_SPREAD', 'INLINE_FRAGMENT'], + description: null, + }, + { + args: [ + { + name: 'if', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + }, + description: null, + }, + ], + name: 'skip', + locations: ['FIELD', 'FRAGMENT_SPREAD', 'INLINE_FRAGMENT'], + description: null, + }, + ], + queryType: { + name: 'query_root', }, - "subscriptionType": { - "name": "subscription_root" + subscriptionType: { + name: 'subscription_root', }, - "types": [{ - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "Boolean", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "Float", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "ID", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "Int", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": [{ - "name": "_eq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_gt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_gte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_in", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "description": null - }, { - "name": "_is_null", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }, { - "name": "_lt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_lte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_neq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "_nin", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "Int_comparison_exp", - "enumValues": null, - "description": "expression to compare columns of type Int. All fields are combined with logical 'AND'.", - "fields": null - }, { - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "String", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": [{ - "name": "_eq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_gt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_gte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_ilike", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_in", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "description": null - }, { - "name": "_is_null", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }, { - "name": "_like", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_lt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_lte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_neq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_nilike", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_nin", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "description": null - }, { - "name": "_nlike", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_nsimilar", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "name": "_similar", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "String_comparison_exp", - "enumValues": null, - "description": "expression to compare columns of type String. All fields are combined with logical 'AND'.", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__Directive", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "args", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "locations", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "__DirectiveLocation", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "ARGUMENT_DEFINITION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "ENUM", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "ENUM_VALUE", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "FIELD", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "FIELD_DEFINITION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "FRAGMENT_DEFINITION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "FRAGMENT_SPREAD", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INLINE_FRAGMENT", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INPUT_FIELD_DEFINITION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INPUT_OBJECT", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INTERFACE", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "MUTATION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "OBJECT", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "QUERY", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "SCALAR", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "SCHEMA", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "SUBSCRIPTION", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "UNION", - "description": null - }], - "description": null, - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__EnumValue", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "deprecationReason", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "isDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__Field", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "args", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "deprecationReason", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "isDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "type", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__InputValue", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "defaultValue", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "type", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__Schema", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "directives", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "mutationType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "queryType", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "subscriptionType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "types", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "__Type", - "enumValues": null, - "description": null, - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [{ - "name": "includeDeprecated", - "defaultValue": "false", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "enumValues", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "description": null - }, { - "args": [{ - "name": "includeDeprecated", - "defaultValue": "false", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "fields", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "inputFields", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "interfaces", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "kind", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "ofType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "possibleTypes", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "__TypeKind", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "ENUM", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INPUT_OBJECT", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "INTERFACE", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "LIST", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "NON_NULL", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "OBJECT", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "SCALAR", - "description": null - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "UNION", - "description": null - }], - "description": null, - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "mutation_root", - "enumValues": null, - "description": "mutation root", - "fields": [{ - "args": [{ - "name": "where", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - } - }, - "description": "filter the rows which have to be deleted" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "delete_user", - "type": { - "kind": "OBJECT", - "name": "user_mutation_response", - "ofType": null - }, - "description": "delete data from the table: \"user\"" - }, { - "args": [{ - "name": "objects", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_insert_input", - "ofType": null - } - } - } - }, - "description": "the rows to be inserted" - }, { - "name": "on_conflict", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_on_conflict", - "ofType": null - }, - "description": "on conflict condition" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "insert_user", - "type": { - "kind": "OBJECT", - "name": "user_mutation_response", - "ofType": null - }, - "description": "insert data into the table: \"user\"" - }, { - "args": [{ - "name": "_inc", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_inc_input", - "ofType": null - }, - "description": "increments the integer columns with given value of the filtered values" - }, { - "name": "_set", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_set_input", - "ofType": null - }, - "description": "sets the columns of the filtered rows to the given values" - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - } - }, - "description": "filter the rows which have to be updated" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "update_user", - "type": { - "kind": "OBJECT", - "name": "user_mutation_response", - "ofType": null - }, - "description": "update data of the table: \"user\"" - }] - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "order_by", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "asc", - "description": "in the ascending order, nulls last" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "asc_nulls_first", - "description": "in the ascending order, nulls first" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "asc_nulls_last", - "description": "in the ascending order, nulls last" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "desc", - "description": "in the descending order, nulls first" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "desc_nulls_first", - "description": "in the descending order, nulls first" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "desc_nulls_last", - "description": "in the descending order, nulls last" - }], - "description": "column ordering options", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "query_root", - "enumValues": null, - "description": "query root", - "fields": [{ - "args": [{ - "name": "distinct_on", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_select_column", - "ofType": null - } - } - }, - "description": "distinct select on columns" - }, { - "name": "limit", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "limit the number of rows returned" - }, { - "name": "offset", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "skip the first n rows. Use only with order_by" - }, { - "name": "order_by", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_order_by", - "ofType": null - } - } - }, - "description": "sort the rows by one or more columns" - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": "filter the rows returned" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user", - "ofType": null - } - } - } - }, - "description": "fetch data from the table: \"user\"" - }, { - "args": [{ - "name": "distinct_on", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_select_column", - "ofType": null - } - } - }, - "description": "distinct select on columns" - }, { - "name": "limit", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "limit the number of rows returned" - }, { - "name": "offset", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "skip the first n rows. Use only with order_by" - }, { - "name": "order_by", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_order_by", - "ofType": null - } - } - }, - "description": "sort the rows by one or more columns" - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": "filter the rows returned" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user_aggregate", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user_aggregate", - "ofType": null - } - }, - "description": "fetch aggregated fields from the table: \"user\"" - }, { - "args": [{ - "name": "id", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - } - }, - "description": null - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user_by_pk", - "type": { - "kind": "OBJECT", - "name": "user", - "ofType": null - }, - "description": "fetch data from the table: \"user\" using primary key columns" - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "subscription_root", - "enumValues": null, - "description": "subscription root", - "fields": [{ - "args": [{ - "name": "distinct_on", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_select_column", - "ofType": null - } - } - }, - "description": "distinct select on columns" - }, { - "name": "limit", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "limit the number of rows returned" - }, { - "name": "offset", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "skip the first n rows. Use only with order_by" - }, { - "name": "order_by", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_order_by", - "ofType": null - } - } - }, - "description": "sort the rows by one or more columns" - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": "filter the rows returned" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user", - "ofType": null - } - } - } - }, - "description": "fetch data from the table: \"user\"" - }, { - "args": [{ - "name": "distinct_on", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_select_column", - "ofType": null - } - } - }, - "description": "distinct select on columns" - }, { - "name": "limit", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "limit the number of rows returned" - }, { - "name": "offset", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": "skip the first n rows. Use only with order_by" - }, { - "name": "order_by", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_order_by", - "ofType": null - } - } - }, - "description": "sort the rows by one or more columns" - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": "filter the rows returned" - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user_aggregate", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user_aggregate", - "ofType": null - } - }, - "description": "fetch aggregated fields from the table: \"user\"" - }, { - "args": [{ - "name": "id", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - } - }, - "description": null - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "user_by_pk", - "type": { - "kind": "OBJECT", - "name": "user", - "ofType": null - }, - "description": "fetch data from the table: \"user\" using primary key columns" - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user", - "enumValues": null, - "description": "columns and relationships of \"user\"", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - } - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_aggregate", - "enumValues": null, - "description": "aggregated selection of \"user\"", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "aggregate", - "type": { - "kind": "OBJECT", - "name": "user_aggregate_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "nodes", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user", - "ofType": null - } - } - } - }, - "description": null - }] - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_aggregate_fields", - "enumValues": null, - "description": "aggregate fields of \"user\"", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "avg", - "type": { - "kind": "OBJECT", - "name": "user_avg_fields", - "ofType": null - }, - "description": null - }, { - "args": [{ - "name": "columns", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_select_column", - "ofType": null - } - } - }, - "description": null - }, { - "name": "distinct", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }], - "isDeprecated": false, - "deprecationReason": null, - "name": "count", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "max", - "type": { - "kind": "OBJECT", - "name": "user_max_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "min", - "type": { - "kind": "OBJECT", - "name": "user_min_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "stddev", - "type": { - "kind": "OBJECT", - "name": "user_stddev_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "stddev_pop", - "type": { - "kind": "OBJECT", - "name": "user_stddev_pop_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "stddev_samp", - "type": { - "kind": "OBJECT", - "name": "user_stddev_samp_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "sum", - "type": { - "kind": "OBJECT", - "name": "user_sum_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "var_pop", - "type": { - "kind": "OBJECT", - "name": "user_var_pop_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "var_samp", - "type": { - "kind": "OBJECT", - "name": "user_var_samp_fields", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "variance", - "type": { - "kind": "OBJECT", - "name": "user_variance_fields", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "avg", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_avg_order_by", - "ofType": null - }, - "description": null - }, { - "name": "count", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "max", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_max_order_by", - "ofType": null - }, - "description": null - }, { - "name": "min", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_min_order_by", - "ofType": null - }, - "description": null - }, { - "name": "stddev", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_stddev_order_by", - "ofType": null - }, - "description": null - }, { - "name": "stddev_pop", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_stddev_pop_order_by", - "ofType": null - }, - "description": null - }, { - "name": "stddev_samp", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_stddev_samp_order_by", - "ofType": null - }, - "description": null - }, { - "name": "sum", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_sum_order_by", - "ofType": null - }, - "description": null - }, { - "name": "var_pop", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_var_pop_order_by", - "ofType": null - }, - "description": null - }, { - "name": "var_samp", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_var_samp_order_by", - "ofType": null - }, - "description": null - }, { - "name": "variance", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_variance_order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_aggregate_order_by", - "enumValues": null, - "description": "order by aggregate values of table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "data", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_insert_input", - "ofType": null - } - } - } - }, - "description": null - }, { - "name": "on_conflict", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_on_conflict", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_arr_rel_insert_input", - "enumValues": null, - "description": "input type for inserting array relation for remote table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_avg_fields", - "enumValues": null, - "description": "aggregate avg on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_avg_order_by", - "enumValues": null, - "description": "order by avg() on columns of table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "_and", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - } - }, - "description": null - }, { - "name": "_not", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": null - }, { - "name": "_or", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - } - }, - "description": null - }, { - "name": "age", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "Int_comparison_exp", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "uuid_comparison_exp", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "String_comparison_exp", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_bool_exp", - "enumValues": null, - "description": "Boolean expression to filter rows from the table \"user\". All fields are combined with a logical 'AND'.", - "fields": null - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "user_constraint", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "user_pkey", - "description": "unique or primary key constraint" - }], - "description": "unique or primary key constraints on table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_inc_input", - "enumValues": null, - "description": "input type for incrementing integer columne in table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_insert_input", - "enumValues": null, - "description": "input type for inserting data into table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_max_fields", - "enumValues": null, - "description": "aggregate max on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "id", - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_max_order_by", - "enumValues": null, - "description": "order by max() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_min_fields", - "enumValues": null, - "description": "aggregate min on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "id", - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_min_order_by", - "enumValues": null, - "description": "order by min() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_mutation_response", - "enumValues": null, - "description": "response of any mutation on the table \"user\"", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "affected_rows", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "description": "number of affected rows by the mutation" - }, { - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "returning", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "user", - "ofType": null - } - } - } - }, - "description": "data of the affected rows by the mutation" - }] - }, { - "inputFields": [{ - "name": "data", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "user_insert_input", - "ofType": null - } - }, - "description": null - }, { - "name": "on_conflict", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_on_conflict", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_obj_rel_insert_input", - "enumValues": null, - "description": "input type for inserting object relation for remote table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "constraint", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_constraint", - "ofType": null - } - }, - "description": null - }, { - "name": "update_columns", - "defaultValue": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "user_update_column", - "ofType": null - } - } - } - }, - "description": null - }, { - "name": "where", - "defaultValue": null, - "type": { - "kind": "INPUT_OBJECT", - "name": "user_bool_exp", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_on_conflict", - "enumValues": null, - "description": "on conflict condition type for table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_order_by", - "enumValues": null, - "description": "ordering options when selecting data from \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "user_select_column", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "description": "column name" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "id", - "description": "column name" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "description": "column name" - }], - "description": "select columns of table \"user\"", - "fields": null - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }, { - "name": "id", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "name", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_set_input", - "enumValues": null, - "description": "input type for updating data in table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_stddev_fields", - "enumValues": null, - "description": "aggregate stddev on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_stddev_order_by", - "enumValues": null, - "description": "order by stddev() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_stddev_pop_fields", - "enumValues": null, - "description": "aggregate stddev_pop on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_stddev_pop_order_by", - "enumValues": null, - "description": "order by stddev_pop() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_stddev_samp_fields", - "enumValues": null, - "description": "aggregate stddev_samp on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_stddev_samp_order_by", - "enumValues": null, - "description": "order by stddev_samp() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_sum_fields", - "enumValues": null, - "description": "aggregate sum on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_sum_order_by", - "enumValues": null, - "description": "order by sum() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "ENUM", - "possibleTypes": null, - "interfaces": null, - "name": "user_update_column", - "enumValues": [{ - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "description": "column name" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "id", - "description": "column name" - }, { - "isDeprecated": false, - "deprecationReason": null, - "name": "name", - "description": "column name" - }], - "description": "update columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_var_pop_fields", - "enumValues": null, - "description": "aggregate var_pop on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_var_pop_order_by", - "enumValues": null, - "description": "order by var_pop() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_var_samp_fields", - "enumValues": null, - "description": "aggregate var_samp on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_var_samp_order_by", - "enumValues": null, - "description": "order by var_samp() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "OBJECT", - "possibleTypes": null, - "interfaces": [], - "name": "user_variance_fields", - "enumValues": null, - "description": "aggregate variance on columns", - "fields": [{ - "args": [], - "isDeprecated": false, - "deprecationReason": null, - "name": "age", - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "description": null - }] - }, { - "inputFields": [{ - "name": "age", - "defaultValue": null, - "type": { - "kind": "ENUM", - "name": "order_by", - "ofType": null - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "user_variance_order_by", - "enumValues": null, - "description": "order by variance() on columns of table \"user\"", - "fields": null - }, { - "inputFields": null, - "kind": "SCALAR", - "possibleTypes": null, - "interfaces": null, - "name": "uuid", - "enumValues": null, - "description": null, - "fields": null - }, { - "inputFields": [{ - "name": "_eq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_gt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_gte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_in", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - } - } - }, - "description": null - }, { - "name": "_is_null", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "description": null - }, { - "name": "_lt", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_lte", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_neq", - "defaultValue": null, - "type": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - }, - "description": null - }, { - "name": "_nin", - "defaultValue": null, - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "uuid", - "ofType": null - } - } - }, - "description": null - }], - "kind": "INPUT_OBJECT", - "possibleTypes": null, - "interfaces": null, - "name": "uuid_comparison_exp", - "enumValues": null, - "description": "expression to compare columns of type uuid. All fields are combined with logical 'AND'.", - "fields": null - }], - "mutationType": { - "name": "mutation_root" - } - } - } - }, - "actions": [{ - "name": "validatedUserInsert", - "definition": { - "output_type": "[UserInfo!]", - "arguments": [{ - "name": "user", - "type": "UserInput", - "description": "lolz" - }] - } - }], - "types": { - "enums": [], - "scalars": [], - "input_objects": [{ - "name": "UserInput", - "fields": [{ - "name": "username", - "type": "String", - "description": "lalz" + types: [ + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'Boolean', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'Float', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'ID', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'Int', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: [ + { + name: '_eq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_gt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_gte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_in', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + }, + }, + description: null, + }, + { + name: '_is_null', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + { + name: '_lt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_lte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_neq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: '_nin', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + }, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'Int_comparison_exp', + enumValues: null, + description: + "expression to compare columns of type Int. All fields are combined with logical 'AND'.", + fields: null, + }, + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'String', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: [ + { + name: '_eq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_gt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_gte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_ilike', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_in', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + }, + description: null, + }, + { + name: '_is_null', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + { + name: '_like', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_lt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_lte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_neq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_nilike', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_nin', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + }, + description: null, + }, + { + name: '_nlike', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_nsimilar', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_similar', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_nposix_ci', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_posix_ci', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_nposix_cs', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + name: '_posix_cs', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'String_comparison_exp', + enumValues: null, + description: + "expression to compare columns of type String. All fields are combined with logical 'AND'.", + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__Directive', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'args', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__InputValue', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'description', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'locations', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: '__DirectiveLocation', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: '__DirectiveLocation', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'ARGUMENT_DEFINITION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'ENUM', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'ENUM_VALUE', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'FIELD', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'FIELD_DEFINITION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'FRAGMENT_DEFINITION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'FRAGMENT_SPREAD', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INLINE_FRAGMENT', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INPUT_FIELD_DEFINITION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INPUT_OBJECT', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INTERFACE', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'MUTATION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'OBJECT', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'QUERY', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'SCALAR', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'SCHEMA', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'SUBSCRIPTION', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'UNION', + description: null, + }, + ], + description: null, + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__EnumValue', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'deprecationReason', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'description', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'isDeprecated', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__Field', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'args', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__InputValue', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'deprecationReason', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'description', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'isDeprecated', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'type', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__InputValue', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'defaultValue', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'description', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'type', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__Schema', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'directives', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Directive', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'mutationType', + type: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'queryType', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'subscriptionType', + type: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'types', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: '__Type', + enumValues: null, + description: null, + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'description', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [ + { + name: 'includeDeprecated', + defaultValue: 'false', + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'enumValues', + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__EnumValue', + ofType: null, + }, + }, + }, + description: null, + }, + { + args: [ + { + name: 'includeDeprecated', + defaultValue: 'false', + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'fields', + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Field', + ofType: null, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'inputFields', + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__InputValue', + ofType: null, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'interfaces', + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'kind', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: '__TypeKind', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'ofType', + type: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'possibleTypes', + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: '__Type', + ofType: null, + }, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: '__TypeKind', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'ENUM', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INPUT_OBJECT', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'INTERFACE', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'LIST', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'NON_NULL', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'OBJECT', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'SCALAR', + description: null, + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'UNION', + description: null, + }, + ], + description: null, + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'mutation_root', + enumValues: null, + description: 'mutation root', + fields: [ + { + args: [ + { + name: 'where', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + }, + description: 'filter the rows which have to be deleted', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'delete_user', + type: { + kind: 'OBJECT', + name: 'user_mutation_response', + ofType: null, + }, + description: 'delete data from the table: "user"', + }, + { + args: [ + { + name: 'objects', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_insert_input', + ofType: null, + }, + }, + }, + }, + description: 'the rows to be inserted', + }, + { + name: 'on_conflict', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_on_conflict', + ofType: null, + }, + description: 'on conflict condition', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'insert_user', + type: { + kind: 'OBJECT', + name: 'user_mutation_response', + ofType: null, + }, + description: 'insert data into the table: "user"', + }, + { + args: [ + { + name: '_inc', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_inc_input', + ofType: null, + }, + description: + 'increments the integer columns with given value of the filtered values', + }, + { + name: '_set', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_set_input', + ofType: null, + }, + description: + 'sets the columns of the filtered rows to the given values', + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + }, + description: 'filter the rows which have to be updated', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'update_user', + type: { + kind: 'OBJECT', + name: 'user_mutation_response', + ofType: null, + }, + description: 'update data of the table: "user"', + }, + ], + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: 'order_by', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'asc', + description: 'in the ascending order, nulls last', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'asc_nulls_first', + description: 'in the ascending order, nulls first', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'asc_nulls_last', + description: 'in the ascending order, nulls last', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'desc', + description: 'in the descending order, nulls first', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'desc_nulls_first', + description: 'in the descending order, nulls first', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'desc_nulls_last', + description: 'in the descending order, nulls last', + }, + ], + description: 'column ordering options', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'query_root', + enumValues: null, + description: 'query root', + fields: [ + { + args: [ + { + name: 'distinct_on', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_select_column', + ofType: null, + }, + }, + }, + description: 'distinct select on columns', + }, + { + name: 'limit', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: 'limit the number of rows returned', + }, + { + name: 'offset', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: + 'skip the first n rows. Use only with order_by', + }, + { + name: 'order_by', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_order_by', + ofType: null, + }, + }, + }, + description: 'sort the rows by one or more columns', + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: 'filter the rows returned', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + }, + }, + }, + description: 'fetch data from the table: "user"', + }, + { + args: [ + { + name: 'distinct_on', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_select_column', + ofType: null, + }, + }, + }, + description: 'distinct select on columns', + }, + { + name: 'limit', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: 'limit the number of rows returned', + }, + { + name: 'offset', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: + 'skip the first n rows. Use only with order_by', + }, + { + name: 'order_by', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_order_by', + ofType: null, + }, + }, + }, + description: 'sort the rows by one or more columns', + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: 'filter the rows returned', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user_aggregate', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user_aggregate', + ofType: null, + }, + }, + description: 'fetch aggregated fields from the table: "user"', + }, + { + args: [ + { + name: 'id', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + }, + description: null, + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user_by_pk', + type: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + description: + 'fetch data from the table: "user" using primary key columns', + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'subscription_root', + enumValues: null, + description: 'subscription root', + fields: [ + { + args: [ + { + name: 'distinct_on', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_select_column', + ofType: null, + }, + }, + }, + description: 'distinct select on columns', + }, + { + name: 'limit', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: 'limit the number of rows returned', + }, + { + name: 'offset', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: + 'skip the first n rows. Use only with order_by', + }, + { + name: 'order_by', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_order_by', + ofType: null, + }, + }, + }, + description: 'sort the rows by one or more columns', + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: 'filter the rows returned', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + }, + }, + }, + description: 'fetch data from the table: "user"', + }, + { + args: [ + { + name: 'distinct_on', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_select_column', + ofType: null, + }, + }, + }, + description: 'distinct select on columns', + }, + { + name: 'limit', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: 'limit the number of rows returned', + }, + { + name: 'offset', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: + 'skip the first n rows. Use only with order_by', + }, + { + name: 'order_by', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_order_by', + ofType: null, + }, + }, + }, + description: 'sort the rows by one or more columns', + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: 'filter the rows returned', + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user_aggregate', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user_aggregate', + ofType: null, + }, + }, + description: 'fetch aggregated fields from the table: "user"', + }, + { + args: [ + { + name: 'id', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + }, + description: null, + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'user_by_pk', + type: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + description: + 'fetch data from the table: "user" using primary key columns', + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user', + enumValues: null, + description: 'columns and relationships of "user"', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'id', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_aggregate', + enumValues: null, + description: 'aggregated selection of "user"', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'aggregate', + type: { + kind: 'OBJECT', + name: 'user_aggregate_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'nodes', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + }, + }, + }, + description: null, + }, + ], + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_aggregate_fields', + enumValues: null, + description: 'aggregate fields of "user"', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'avg', + type: { + kind: 'OBJECT', + name: 'user_avg_fields', + ofType: null, + }, + description: null, + }, + { + args: [ + { + name: 'columns', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_select_column', + ofType: null, + }, + }, + }, + description: null, + }, + { + name: 'distinct', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + ], + isDeprecated: false, + deprecationReason: null, + name: 'count', + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'max', + type: { + kind: 'OBJECT', + name: 'user_max_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'min', + type: { + kind: 'OBJECT', + name: 'user_min_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'stddev', + type: { + kind: 'OBJECT', + name: 'user_stddev_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'stddev_pop', + type: { + kind: 'OBJECT', + name: 'user_stddev_pop_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'stddev_samp', + type: { + kind: 'OBJECT', + name: 'user_stddev_samp_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'sum', + type: { + kind: 'OBJECT', + name: 'user_sum_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'var_pop', + type: { + kind: 'OBJECT', + name: 'user_var_pop_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'var_samp', + type: { + kind: 'OBJECT', + name: 'user_var_samp_fields', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'variance', + type: { + kind: 'OBJECT', + name: 'user_variance_fields', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'avg', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_avg_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'count', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'max', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_max_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'min', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_min_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'stddev', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_stddev_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'stddev_pop', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_stddev_pop_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'stddev_samp', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_stddev_samp_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'sum', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_sum_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'var_pop', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_var_pop_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'var_samp', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_var_samp_order_by', + ofType: null, + }, + description: null, + }, + { + name: 'variance', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_variance_order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_aggregate_order_by', + enumValues: null, + description: 'order by aggregate values of table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'data', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_insert_input', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + name: 'on_conflict', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_on_conflict', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_arr_rel_insert_input', + enumValues: null, + description: + 'input type for inserting array relation for remote table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_avg_fields', + enumValues: null, + description: 'aggregate avg on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_avg_order_by', + enumValues: null, + description: 'order by avg() on columns of table "user"', + fields: null, + }, + { + inputFields: [ + { + name: '_and', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + }, + description: null, + }, + { + name: '_not', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: null, + }, + { + name: '_or', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + }, + description: null, + }, + { + name: 'age', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'Int_comparison_exp', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'uuid_comparison_exp', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'String_comparison_exp', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_bool_exp', + enumValues: null, + description: + 'Boolean expression to filter rows from the table "user". All fields are combined with a logical \'AND\'.', + fields: null, + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: 'user_constraint', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'user_pkey', + description: 'unique or primary key constraint', + }, + ], + description: 'unique or primary key constraints on table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_inc_input', + enumValues: null, + description: + 'input type for incrementing integer columne in table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_insert_input', + enumValues: null, + description: 'input type for inserting data into table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_max_fields', + enumValues: null, + description: 'aggregate max on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'id', + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_max_order_by', + enumValues: null, + description: 'order by max() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_min_fields', + enumValues: null, + description: 'aggregate min on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'id', + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'name', + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_min_order_by', + enumValues: null, + description: 'order by min() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_mutation_response', + enumValues: null, + description: 'response of any mutation on the table "user"', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'affected_rows', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + }, + description: 'number of affected rows by the mutation', + }, + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'returning', + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'OBJECT', + name: 'user', + ofType: null, + }, + }, + }, + }, + description: 'data of the affected rows by the mutation', + }, + ], + }, + { + inputFields: [ + { + name: 'data', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'INPUT_OBJECT', + name: 'user_insert_input', + ofType: null, + }, + }, + description: null, + }, + { + name: 'on_conflict', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_on_conflict', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_obj_rel_insert_input', + enumValues: null, + description: + 'input type for inserting object relation for remote table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'constraint', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_constraint', + ofType: null, + }, + }, + description: null, + }, + { + name: 'update_columns', + defaultValue: null, + type: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'ENUM', + name: 'user_update_column', + ofType: null, + }, + }, + }, + }, + description: null, + }, + { + name: 'where', + defaultValue: null, + type: { + kind: 'INPUT_OBJECT', + name: 'user_bool_exp', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_on_conflict', + enumValues: null, + description: 'on conflict condition type for table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_order_by', + enumValues: null, + description: 'ordering options when selecting data from "user"', + fields: null, + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: 'user_select_column', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'age', + description: 'column name', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'id', + description: 'column name', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'name', + description: 'column name', + }, + ], + description: 'select columns of table "user"', + fields: null, + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + { + name: 'id', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: 'name', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'String', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_set_input', + enumValues: null, + description: 'input type for updating data in table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_stddev_fields', + enumValues: null, + description: 'aggregate stddev on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_stddev_order_by', + enumValues: null, + description: 'order by stddev() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_stddev_pop_fields', + enumValues: null, + description: 'aggregate stddev_pop on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_stddev_pop_order_by', + enumValues: null, + description: 'order by stddev_pop() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_stddev_samp_fields', + enumValues: null, + description: 'aggregate stddev_samp on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_stddev_samp_order_by', + enumValues: null, + description: 'order by stddev_samp() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_sum_fields', + enumValues: null, + description: 'aggregate sum on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Int', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_sum_order_by', + enumValues: null, + description: 'order by sum() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'ENUM', + possibleTypes: null, + interfaces: null, + name: 'user_update_column', + enumValues: [ + { + isDeprecated: false, + deprecationReason: null, + name: 'age', + description: 'column name', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'id', + description: 'column name', + }, + { + isDeprecated: false, + deprecationReason: null, + name: 'name', + description: 'column name', + }, + ], + description: 'update columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_var_pop_fields', + enumValues: null, + description: 'aggregate var_pop on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_var_pop_order_by', + enumValues: null, + description: 'order by var_pop() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_var_samp_fields', + enumValues: null, + description: 'aggregate var_samp on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_var_samp_order_by', + enumValues: null, + description: 'order by var_samp() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'OBJECT', + possibleTypes: null, + interfaces: [], + name: 'user_variance_fields', + enumValues: null, + description: 'aggregate variance on columns', + fields: [ + { + args: [], + isDeprecated: false, + deprecationReason: null, + name: 'age', + type: { + kind: 'SCALAR', + name: 'Float', + ofType: null, + }, + description: null, + }, + ], + }, + { + inputFields: [ + { + name: 'age', + defaultValue: null, + type: { + kind: 'ENUM', + name: 'order_by', + ofType: null, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'user_variance_order_by', + enumValues: null, + description: 'order by variance() on columns of table "user"', + fields: null, + }, + { + inputFields: null, + kind: 'SCALAR', + possibleTypes: null, + interfaces: null, + name: 'uuid', + enumValues: null, + description: null, + fields: null, + }, + { + inputFields: [ + { + name: '_eq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_gt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_gte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_in', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + }, + }, + description: null, + }, + { + name: '_is_null', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'Boolean', + ofType: null, + }, + description: null, + }, + { + name: '_lt', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_lte', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_neq', + defaultValue: null, + type: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + description: null, + }, + { + name: '_nin', + defaultValue: null, + type: { + kind: 'LIST', + name: null, + ofType: { + kind: 'NON_NULL', + name: null, + ofType: { + kind: 'SCALAR', + name: 'uuid', + ofType: null, + }, + }, + }, + description: null, + }, + ], + kind: 'INPUT_OBJECT', + possibleTypes: null, + interfaces: null, + name: 'uuid_comparison_exp', + enumValues: null, + description: + "expression to compare columns of type uuid. All fields are combined with logical 'AND'.", + fields: null, + }, + ], + mutationType: { + name: 'mutation_root', }, - { - "name": "password", - "type": "String!", - "description": "pass" - } - ] - }], - "objects": [{ - "name": "UserInfo", - "fields": [{ - "name": "accessToken", - "type": "String", - "description": "lolz" - }] - }] - } + }, + }, + }, + actions: [ + { + name: 'validatedUserInsert', + definition: { + output_type: '[UserInfo!]', + arguments: [ + { + name: 'user', + type: 'UserInput', + description: 'lolz', + }, + ], + }, + }, + ], + types: { + enums: [], + scalars: [], + input_objects: [ + { + name: 'UserInput', + fields: [ + { + name: 'username', + type: 'String', + description: 'lalz', + }, + { + name: 'password', + type: 'String!', + description: 'pass', + }, + ], + }, + ], + objects: [ + { + name: 'UserInfo', + fields: [ + { + name: 'accessToken', + type: 'String', + description: 'lolz', + }, + ], + }, + ], + }, }; const fromPayload = { - "sdl": { - "complete": ` + sdl: { + complete: ` type Mutation { actionName1 (arg1: SampleInput!): SampleOutput } type SampleOutput { accessToken: String! } input SampleInput { username: String! password: String! } type Mutation { actionName2 (arg1: SampleInput!): SampleOutput } -` - } +`, + }, }; module.exports = { toPayload, - fromPayload -} + fromPayload, +}; diff --git a/community/sample-apps/react-relay/schema.graphql b/community/sample-apps/react-relay/schema.graphql index 7241c048e681e1..5d8e5427b413ff 100644 --- a/community/sample-apps/react-relay/schema.graphql +++ b/community/sample-apps/react-relay/schema.graphql @@ -581,6 +581,10 @@ input String_comparison_exp { _nlike: String _nsimilar: String _similar: String + _nposix_ci: String + _posix_ci: String + _nposix_cs: String + _posix_cs: String } # subscription root @@ -654,4 +658,3 @@ input uuid_comparison_exp { _neq: uuid _nin: [uuid!] } - diff --git a/console/src/components/Common/FilterQuery/types.ts b/console/src/components/Common/FilterQuery/types.ts index 65e435b61bdedc..b994a903b5a69c 100644 --- a/console/src/components/Common/FilterQuery/types.ts +++ b/console/src/components/Common/FilterQuery/types.ts @@ -19,7 +19,11 @@ export type Operator = | '$ilike' | '$nilike' | '$similar' - | '$nsimilar'; + | '$nsimilar' + | '$posix_cs' + | '$posix_ci' + | '$nposix_cs' + | '$nposix_ci'; // Operator with names and aliases export type OperatorDef = { diff --git a/console/src/components/Common/FilterQuery/utils.ts b/console/src/components/Common/FilterQuery/utils.ts index d40cdd254b16de..2ee31ffd571e3d 100644 --- a/console/src/components/Common/FilterQuery/utils.ts +++ b/console/src/components/Common/FilterQuery/utils.ts @@ -30,6 +30,22 @@ export const allOperators: OperatorDef[] = [ }, { name: 'similar', operator: '$similar', alias: '_similar' }, { name: 'not similar', operator: '$nsimilar', alias: '_nsimilar' }, + { name: 'posix (case-sensitive)', operator: '$posix_cs', alias: '_posix_cs' }, + { + name: 'posix (case-insensitive)', + operator: '$posix_ci', + alias: '_posix_ci', + }, + { + name: 'not posix (case-sensitive)', + operator: '$nposix_cs', + alias: '_nposix_cs', + }, + { + name: 'not posix (case-insensitive)', + operator: '$nposix_ci', + alias: '_nposix_ci', + }, ]; export const getOperatorDefaultValue = (op: Operator) => { diff --git a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/utils.js b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/utils.js index 470638df613f99..77273cd74a2bec 100644 --- a/console/src/components/Services/Data/TablePermissions/PermissionBuilder/utils.js +++ b/console/src/components/Services/Data/TablePermissions/PermissionBuilder/utils.js @@ -154,6 +154,22 @@ const columnOperatorsInfo = { type: 'pattern_match', inputStructure: 'object', }, + _posix_cs: { + type: 'pattern_match', + inputStructure: 'object', + }, + _posix_ci: { + type: 'pattern_match', + inputStructure: 'object', + }, + _nposix_cs: { + type: 'pattern_match', + inputStructure: 'object', + }, + _nposix_ci: { + type: 'pattern_match', + inputStructure: 'object', + }, _contains: { type: 'jsonb', inputStructure: 'object', diff --git a/console/src/components/Services/Data/constants.js b/console/src/components/Services/Data/constants.js index bec04932cd6013..8ab0cb5bd97f51 100644 --- a/console/src/components/Services/Data/constants.js +++ b/console/src/components/Services/Data/constants.js @@ -28,6 +28,27 @@ export const Operators = [ }, { name: 'similar', value: '$similar', graphqlOp: '_similar' }, { name: 'not similar', value: '$nsimilar', graphqlOp: '_nsimilar' }, + + { + name: 'posix (case-sensitive)', + value: '$posix_cs', + graphqlOp: '_posix_cs', + }, + { + name: 'posix (case-insensitive)', + value: '$posix_ci', + graphqlOp: '_posix_ci', + }, + { + name: 'not posix (case-sensitive)', + value: '$nposix_cs', + graphqlOp: '_nposix_cs', + }, + { + name: 'not posix (case-insensitive)', + value: '$nposix_ci', + graphqlOp: '_nposix_ci', + }, ]; export const Integers = [ diff --git a/contrib/metadata-types/src/unused/BoolExp.schema.json b/contrib/metadata-types/src/unused/BoolExp.schema.json index 678ef0ff90ec5b..64de696b820fc0 100644 --- a/contrib/metadata-types/src/unused/BoolExp.schema.json +++ b/contrib/metadata-types/src/unused/BoolExp.schema.json @@ -82,6 +82,22 @@ "type": "string", "title": "_similar" }, + "_posix_cs": { + "type": "string", + "title": "_posix_cs" + }, + "_posix_ci": { + "type": "string", + "title": "_posix_ci" + }, + "_nposix_cs": { + "type": "string", + "title": "_nposix_cs" + }, + "_nposix_ci": { + "type": "string", + "title": "_nposix_ci" + }, "_eq": { "type": "string", "title": "_eq" diff --git a/contrib/metadata-types/src/unused/BoolExp.ts b/contrib/metadata-types/src/unused/BoolExp.ts index eee736fdf84586..8a948d8ab5a554 100644 --- a/contrib/metadata-types/src/unused/BoolExp.ts +++ b/contrib/metadata-types/src/unused/BoolExp.ts @@ -24,6 +24,10 @@ interface StringOperator extends GenericOperator { _nlike?: string _nsimilar?: string _similar?: string + _posix_cs?: string + _posix_ci?: string + _nposix_cs?: string + _nposix_ci?: string } /** expression to compare columns of type json. All fields are combined with logical 'AND'. */ diff --git a/docs/graphql/core/api-reference/graphql-api/mutation.rst b/docs/graphql/core/api-reference/graphql-api/mutation.rst index 5b77c46016e5b9..7894672d24b0f3 100644 --- a/docs/graphql/core/api-reference/graphql-api/mutation.rst +++ b/docs/graphql/core/api-reference/graphql-api/mutation.rst @@ -717,6 +717,10 @@ Operator - ``_nilike`` - ``_similar`` - ``_nsimilar`` +- ``_posix_ci`` +- ``_nposix_ci`` +- ``_posix_cs`` +- ``_nposix_cs`` **Checking for NULL values:** diff --git a/docs/graphql/core/api-reference/graphql-api/query.rst b/docs/graphql/core/api-reference/graphql-api/query.rst index 9b8d029a07a7f8..6ace2e257a3190 100644 --- a/docs/graphql/core/api-reference/graphql-api/query.rst +++ b/docs/graphql/core/api-reference/graphql-api/query.rst @@ -605,6 +605,14 @@ Operator - ``SIMILAR TO`` * - ``_nsimilar`` - ``NOT SIMILAR TO`` + * - ``_posix_cs`` + - ``~`` + * - ``_posix_ci`` + - ``~*`` + * - ``_nposix_cs`` + - ``!~`` + * - ``_nposix_ci`` + - ``!~*`` (For more details on text related operators, refer to the `Postgres docs `__.) diff --git a/docs/graphql/core/api-reference/schema-metadata-api/syntax-defs.rst b/docs/graphql/core/api-reference/schema-metadata-api/syntax-defs.rst index cafe04912c118e..4938b98e73201c 100644 --- a/docs/graphql/core/api-reference/schema-metadata-api/syntax-defs.rst +++ b/docs/graphql/core/api-reference/schema-metadata-api/syntax-defs.rst @@ -333,6 +333,15 @@ Operator - ``SIMILAR TO`` * - ``"$nsimilar"`` - ``NOT SIMILAR TO`` + * - ``$posix_cs`` + - ``~`` + * - ``$posix_ci`` + - ``~*`` + * - ``$nposix_cs`` + - ``!~`` + * - ``$nposix_ci`` + - ``!~*`` + (For more details on text related operators, refer to the `Postgres docs `__.) diff --git a/docs/graphql/core/queries/query-filters.rst b/docs/graphql/core/queries/query-filters.rst index 84a6f59f887254..4f6261fddb0b92 100644 --- a/docs/graphql/core/queries/query-filters.rst +++ b/docs/graphql/core/queries/query-filters.rst @@ -425,7 +425,7 @@ Fetch a list of those authors whose names are NOT part of a list: Text search or pattern matching operators (_like, _similar, etc.) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The ``_like``, ``_nlike``, ``_ilike``, ``_nilike``, ``_similar``, ``_nsimilar`` operators are used for +The ``_like``, ``_nlike``, ``_ilike``, ``_nilike``, ``_similar``, ``_nsimilar``, ``_posix_cs``, ``_nposix_cs``, ``_posix_ci``, ``_nposix_ci`` operators are used for pattern matching on string/text fields. For more details on text search operators and Postgres equivalents, refer to the :ref:`API reference `. diff --git a/server/src-lib/Hasura/Backends/Postgres/SQL/DML.hs b/server/src-lib/Hasura/Backends/Postgres/SQL/DML.hs index e42b9db6fd6b34..d1d14d312b7b2c 100644 --- a/server/src-lib/Hasura/Backends/Postgres/SQL/DML.hs +++ b/server/src-lib/Hasura/Backends/Postgres/SQL/DML.hs @@ -723,15 +723,19 @@ data CompareOp | SLT | SIN | SNE + | SGTE + | SLTE + | SNIN | SLIKE | SNLIKE | SILIKE | SNILIKE | SSIMILAR | SNSIMILAR - | SGTE - | SLTE - | SNIN + | SPOSIXCS + | SPOSIXCI + | SNPOSIXCS + | SNPOSIXCI | SContains | SContainedIn | SHasKey @@ -758,6 +762,10 @@ instance Show CompareOp where SNILIKE -> "NOT ILIKE" SSIMILAR -> "SIMILAR TO" SNSIMILAR -> "NOT SIMILAR TO" + SPOSIXCS -> "~" + SPOSIXCI -> "~*" + SNPOSIXCS -> "!~" + SNPOSIXCI -> "!~*" SContains -> "@>" SContainedIn -> "<@" SHasKey -> "?" diff --git a/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs b/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs index 2890b422571b2e..684d38878c9c30 100644 --- a/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs +++ b/server/src-lib/Hasura/Backends/Postgres/Translate/BoolExp.hs @@ -107,6 +107,15 @@ parseOperationsExpression rhsParser fim columnInfo = "$nsimilar" -> parseNsimilar "_nsimilar" -> parseNsimilar + "$posix_cs" -> parsePosixcs + "_posix_cs" -> parsePosixcs + "$posix_ci" -> parsePosixci + "_posix_ci" -> parsePosixci + "$nposix_cs" -> parseNposixcs + "_nposix_cs" -> parseNposixcs + "$nposix_ci" -> parseNposixci + "_nposix_ci" -> parseNposixci + "$is_null" -> parseIsNull "_is_null" -> parseIsNull @@ -180,6 +189,10 @@ parseOperationsExpression rhsParser fim columnInfo = parseNilike = guardType stringTypes >> ANILIKE () <$> parseOne parseSimilar = guardType stringTypes >> ASIMILAR <$> parseOne parseNsimilar = guardType stringTypes >> ANSIMILAR <$> parseOne + parsePosixcs = guardType stringTypes >> APOSIXCS <$> parseOne + parsePosixci = guardType stringTypes >> APOSIXCI <$> parseOne + parseNposixcs = guardType stringTypes >> ANPOSIXCS <$> parseOne + parseNposixci = guardType stringTypes >> ANPOSIXCI <$> parseOne parseIsNull = bool ANISNOTNULL ANISNULL -- is null <$> parseVal @@ -404,6 +417,10 @@ mkFieldCompExp qual lhsField = mkCompExp (mkQField lhsField) ANILIKE _ val -> S.BECompare S.SNILIKE lhs val ASIMILAR val -> S.BECompare S.SSIMILAR lhs val ANSIMILAR val -> S.BECompare S.SNSIMILAR lhs val + APOSIXCS val -> S.BECompare S.SPOSIXCS lhs val + APOSIXCI val -> S.BECompare S.SPOSIXCI lhs val + ANPOSIXCS val -> S.BECompare S.SNPOSIXCS lhs val + ANPOSIXCI val -> S.BECompare S.SNPOSIXCI lhs val AContains val -> S.BECompare S.SContains lhs val AContainedIn val -> S.BECompare S.SContainedIn lhs val AHasKey val -> S.BECompare S.SHasKey lhs val diff --git a/server/src-lib/Hasura/GraphQL/Schema/BoolExp.hs b/server/src-lib/Hasura/GraphQL/Schema/BoolExp.hs index 711472e43fc42a..07dc033306565e 100644 --- a/server/src-lib/Hasura/GraphQL/Schema/BoolExp.hs +++ b/server/src-lib/Hasura/GraphQL/Schema/BoolExp.hs @@ -150,6 +150,18 @@ comparisonExps = P.memoize 'comparisonExps \columnType -> do , P.fieldOptional $$(G.litName "_nsimilar") (Just "does the column NOT match the given SQL regular expression") (ANSIMILAR . mkParameter <$> columnParser) + , P.fieldOptional $$(G.litName "_posix_cs") + (Just "does the column match the given POSIX regular expression, case sensitive") + (APOSIXCS . mkParameter <$> columnParser) + , P.fieldOptional $$(G.litName "_posix_ci") + (Just "does the column match the given POSIX regular expression, case insensitive") + (APOSIXCI . mkParameter <$> columnParser) + , P.fieldOptional $$(G.litName "_nposix_cs") + (Just "does the column NOT match the given POSIX regular expression, case sensitive") + (ANPOSIXCS . mkParameter <$> columnParser) + , P.fieldOptional $$(G.litName "_nposix_ci") + (Just "does the column NOT match the given POSIX regular expression, case insensitive") + (ANPOSIXCI . mkParameter <$> columnParser) ] -- Ops for JSONB type , guard (isScalarColumnWhere (== PGJSONB) columnType) *> diff --git a/server/src-lib/Hasura/RQL/IR/BoolExp.hs b/server/src-lib/Hasura/RQL/IR/BoolExp.hs index 127b9fb66cfa83..3af01d5afef2e6 100644 --- a/server/src-lib/Hasura/RQL/IR/BoolExp.hs +++ b/server/src-lib/Hasura/RQL/IR/BoolExp.hs @@ -244,6 +244,11 @@ data OpExpG (b :: BackendType) a | ASIMILAR !a -- similar, regex | ANSIMILAR !a-- not similar, regex + | APOSIXCS !a -- match POSIX case sensitive, regex + | APOSIXCI !a -- match POSIX case insensitive, regex + | ANPOSIXCS !a-- dont match POSIX case sensitive, regex + | ANPOSIXCI !a-- dont match POSIX case insensitive, regex + | AContains !a | AContainedIn !a | AHasKey !a @@ -319,6 +324,11 @@ opExpToJPair f = \case ASIMILAR a -> ("_similar", f a) ANSIMILAR a -> ("_nsimilar", f a) + APOSIXCS a -> ("_posix_cs", f a) + APOSIXCI a -> ("_posix_ci", f a) + ANPOSIXCS a -> ("_nposix_cs", f a) + ANPOSIXCI a -> ("_nposix_ci", f a) + AContains a -> ("_contains", f a) AContainedIn a -> ("_contained_in", f a) AHasKey a -> ("_has_key", f a) diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_ilike.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_ilike.yaml index 9d003395601b10..395099778514b4 100644 --- a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_ilike.yaml +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_ilike.yaml @@ -1,4 +1,4 @@ -description: Select cities ending with ham +description: Select cities starting with new url: /v1/graphql status: 200 response: diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nilike.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nilike.yaml index e68c48659cd37b..2aa342f49d8401 100644 --- a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nilike.yaml +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nilike.yaml @@ -1,4 +1,4 @@ -description: Select cities ending with ham +description: Select cities not starting with new url: /v1/graphql status: 200 response: diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nlike.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nlike.yaml index 4203a6288e7ca1..27edcdf43f5a5d 100644 --- a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nlike.yaml +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_nlike.yaml @@ -1,4 +1,4 @@ -description: Select cities ending with ham +description: Select cities not ending with ham url: /v1/graphql status: 200 response: diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_ci.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_ci.yaml new file mode 100644 index 00000000000000..669431edb0622a --- /dev/null +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_ci.yaml @@ -0,0 +1,20 @@ +description: Select cities not start with new +url: /v1/graphql +status: 200 +response: + data: + city: + - name: Durham + country: USA + - name: Framlingham + country: UK +query: + query: | + query { + city ( + where: {name: {_nposix_ci: "new.*" }} + ) { + name + country + } + } diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_cs.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_cs.yaml new file mode 100644 index 00000000000000..afe8ad0c96f5a0 --- /dev/null +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_posix_cs.yaml @@ -0,0 +1,24 @@ +description: Select cities not start with new +url: /v1/graphql +status: 200 +response: + data: + city: + - name: Durham + country: USA + - name: New York + country: USA + - name: Framlingham + country: UK + - name: New Orleans + country: USA +query: + query: | + query { + city ( + where: {name: {_nposix_cs: "new.*" }} + ) { + name + country + } + } diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_similar.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_similar.yaml index b6c6f903981d94..38606d76460654 100644 --- a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_similar.yaml +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_not_similar.yaml @@ -1,4 +1,4 @@ -description: Select cities ending with ham +description: Select cities not ending with ham url: /v1/graphql status: 200 response: diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_ci.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_ci.yaml new file mode 100644 index 00000000000000..def9a260f7e3ac --- /dev/null +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_ci.yaml @@ -0,0 +1,18 @@ +description: Select cities starting with fram +url: /v1/graphql +status: 200 +response: + data: + city: + - name: Framlingham + country: UK +query: + query: | + query { + city ( + where: {name: {_posix_ci: "fram.*" }} + ) { + name + country + } + } diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_cs.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_cs.yaml new file mode 100644 index 00000000000000..da09753fbb8299 --- /dev/null +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_posix_cs.yaml @@ -0,0 +1,18 @@ +description: Select cities ending with gham +url: /v1/graphql +status: 200 +response: + data: + city: + - name: Framlingham + country: UK +query: + query: | + query { + city ( + where: {name: {_posix_cs: ".*gham" }} + ) { + name + country + } + } diff --git a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_similar.yaml b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_similar.yaml index 727e0bc40b3dd8..0f77fd0a18027d 100644 --- a/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_similar.yaml +++ b/server/tests-py/queries/graphql_query/boolexp/search/select_city_where_similar.yaml @@ -1,4 +1,4 @@ -description: Select cities ending with ham +description: Select cities ending with gham url: /v1/graphql status: 200 response: diff --git a/server/tests-py/test_v1_queries.py b/server/tests-py/test_v1_queries.py index 8a9f04fb7cbc9e..24b9891c9dc631 100644 --- a/server/tests-py/test_v1_queries.py +++ b/server/tests-py/test_v1_queries.py @@ -168,6 +168,18 @@ def test_city_where_similar(self, hge_ctx): def test_city_where_not_similar(self, hge_ctx): check_query_f(hge_ctx, self.dir() + '/select_city_where_not_similar.yaml') + def test_city_where_posix_cs(self, hge_ctx): + check_query_f(hge_ctx, self.dir() + '/select_city_where_posix_cs.yaml') + + def test_city_where_not_posix_cs(self, hge_ctx): + check_query_f(hge_ctx, self.dir() + '/select_city_where_not_posix_cs.yaml') + + def test_city_where_posix_ci(self, hge_ctx): + check_query_f(hge_ctx, self.dir() + '/select_city_where_posix_ci.yaml') + + def test_city_where_not_posix_ci(self, hge_ctx): + check_query_f(hge_ctx, self.dir() + '/select_city_where_not_posix_ci.yaml') + @classmethod def dir(cls): return 'queries/v1/select/boolexp/search'