Skip to content

Commit c731613

Browse files
committed
Add functionResourceNameShouldPrefixCompositeType inflector with cross-schema warning
1 parent 4a8e6b7 commit c731613

33 files changed

+236
-173
lines changed

graphile-build/graphile-build-pg/src/plugins/PgProceduresPlugin.ts

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
EXPORTABLE_OBJECT_CLONE,
2424
gatherConfig,
2525
} from "graphile-build";
26-
import type { PgProc, PgProcArgument } from "pg-introspection";
26+
import type { PgProc, PgProcArgument, PgType } from "pg-introspection";
2727

2828
import { exportNameHint, forbidRequired } from "../utils.ts";
2929
import { version } from "../version.ts";
@@ -41,6 +41,13 @@ declare global {
4141
pgProc: PgProc;
4242
},
4343
): string;
44+
functionResourceNameShouldPrefixCompositeType(
45+
this: Inflection,
46+
details: {
47+
pgProc: PgProc;
48+
firstArgCompositeType: PgType;
49+
},
50+
): boolean;
4451
functionRecordReturnCodecName(
4552
this: Inflection,
4653
details: {
@@ -137,7 +144,14 @@ export const PgProceduresPlugin: GraphileConfig.Plugin = {
137144
// distinct names (pets_code, buildings_code).
138145
if (pgProc.provolatile !== "v") {
139146
const firstArg = pgProc.getArguments().find((a) => a.isIn);
140-
if (firstArg && firstArg.type.typtype === "c") {
147+
if (
148+
firstArg &&
149+
firstArg.type.typtype === "c" &&
150+
this.functionResourceNameShouldPrefixCompositeType({
151+
pgProc,
152+
firstArgCompositeType: firstArg.type,
153+
})
154+
) {
141155
const compositePrefix = firstArg.type.typname + "_";
142156
if (!pgProc.proname.startsWith(compositePrefix)) {
143157
return `${schemaPrefix}${firstArg.type.typname}_${pgProc.proname}`;
@@ -146,6 +160,15 @@ export const PgProceduresPlugin: GraphileConfig.Plugin = {
146160
}
147161
return `${schemaPrefix}${pgProc.proname}`;
148162
},
163+
functionResourceNameShouldPrefixCompositeType(
164+
_options,
165+
{ pgProc, firstArgCompositeType },
166+
) {
167+
// By default, only consider a function as a computed column if it
168+
// belongs to the same schema as the composite type. Override this
169+
// inflector to support cross-schema computed columns.
170+
return firstArgCompositeType.typnamespace === pgProc.pronamespace;
171+
},
149172
functionRecordReturnCodecName(options, details) {
150173
return this.upperCamelCase(
151174
this.functionResourceName(details) + "-record",
@@ -684,6 +707,20 @@ export const PgProceduresPlugin: GraphileConfig.Plugin = {
684707
}),
685708
);
686709
if (overload) {
710+
// Warn if both functions target composite types — the user likely
711+
// intended these as computed columns on different tables, but the
712+
// inflector produced the same name (e.g. cross-schema overloads).
713+
const thisFirstArg = pgProc.getArguments().find((a) => a.isIn);
714+
const otherFirstArg = overload.getArguments().find((a) => a.isIn);
715+
if (
716+
thisFirstArg?.type.typtype === "c" &&
717+
otherFirstArg?.type.typtype === "c" &&
718+
thisFirstArg.type._id !== otherFirstArg.type._id
719+
) {
720+
console.warn(
721+
`Skipping function '${namespace!.nspname}.${pgProc.proname}' because its resource name clashes with an overload. Consider overriding the 'functionResourceNameShouldPrefixCompositeType' inflector to support cross-schema computed columns.`,
722+
);
723+
}
687724
return;
688725
}
689726

postgraphile/postgraphile/__tests__/queries/v4/procedure-query.json5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@
558558
],
559559
totalCount: 11,
560560
},
561-
compoundTypeQueryCompoundTypeArray: [
561+
queryCompoundTypeArray: [
562562
{
563563
a: 419,
564564
b: "easy cheesy baked potatoes",

postgraphile/postgraphile/__tests__/queries/v4/procedure-query.mermaid

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ graph TD
3636
Bucket25("Bucket 25 (listItem)<br /><br />ROOT __Item{25}ᐸ268ᐳ[284]"):::bucket
3737
Bucket26("Bucket 26 (listItem)<br /><br />ROOT __Item{26}ᐸ274ᐳ[285]"):::bucket
3838
Bucket27("Bucket 27 (nullableBoundary)<br />Deps: 281<br /><br />ROOT PgSelectSingle{23}ᐸcompound_type_array_queryᐳ[281]"):::bucket
39-
Bucket28("Bucket 28 (nullableBoundary)<br />Deps: 283<br /><br />ROOT PgSelectSingle{24}ᐸcompound_type_query_compound_type_arrayᐳ[283]"):::bucket
39+
Bucket28("Bucket 28 (nullableBoundary)<br />Deps: 283<br /><br />ROOT PgSelectSingle{24}ᐸquery_compound_type_arrayᐳ[283]"):::bucket
4040
Bucket29("Bucket 29 (nullableBoundary)<br />Deps: 285<br /><br />ROOT __Item{26}ᐸ274ᐳ[285]"):::bucket
4141
Bucket51("Bucket 51 (nullableBoundary)<br />Deps: 392<br /><br />ROOT PgClassExpression{1}ᐸ__compound...uery__.”g”ᐳ[392]"):::bucket
4242
Bucket52("Bucket 52 (listItem)<br />Deps: 459<br /><br />ROOT __Item{52}ᐸ287ᐳ[394]"):::bucket
@@ -81,7 +81,7 @@ graph TD
8181
Bucket91("Bucket 91 (nullableBoundary)<br />Deps: 434<br /><br />ROOT PgClassExpression{71}ᐸ__query_in...al_set__.vᐳ[434]"):::bucket
8282
Bucket92("Bucket 92 (nullableBoundary)<br />Deps: 435, 434, 644<br /><br />ROOT Edge{71}[435]"):::bucket
8383
Bucket93("Bucket 93 (nullableBoundary)<br />Deps: 454<br /><br />ROOT PgClassExpression{27}ᐸ__compound...uery__.”g”ᐳ[454]"):::bucket
84-
Bucket94("Bucket 94 (nullableBoundary)<br />Deps: 455<br /><br />ROOT PgClassExpression{28}ᐸ__compound...rray__.”g”ᐳ[455]"):::bucket
84+
Bucket94("Bucket 94 (nullableBoundary)<br />Deps: 455<br /><br />ROOT PgClassExpression{28}ᐸ__query_co...rray__.”g”ᐳ[455]"):::bucket
8585
Bucket95("Bucket 95 (nullableBoundary)<br />Deps: 434<br /><br />ROOT PgClassExpression{71}ᐸ__query_in...al_set__.vᐳ[434]"):::bucket
8686
Bucket96("Bucket 96 (nullableBoundary)<br />Deps: 623<br /><br />ROOT PgSelectSingle{72}ᐸcompound_type_set_queryᐳ[623]"):::bucket
8787
Bucket97("Bucket 97 (nullableBoundary)<br />Deps: 624<br /><br />ROOT PgSelectSingle{73}ᐸtable_set_queryᐳ[624]"):::bucket
@@ -314,7 +314,7 @@ graph TD
314314
PgSelect236 --> Connection238
315315
PgSelect244[["PgSelect[244∈0] ➊<br />ᐸint_set_queryᐳ"]]:::plan
316316
Object10 & PgFromExpression246 --> PgSelect244
317-
PgSelect260[["PgSelect[260∈0] ➊<br />ᐸcompound_type_query_compound_type_arrayᐳ"]]:::plan
317+
PgSelect260[["PgSelect[260∈0] ➊<br />ᐸquery_compound_type_arrayᐳ"]]:::plan
318318
PgFromExpression262{{"PgFromExpression[262∈0] ➊"}}:::plan
319319
Object10 & PgFromExpression262 --> PgSelect260
320320
PgSelect369[["PgSelect[369∈0] ➊<br />ᐸint_set_query(aggregate)ᐳ"]]:::plan
@@ -690,7 +690,7 @@ graph TD
690690
__Item280 --> PgSelectSingle281
691691
__Item282[/"__Item[282∈24]<br />ᐸ279ᐳ"\]:::itemplan
692692
PgSelectRows279 ==> __Item282
693-
PgSelectSingle283{{"PgSelectSingle[283∈24]<br />ᐸcompound_type_query_compound_type_arrayᐳ"}}:::plan
693+
PgSelectSingle283{{"PgSelectSingle[283∈24]<br />ᐸquery_compound_type_arrayᐳ"}}:::plan
694694
__Item282 --> PgSelectSingle283
695695
__Item284[/"__Item[284∈25]<br />ᐸ268ᐳ"\]:::itemplan
696696
PgClassExpression268 ==> __Item284
@@ -712,21 +712,21 @@ graph TD
712712
PgSelectSingle281 --> PgClassExpression454
713713
PgClassExpression456{{"PgClassExpression[456∈27]<br />ᐸ__compound....”foo_bar”ᐳ"}}:::plan
714714
PgClassExpression451 o--o PgClassExpression456
715-
PgClassExpression437{{"PgClassExpression[437∈28]<br />ᐸ__compound...rray__.”a”ᐳ"}}:::plan
715+
PgClassExpression437{{"PgClassExpression[437∈28]<br />ᐸ__query_co...rray__.”a”ᐳ"}}:::plan
716716
PgSelectSingle283 --> PgClassExpression437
717-
PgClassExpression440{{"PgClassExpression[440∈28]<br />ᐸ__compound...rray__.”b”ᐳ"}}:::plan
717+
PgClassExpression440{{"PgClassExpression[440∈28]<br />ᐸ__query_co...rray__.”b”ᐳ"}}:::plan
718718
PgClassExpression437 o--o PgClassExpression440
719-
PgClassExpression443{{"PgClassExpression[443∈28]<br />ᐸ__compound...rray__.”c”ᐳ"}}:::plan
719+
PgClassExpression443{{"PgClassExpression[443∈28]<br />ᐸ__query_co...rray__.”c”ᐳ"}}:::plan
720720
PgClassExpression440 o--o PgClassExpression443
721-
PgClassExpression446{{"PgClassExpression[446∈28]<br />ᐸ__compound...rray__.”d”ᐳ"}}:::plan
721+
PgClassExpression446{{"PgClassExpression[446∈28]<br />ᐸ__query_co...rray__.”d”ᐳ"}}:::plan
722722
PgClassExpression443 o--o PgClassExpression446
723-
PgClassExpression449{{"PgClassExpression[449∈28]<br />ᐸ__compound...rray__.”e”ᐳ"}}:::plan
723+
PgClassExpression449{{"PgClassExpression[449∈28]<br />ᐸ__query_co...rray__.”e”ᐳ"}}:::plan
724724
PgClassExpression446 o--o PgClassExpression449
725-
PgClassExpression452{{"PgClassExpression[452∈28]<br />ᐸ__compound...rray__.”f”ᐳ"}}:::plan
725+
PgClassExpression452{{"PgClassExpression[452∈28]<br />ᐸ__query_co...rray__.”f”ᐳ"}}:::plan
726726
PgClassExpression449 o--o PgClassExpression452
727-
PgClassExpression455{{"PgClassExpression[455∈28]<br />ᐸ__compound...rray__.”g”ᐳ"}}:::plan
727+
PgClassExpression455{{"PgClassExpression[455∈28]<br />ᐸ__query_co...rray__.”g”ᐳ"}}:::plan
728728
PgSelectSingle283 --> PgClassExpression455
729-
PgClassExpression457{{"PgClassExpression[457∈28]<br />ᐸ__compound....”foo_bar”ᐳ"}}:::plan
729+
PgClassExpression457{{"PgClassExpression[457∈28]<br />ᐸ__query_co....”foo_bar”ᐳ"}}:::plan
730730
PgClassExpression452 o--o PgClassExpression457
731731
Access438{{"Access[438∈29]<br />ᐸ285.secondsᐳ"}}:::plan
732732
__Item285 --> Access438

postgraphile/postgraphile/__tests__/queries/v4/procedure-query.sql

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,16 +255,16 @@ select
255255
from "a"."static_big_integer"() as __static_big_integer__(v);
256256

257257
select
258-
__compound_type_query_compound_type_array__."a"::text as "0",
259-
__compound_type_query_compound_type_array__."b" as "1",
260-
__compound_type_query_compound_type_array__."c"::text as "2",
261-
__compound_type_query_compound_type_array__."d" as "3",
262-
__compound_type_query_compound_type_array__."e"::text as "4",
263-
__compound_type_query_compound_type_array__."f"::text as "5",
264-
to_char(__compound_type_query_compound_type_array__."g", 'YYYY_MM_DD_HH24_MI_SS.US'::text) as "6",
265-
__compound_type_query_compound_type_array__."foo_bar"::text as "7",
266-
(not (__compound_type_query_compound_type_array__ is null))::text as "8"
267-
from unnest("a"."query_compound_type_array"($1::"c"."compound_type")) as __compound_type_query_compound_type_array__;
258+
__query_compound_type_array__."a"::text as "0",
259+
__query_compound_type_array__."b" as "1",
260+
__query_compound_type_array__."c"::text as "2",
261+
__query_compound_type_array__."d" as "3",
262+
__query_compound_type_array__."e"::text as "4",
263+
__query_compound_type_array__."f"::text as "5",
264+
to_char(__query_compound_type_array__."g", 'YYYY_MM_DD_HH24_MI_SS.US'::text) as "6",
265+
__query_compound_type_array__."foo_bar"::text as "7",
266+
(not (__query_compound_type_array__ is null))::text as "8"
267+
from unnest("a"."query_compound_type_array"($1::"c"."compound_type")) as __query_compound_type_array__;
268268

269269
select
270270
__query_text_array__.v::text as "0"

postgraphile/postgraphile/__tests__/queries/v4/procedure-query.test.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ query {
4747
noArgsQuery
4848
staticBigInteger { edges { node } totalCount }
4949

50-
compoundTypeQueryCompoundTypeArray(object: { a: 419, b: "easy cheesy baked potatoes", c: RED, e: BAR_FOO, f: _EMPTY_, g: {hours: 5 }, fooBar: 8 }) { a b c d e f g { seconds minutes hours } fooBar }
50+
queryCompoundTypeArray(object: { a: 419, b: "easy cheesy baked potatoes", c: RED, e: BAR_FOO, f: _EMPTY_, g: {hours: 5 }, fooBar: 8 }) { a b c d e f g { seconds minutes hours } fooBar }
5151
queryTextArray
5252
queryIntervalArray { seconds minutes hours days months years }
5353
queryIntervalSet { nodes { seconds minutes hours days months years } edges { node { seconds minutes hours } cursor } totalCount }

postgraphile/postgraphile/__tests__/schema/v4/defaultOptions-minified.1.export.mjs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4382,8 +4382,8 @@ const registry = makeRegistry({
43824382
isMutation: true,
43834383
returnsArray: true
43844384
}),
4385-
compound_type_query_compound_type_array: PgResource.functionResourceOptions(compound_type_resourceOptionsConfig, {
4386-
name: "compound_type_query_compound_type_array",
4385+
query_compound_type_array: PgResource.functionResourceOptions(compound_type_resourceOptionsConfig, {
4386+
name: "query_compound_type_array",
43874387
identifier: "main.a.query_compound_type_array(c.compound_type)",
43884388
from(...args) {
43894389
return sql`${query_compound_type_arrayFunctionIdentifer}(${sqlFromArgDigests(args)})`;
@@ -5285,13 +5285,13 @@ const func_out_complex_setof_getSelectPlanFromParentAndArgs = ($root, args, _inf
52855285
const selectArgs = makeArgs_func_out_complex_setof(args);
52865286
return resource_func_out_complex_setofPgResource.execute(selectArgs);
52875287
};
5288-
const argDetailsSimple_compound_type_query_compound_type_array = [{
5288+
const argDetailsSimple_query_compound_type_array = [{
52895289
graphqlArgName: "object",
52905290
pgCodec: compoundTypeCodec,
52915291
postgresArgName: "object"
52925292
}];
5293-
const makeArgs_compound_type_query_compound_type_array = (args, path = []) => argDetailsSimple_compound_type_query_compound_type_array.map(details => makeArg(path, args, details));
5294-
const resource_compound_type_query_compound_type_arrayPgResource = registry.pgResources["compound_type_query_compound_type_array"];
5293+
const makeArgs_query_compound_type_array = (args, path = []) => argDetailsSimple_query_compound_type_array.map(details => makeArg(path, args, details));
5294+
const resource_query_compound_type_arrayPgResource = registry.pgResources["query_compound_type_array"];
52955295
const argDetailsSimple_compound_type_array_query = [{
52965296
graphqlArgName: "object",
52975297
pgCodec: compoundTypeCodec,
@@ -7011,7 +7011,7 @@ export const typeDefs = /* GraphQL */`type Query implements Node {
70117011
compoundTypeQuery(object: CompoundTypeInput): CompoundType
70127012
funcOutComplex(a: Int, b: String): FuncOutComplexRecord
70137013
funcOutComplexSetof(a: Int, b: String, first: Int, last: Int, offset: Int, before: Cursor, after: Cursor): FuncOutComplexSetofConnection
7014-
compoundTypeQueryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
7014+
queryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
70157015
compoundTypeArrayQuery(object: CompoundTypeInput): [CompoundType]
70167016
funcOutTable: Person
70177017
funcOutTableSetof(first: Int, last: Int, offset: Int, before: Cursor, after: Cursor): PeopleConnection
@@ -11329,10 +11329,6 @@ export const objects = {
1132911329
const selectArgs = makeArgs_compound_type_query(args);
1133011330
return resource_compound_type_queryPgResource.execute(selectArgs);
1133111331
},
11332-
compoundTypeQueryCompoundTypeArray($root, args, _info) {
11333-
const selectArgs = makeArgs_compound_type_query_compound_type_array(args);
11334-
return resource_compound_type_query_compound_type_arrayPgResource.execute(selectArgs);
11335-
},
1133611332
compoundTypeSetQuery: {
1133711333
plan($parent, args, info) {
1133811334
const $select = compound_type_set_query_getSelectPlanFromParentAndArgs($parent, args, info);
@@ -11654,6 +11650,10 @@ export const objects = {
1165411650
query() {
1165511651
return rootValue();
1165611652
},
11653+
queryCompoundTypeArray($root, args, _info) {
11654+
const selectArgs = makeArgs_query_compound_type_array(args);
11655+
return resource_query_compound_type_arrayPgResource.execute(selectArgs);
11656+
},
1165711657
queryIntervalArray($root, args, _info) {
1165811658
const selectArgs = makeArgs_person_computed_out(args);
1165911659
return resource_query_interval_arrayPgResource.execute(selectArgs);

postgraphile/postgraphile/__tests__/schema/v4/defaultOptions-minified.1.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2713,7 +2713,6 @@ type Query implements Node {
27132713
compoundKeyByPersonId1AndPersonId2(personId1: Int!, personId2: Int!): CompoundKey
27142714
compoundTypeArrayQuery(object: CompoundTypeInput): [CompoundType]
27152715
compoundTypeQuery(object: CompoundTypeInput): CompoundType
2716-
compoundTypeQueryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
27172716
compoundTypeSetQuery(after: Cursor, before: Cursor, first: Int, last: Int, offset: Int): CompoundTypesConnection
27182717
currentUserId: Int
27192718
defaultValue(nodeId: ID!): DefaultValue
@@ -2767,6 +2766,7 @@ type Query implements Node {
27672766
post(nodeId: ID!): Post
27682767
postById(id: Int!): Post
27692768
query: Query!
2769+
queryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
27702770
queryIntervalArray: [Interval]
27712771
queryIntervalSet(after: Cursor, before: Cursor, first: Int, last: Int, offset: Int): QueryIntervalSetConnection
27722772
queryOutputTwoRows(leftArmId: Int, postId: Int, txt: String): QueryOutputTwoRowsRecord

postgraphile/postgraphile/__tests__/schema/v4/defaultOptions.1.export.mjs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6125,8 +6125,8 @@ const registry = makeRegistry({
61256125
isMutation: true,
61266126
returnsArray: true
61276127
}),
6128-
compound_type_query_compound_type_array: PgResource.functionResourceOptions(compound_type_resourceOptionsConfig, {
6129-
name: "compound_type_query_compound_type_array",
6128+
query_compound_type_array: PgResource.functionResourceOptions(compound_type_resourceOptionsConfig, {
6129+
name: "query_compound_type_array",
61306130
identifier: "main.a.query_compound_type_array(c.compound_type)",
61316131
from(...args) {
61326132
return sql`${query_compound_type_arrayFunctionIdentifer}(${sqlFromArgDigests(args)})`;
@@ -7208,13 +7208,13 @@ const func_out_complex_setof_getSelectPlanFromParentAndArgs = ($root, args, _inf
72087208
const selectArgs = makeArgs_func_out_complex_setof(args);
72097209
return resource_func_out_complex_setofPgResource.execute(selectArgs);
72107210
};
7211-
const argDetailsSimple_compound_type_query_compound_type_array = [{
7211+
const argDetailsSimple_query_compound_type_array = [{
72127212
graphqlArgName: "object",
72137213
pgCodec: compoundTypeCodec,
72147214
postgresArgName: "object"
72157215
}];
7216-
const makeArgs_compound_type_query_compound_type_array = (args, path = []) => argDetailsSimple_compound_type_query_compound_type_array.map(details => makeArg(path, args, details));
7217-
const resource_compound_type_query_compound_type_arrayPgResource = registry.pgResources["compound_type_query_compound_type_array"];
7216+
const makeArgs_query_compound_type_array = (args, path = []) => argDetailsSimple_query_compound_type_array.map(details => makeArg(path, args, details));
7217+
const resource_query_compound_type_arrayPgResource = registry.pgResources["query_compound_type_array"];
72187218
const argDetailsSimple_compound_type_array_query = [{
72197219
graphqlArgName: "object",
72207220
pgCodec: compoundTypeCodec,
@@ -9242,7 +9242,7 @@ type Query implements Node {
92429242
"""Read all values in the set after (below) this cursor."""
92439243
after: Cursor
92449244
): FuncOutComplexSetofConnection
9245-
compoundTypeQueryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
9245+
queryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
92469246
compoundTypeArrayQuery(object: CompoundTypeInput): [CompoundType]
92479247

92489248
"""Reads and enables pagination through a set of \`Person\`."""
@@ -19809,10 +19809,6 @@ export const objects = {
1980919809
const selectArgs = makeArgs_compound_type_query(args);
1981019810
return resource_compound_type_queryPgResource.execute(selectArgs);
1981119811
},
19812-
compoundTypeQueryCompoundTypeArray($root, args, _info) {
19813-
const selectArgs = makeArgs_compound_type_query_compound_type_array(args);
19814-
return resource_compound_type_query_compound_type_arrayPgResource.execute(selectArgs);
19815-
},
1981619812
compoundTypeSetQuery: {
1981719813
plan($parent, args, info) {
1981819814
const $select = compound_type_set_query_getSelectPlanFromParentAndArgs($parent, args, info);
@@ -20145,6 +20141,10 @@ export const objects = {
2014520141
query() {
2014620142
return rootValue();
2014720143
},
20144+
queryCompoundTypeArray($root, args, _info) {
20145+
const selectArgs = makeArgs_query_compound_type_array(args);
20146+
return resource_query_compound_type_arrayPgResource.execute(selectArgs);
20147+
},
2014820148
queryIntervalArray($root, args, _info) {
2014920149
const selectArgs = makeArgs_person_computed_out(args);
2015020150
return resource_query_interval_arrayPgResource.execute(selectArgs);

postgraphile/postgraphile/__tests__/schema/v4/defaultOptions.1.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7475,7 +7475,6 @@ type Query implements Node {
74757475
compoundKeyByPersonId1AndPersonId2(personId1: Int!, personId2: Int!): CompoundKey
74767476
compoundTypeArrayQuery(object: CompoundTypeInput): [CompoundType]
74777477
compoundTypeQuery(object: CompoundTypeInput): CompoundType
7478-
compoundTypeQueryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
74797478

74807479
"""Reads and enables pagination through a set of `CompoundType`."""
74817480
compoundTypeSetQuery(
@@ -7809,6 +7808,7 @@ type Query implements Node {
78097808
which can only query top level fields if they are in a particular form.
78107809
"""
78117810
query: Query!
7811+
queryCompoundTypeArray(object: CompoundTypeInput): [CompoundType]
78127812
queryIntervalArray: [Interval]
78137813

78147814
"""Reads and enables pagination through a set of `Interval`."""

0 commit comments

Comments
 (0)