2
2
create table account(
3
3
id int primary key
4
4
);
5
+ create view "accountView" as
6
+ select * from account;
7
+ comment on view "accountView" is e'@graphql({"primary_key_columns": ["id"]})';
8
+ create view "accountViewWrapper" as
9
+ select * from "accountView";
10
+ comment on view "accountViewWrapper" is e'@graphql({"primary_key_columns": ["id"]})';
5
11
insert into public.account(id)
6
12
select * from generate_series(1, 100);
7
- -- expect default 30 rows on first page
13
+ -- expect 30 rows on first page because of fallback to default
8
14
select graphql.resolve($$
9
15
{
10
16
accountCollection
@@ -22,8 +28,42 @@ begin;
22
28
{"data": {"accountCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}]}}}
23
29
(1 row)
24
30
31
+ -- expect 30 rows on first page because of fallback to default
32
+ select graphql.resolve($$
33
+ {
34
+ accountViewCollection {
35
+ edges {
36
+ node {
37
+ id
38
+ }
39
+ }
40
+ }
41
+ }
42
+ $$);
43
+ resolve
44
+ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
45
+ {"data": {"accountViewCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}]}}}
46
+ (1 row)
47
+
48
+ -- expect 30 rows on first page because of fallback to default
49
+ select graphql.resolve($$
50
+ {
51
+ accountViewWrapperCollection {
52
+ edges {
53
+ node {
54
+ id
55
+ }
56
+ }
57
+ }
58
+ }
59
+ $$);
60
+ resolve
61
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
62
+ {"data": {"accountViewWrapperCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}]}}}
63
+ (1 row)
64
+
25
65
comment on schema public is e'@graphql({"max_rows": 5})';
26
- -- expect 5 rows on first page
66
+ -- expect 5 rows on first page because of fallback to schema max_rows
27
67
select graphql.resolve($$
28
68
{
29
69
accountCollection
@@ -41,8 +81,42 @@ begin;
41
81
{"data": {"accountCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}]}}}
42
82
(1 row)
43
83
84
+ -- expect 5 rows on first page because of fallback to schema max_rows
85
+ select graphql.resolve($$
86
+ {
87
+ accountViewCollection {
88
+ edges {
89
+ node {
90
+ id
91
+ }
92
+ }
93
+ }
94
+ }
95
+ $$);
96
+ resolve
97
+ -----------------------------------------------------------------------------------------------------------------------------------------------------------
98
+ {"data": {"accountViewCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}]}}}
99
+ (1 row)
100
+
101
+ -- expect 5 rows on first page because of fallback to schema max_rows
102
+ select graphql.resolve($$
103
+ {
104
+ accountViewWrapperCollection {
105
+ edges {
106
+ node {
107
+ id
108
+ }
109
+ }
110
+ }
111
+ }
112
+ $$);
113
+ resolve
114
+ ------------------------------------------------------------------------------------------------------------------------------------------------------------------
115
+ {"data": {"accountViewWrapperCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}]}}}
116
+ (1 row)
117
+
44
118
comment on schema public is e'@graphql({"max_rows": 40})';
45
- -- expect 40 rows on first page
119
+ -- expect 40 rows on first page because of fallback to schema max_rows
46
120
select graphql.resolve($$
47
121
{
48
122
accountCollection
@@ -60,9 +134,43 @@ begin;
60
134
{"data": {"accountCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}, {"node": {"id": 31}}, {"node": {"id": 32}}, {"node": {"id": 33}}, {"node": {"id": 34}}, {"node": {"id": 35}}, {"node": {"id": 36}}, {"node": {"id": 37}}, {"node": {"id": 38}}, {"node": {"id": 39}}, {"node": {"id": 40}}]}}}
61
135
(1 row)
62
136
137
+ -- expect 40 rows on first page because of fallback to schema max_rows
138
+ select graphql.resolve($$
139
+ {
140
+ accountViewCollection {
141
+ edges {
142
+ node {
143
+ id
144
+ }
145
+ }
146
+ }
147
+ }
148
+ $$);
149
+ resolve
150
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
151
+ {"data": {"accountViewCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}, {"node": {"id": 31}}, {"node": {"id": 32}}, {"node": {"id": 33}}, {"node": {"id": 34}}, {"node": {"id": 35}}, {"node": {"id": 36}}, {"node": {"id": 37}}, {"node": {"id": 38}}, {"node": {"id": 39}}, {"node": {"id": 40}}]}}}
152
+ (1 row)
153
+
154
+ -- expect 40 rows on first page because of fallback to schema max_rows
155
+ select graphql.resolve($$
156
+ {
157
+ accountViewWrapperCollection {
158
+ edges {
159
+ node {
160
+ id
161
+ }
162
+ }
163
+ }
164
+ }
165
+ $$);
166
+ resolve
167
+ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
168
+ {"data": {"accountViewWrapperCollection": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}, {"node": {"id": 4}}, {"node": {"id": 5}}, {"node": {"id": 6}}, {"node": {"id": 7}}, {"node": {"id": 8}}, {"node": {"id": 9}}, {"node": {"id": 10}}, {"node": {"id": 11}}, {"node": {"id": 12}}, {"node": {"id": 13}}, {"node": {"id": 14}}, {"node": {"id": 15}}, {"node": {"id": 16}}, {"node": {"id": 17}}, {"node": {"id": 18}}, {"node": {"id": 19}}, {"node": {"id": 20}}, {"node": {"id": 21}}, {"node": {"id": 22}}, {"node": {"id": 23}}, {"node": {"id": 24}}, {"node": {"id": 25}}, {"node": {"id": 26}}, {"node": {"id": 27}}, {"node": {"id": 28}}, {"node": {"id": 29}}, {"node": {"id": 30}}, {"node": {"id": 31}}, {"node": {"id": 32}}, {"node": {"id": 33}}, {"node": {"id": 34}}, {"node": {"id": 35}}, {"node": {"id": 36}}, {"node": {"id": 37}}, {"node": {"id": 38}}, {"node": {"id": 39}}, {"node": {"id": 40}}]}}}
169
+ (1 row)
170
+
63
171
-- table-specific max_rows
64
172
comment on table account is e'@graphql({"max_rows": 5})';
65
- -- expect 5 rows on first page
173
+ -- expect 5 rows on first page because of table max_rows
66
174
select graphql.resolve($$
67
175
{
68
176
accountCollection {
@@ -80,13 +188,11 @@ begin;
80
188
(1 row)
81
189
82
190
-- view-specific max_rows
83
- create view person as
84
- select * from account;
85
- comment on view person is e'@graphql({"primary_key_columns": ["id"], "max_rows": 3})';
86
- -- expect 3 rows on first page
191
+ comment on view "accountView" is e'@graphql({"primary_key_columns": ["id"], "max_rows": 3})';
192
+ -- expect 3 rows on first page because of view max_rows
87
193
select graphql.resolve($$
88
194
{
89
- personCollection {
195
+ accountViewCollection {
90
196
edges {
91
197
node {
92
198
id
@@ -95,19 +201,17 @@ begin;
95
201
}
96
202
}
97
203
$$);
98
- resolve
99
- ------------------------------------------------------------------------------------------------------------
100
- {"data": {"personCollection ": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}]}}}
204
+ resolve
205
+ -----------------------------------------------------------------------------------------------------------------
206
+ {"data": {"accountViewCollection ": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}, {"node": {"id": 3}}]}}}
101
207
(1 row)
102
208
103
209
-- nested view with max_rows
104
- create view parent as
105
- select * from person;
106
- comment on view parent is e'@graphql({"primary_key_columns": ["id"], "max_rows": 2})';
107
- -- expect 2 rows on first page
210
+ comment on view "accountViewWrapper" is e'@graphql({"primary_key_columns": ["id"], "max_rows": 2})';
211
+ -- expect 2 rows on first page because of view max_rows
108
212
select graphql.resolve($$
109
213
{
110
- parentCollection {
214
+ accountViewWrapperCollection {
111
215
edges {
112
216
node {
113
217
id
@@ -116,9 +220,9 @@ begin;
116
220
}
117
221
}
118
222
$$);
119
- resolve
120
- ---------------------------------------------------------------------------------------
121
- {"data": {"parentCollection ": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}]}}}
223
+ resolve
224
+ ---------------------------------------------------------------------------------------------------
225
+ {"data": {"accountViewWrapperCollection ": {"edges": [{"node": {"id": 1}}, {"node": {"id": 2}}]}}}
122
226
(1 row)
123
227
124
228
rollback;
0 commit comments