Skip to content

Commit c07263e

Browse files
committed
Include startCursor/endCursor in PageInfo
1 parent b74c6c0 commit c07263e

File tree

5 files changed

+245
-14
lines changed

5 files changed

+245
-14
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Are you running a service, using an SQL database, and want to support cursor sty
66

77
1. When a request comes in you call the library with a `query` object containing how many items to fetch (`first`/`last`), where to fetch from (`beforeCursor`/`afterCursor`) and the sort config (`sortFields`), along with a `setup` object.
88
2. The `runQuery` function you provided in `setup` is invoked, and provided with a `limit`, `whereFragmentBuilder` and `orderByFragmentBuilder`. You integrate these into your query, run it, and then return the results.
9-
3. The library takes the results, and for each one it generates a unique `cursor`, which it then returns alongside each row. It also returns `hasNextPage`/`hasPreviousPage` properties.
9+
3. The library takes the results, and for each one it generates a unique `cursor`, which it then returns alongside each row. It also returns `hasNextPage`/`hasPreviousPage`/`startCursor`/`endCursor` properties.
1010

1111
## What is cursor pagination?
1212

@@ -109,7 +109,7 @@ The result is a promise that resolves with an object containing `edges` and `pag
109109

110110
`edges` is an array of objects containing `cursor` and `node` properties, where `cursor` is the generated cursor for the `node`, and `node` is the object you returned for the row from `runQuery`.
111111

112-
`pageInfo` contains `hasNextPage` and `hasPreviousPage` properties.
112+
`pageInfo` contains `hasNextPage`/`hasPreviousPage`/`startCursor`/`endCursor` properties.
113113

114114
E.g.
115115

@@ -128,7 +128,9 @@ E.g.
128128
],
129129
"pageInfo": {
130130
"hasNextPage": true,
131-
"hasPreviousPage": false
131+
"hasPreviousPage": false,
132+
"startCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ",
133+
"endCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ"
132134
}
133135
}
134136
```

src/__snapshots__/sql-cursor-pagination.test.ts.snap

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,10 @@ exports[`SqlCursorPagination > accepts a raw \`afterCursor\` 19`] = `
158158
},
159159
],
160160
"pageInfo": {
161+
"endCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ",
161162
"hasNextPage": true,
162163
"hasPreviousPage": false,
164+
"startCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ",
163165
},
164166
Symbol(edgesWithRawCursor): [
165167
{
@@ -344,8 +346,10 @@ exports[`SqlCursorPagination > accepts a raw \`beforeCursor\` 19`] = `
344346
},
345347
],
346348
"pageInfo": {
349+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
347350
"hasNextPage": false,
348351
"hasPreviousPage": true,
352+
"startCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
349353
},
350354
Symbol(edgesWithRawCursor): [
351355
{
@@ -778,6 +782,160 @@ exports[`SqlCursorPagination > errors > throws an error if raw cursor passed dir
778782
}
779783
`;
780784

785+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 1`] = `Infinity`;
786+
787+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 2`] = `
788+
{
789+
"bindings": [],
790+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
791+
}
792+
`;
793+
794+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 3`] = `
795+
{
796+
"bindings": [],
797+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
798+
}
799+
`;
800+
801+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 4`] = `
802+
{
803+
"bindings": [],
804+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
805+
}
806+
`;
807+
808+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 5`] = `
809+
{
810+
"bindings": {},
811+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
812+
}
813+
`;
814+
815+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 6`] = `
816+
{
817+
"bindings": [],
818+
"sql": "1",
819+
}
820+
`;
821+
822+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 7`] = `
823+
{
824+
"bindings": [],
825+
"sql": "1",
826+
}
827+
`;
828+
829+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 8`] = `
830+
{
831+
"bindings": [],
832+
"sql": "1",
833+
}
834+
`;
835+
836+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 9`] = `
837+
{
838+
"bindings": {},
839+
"sql": "1",
840+
}
841+
`;
842+
843+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 10`] = `2`;
844+
845+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 11`] = `
846+
{
847+
"bindings": [],
848+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
849+
}
850+
`;
851+
852+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 12`] = `
853+
{
854+
"bindings": [],
855+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
856+
}
857+
`;
858+
859+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 13`] = `
860+
{
861+
"bindings": [],
862+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
863+
}
864+
`;
865+
866+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 14`] = `
867+
{
868+
"bindings": {},
869+
"sql": "\`first_name\` asc, \`last_name\` desc, \`id\` asc",
870+
}
871+
`;
872+
873+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 15`] = `
874+
{
875+
"bindings": [
876+
"Joseph",
877+
"Joseph",
878+
"Rhodes",
879+
"Joseph",
880+
"Rhodes",
881+
"3",
882+
],
883+
"sql": "(((\`first_name\`>?) OR (\`first_name\`=? AND \`last_name\`<?) OR (\`first_name\`=? AND \`last_name\`=? AND \`id\`>?)))",
884+
}
885+
`;
886+
887+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 16`] = `
888+
{
889+
"bindings": [
890+
"Joseph",
891+
"Joseph",
892+
"Rhodes",
893+
"Joseph",
894+
"Rhodes",
895+
"3",
896+
],
897+
"sql": "(((\`first_name\`>X) OR (\`first_name\`=X AND \`last_name\`<X) OR (\`first_name\`=X AND \`last_name\`=X AND \`id\`>X)))",
898+
}
899+
`;
900+
901+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 17`] = `
902+
{
903+
"bindings": [
904+
"Joseph",
905+
"Joseph",
906+
"Rhodes",
907+
"Joseph",
908+
"Rhodes",
909+
"3",
910+
],
911+
"sql": "(((\`first_name\`>:0) OR (\`first_name\`=:1 AND \`last_name\`<:2) OR (\`first_name\`=:3 AND \`last_name\`=:4 AND \`id\`>:5)))",
912+
}
913+
`;
914+
915+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 18`] = `
916+
{
917+
"bindings": {
918+
":0": "Joseph",
919+
":1": "Rhodes",
920+
":2": "3",
921+
},
922+
"sql": "(((\`first_name\`>:0) OR (\`first_name\`=:0 AND \`last_name\`<:1) OR (\`first_name\`=:0 AND \`last_name\`=:1 AND \`id\`>:2)))",
923+
}
924+
`;
925+
926+
exports[`SqlCursorPagination > returns nothing when selecting after the last row 19`] = `
927+
{
928+
"edges": [],
929+
"pageInfo": {
930+
"endCursor": null,
931+
"hasNextPage": false,
932+
"hasPreviousPage": false,
933+
"startCursor": null,
934+
},
935+
Symbol(edgesWithRawCursor): [],
936+
}
937+
`;
938+
781939
exports[`SqlCursorPagination > selects first 2 rows when selecting 2 before the third row 1`] = `Infinity`;
782940

783941
exports[`SqlCursorPagination > selects first 2 rows when selecting 2 before the third row 2`] = `
@@ -948,8 +1106,10 @@ exports[`SqlCursorPagination > selects first 2 rows when selecting 2 before the
9481106
},
9491107
],
9501108
"pageInfo": {
1109+
"endCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
9511110
"hasNextPage": false,
9521111
"hasPreviousPage": false,
1112+
"startCursor": "gmWf5PUciGkaS3yuWvnYlCXra1kqrlsaGbbNJfxaF7I.IR52jEVV-zw_W7sRw5HtYQfTQhWbA4dLQw_stenfwgBDIAMZvc78sR5MEvBaLasXRLLv-Z0hxSu0HzZIczNC0zm-ltJ7NRLnQD09498KNFpdBeQBGnEJuskupvdR5TyG0l4Mjbg",
9531113
},
9541114
Symbol(edgesWithRawCursor): [
9551115
{
@@ -1166,8 +1326,10 @@ exports[`SqlCursorPagination > selects last 2 rows when selecting 2 after the th
11661326
},
11671327
],
11681328
"pageInfo": {
1329+
"endCursor": "hxq6aLoYC69MhcHj_7nAHEAOYBgQgK-lilrZZK8PlUQ.UMAa_PpPVW-1oDBX3oeT2v8hWra5lGac55zuXzuQPAXXrGcc4PnbIIZJWTcqzXAOOCzqPER9aVjPNQGXtFgCBw1vyZNIcFTVMsMnQyCuvr71p4VYGlQF7qgFIwtCUU7xF1tQA8zK",
11691330
"hasNextPage": false,
11701331
"hasPreviousPage": false,
1332+
"startCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ",
11711333
},
11721334
Symbol(edgesWithRawCursor): [
11731335
{
@@ -1359,8 +1521,10 @@ exports[`SqlCursorPagination > selects rows 2-3 when requesting the last 2 of fi
13591521
},
13601522
],
13611523
"pageInfo": {
1524+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
13621525
"hasNextPage": true,
13631526
"hasPreviousPage": true,
1527+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
13641528
},
13651529
Symbol(edgesWithRawCursor): [
13661530
{
@@ -1552,8 +1716,10 @@ exports[`SqlCursorPagination > selects rows 4-5 when requesting the last 2 of fi
15521716
},
15531717
],
15541718
"pageInfo": {
1719+
"endCursor": "hxq6aLoYC69MhcHj_7nAHEAOYBgQgK-lilrZZK8PlUQ.UMAa_PpPVW-1oDBX3oeT2v8hWra5lGac55zuXzuQPAXXrGcc4PnbIIZJWTcqzXAOOCzqPER9aVjPNQGXtFgCBw1vyZNIcFTVMsMnQyCuvr71p4VYGlQF7qgFIwtCUU7xF1tQA8zK",
15551720
"hasNextPage": false,
15561721
"hasPreviousPage": true,
1722+
"startCursor": "l1X624m67Z5aYShVOLrThEcP7c-ezmCc4C48Dvxtt98.x7zYjxX9VEWDA1KAnJii8zyw5DP_OdIRnSkXATGhwTy6Wf0SSkjdjq6pTl9qxhp87EI-85pUJW9Thz_A6F_8BzlgccgDV-hXWjEj3CsGl96tSaA-X0_qNWBu425Mt6t5j3wNSdk8sSArBQ",
15571723
},
15581724
Symbol(edgesWithRawCursor): [
15591725
{
@@ -1699,8 +1865,10 @@ exports[`SqlCursorPagination > selects the first 3 items 10`] = `
16991865
},
17001866
],
17011867
"pageInfo": {
1868+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
17021869
"hasNextPage": true,
17031870
"hasPreviousPage": false,
1871+
"startCursor": "gmWf5PUciGkaS3yuWvnYlCXra1kqrlsaGbbNJfxaF7I.IR52jEVV-zw_W7sRw5HtYQfTQhWbA4dLQw_stenfwgBDIAMZvc78sR5MEvBaLasXRLLv-Z0hxSu0HzZIczNC0zm-ltJ7NRLnQD09498KNFpdBeQBGnEJuskupvdR5TyG0l4Mjbg",
17041872
},
17051873
Symbol(edgesWithRawCursor): [
17061874
{
@@ -1890,8 +2058,10 @@ exports[`SqlCursorPagination > selects the first infinity (all) items 10`] = `
18902058
},
18912059
],
18922060
"pageInfo": {
2061+
"endCursor": "hxq6aLoYC69MhcHj_7nAHEAOYBgQgK-lilrZZK8PlUQ.UMAa_PpPVW-1oDBX3oeT2v8hWra5lGac55zuXzuQPAXXrGcc4PnbIIZJWTcqzXAOOCzqPER9aVjPNQGXtFgCBw1vyZNIcFTVMsMnQyCuvr71p4VYGlQF7qgFIwtCUU7xF1tQA8zK",
18932062
"hasNextPage": false,
18942063
"hasPreviousPage": false,
2064+
"startCursor": "gmWf5PUciGkaS3yuWvnYlCXra1kqrlsaGbbNJfxaF7I.IR52jEVV-zw_W7sRw5HtYQfTQhWbA4dLQw_stenfwgBDIAMZvc78sR5MEvBaLasXRLLv-Z0hxSu0HzZIczNC0zm-ltJ7NRLnQD09498KNFpdBeQBGnEJuskupvdR5TyG0l4Mjbg",
18952065
},
18962066
Symbol(edgesWithRawCursor): [
18972067
{
@@ -2097,8 +2267,10 @@ exports[`SqlCursorPagination > selects the last 3 items 10`] = `
20972267
},
20982268
],
20992269
"pageInfo": {
2270+
"endCursor": "hxq6aLoYC69MhcHj_7nAHEAOYBgQgK-lilrZZK8PlUQ.UMAa_PpPVW-1oDBX3oeT2v8hWra5lGac55zuXzuQPAXXrGcc4PnbIIZJWTcqzXAOOCzqPER9aVjPNQGXtFgCBw1vyZNIcFTVMsMnQyCuvr71p4VYGlQF7qgFIwtCUU7xF1tQA8zK",
21002271
"hasNextPage": false,
21012272
"hasPreviousPage": true,
2273+
"startCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
21022274
},
21032275
Symbol(edgesWithRawCursor): [
21042276
{
@@ -2288,8 +2460,10 @@ exports[`SqlCursorPagination > selects the last infinity (all) items 10`] = `
22882460
},
22892461
],
22902462
"pageInfo": {
2463+
"endCursor": "hxq6aLoYC69MhcHj_7nAHEAOYBgQgK-lilrZZK8PlUQ.UMAa_PpPVW-1oDBX3oeT2v8hWra5lGac55zuXzuQPAXXrGcc4PnbIIZJWTcqzXAOOCzqPER9aVjPNQGXtFgCBw1vyZNIcFTVMsMnQyCuvr71p4VYGlQF7qgFIwtCUU7xF1tQA8zK",
22912464
"hasNextPage": false,
22922465
"hasPreviousPage": false,
2466+
"startCursor": "gmWf5PUciGkaS3yuWvnYlCXra1kqrlsaGbbNJfxaF7I.IR52jEVV-zw_W7sRw5HtYQfTQhWbA4dLQw_stenfwgBDIAMZvc78sR5MEvBaLasXRLLv-Z0hxSu0HzZIczNC0zm-ltJ7NRLnQD09498KNFpdBeQBGnEJuskupvdR5TyG0l4Mjbg",
22932467
},
22942468
Symbol(edgesWithRawCursor): [
22952469
{
@@ -2587,8 +2761,10 @@ exports[`SqlCursorPagination > selects the second and third row when selecting a
25872761
},
25882762
],
25892763
"pageInfo": {
2764+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
25902765
"hasNextPage": false,
25912766
"hasPreviousPage": false,
2767+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
25922768
},
25932769
Symbol(edgesWithRawCursor): [
25942770
{
@@ -2813,8 +2989,10 @@ exports[`SqlCursorPagination > selects the second row when selecting after the f
28132989
},
28142990
],
28152991
"pageInfo": {
2992+
"endCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
28162993
"hasNextPage": false,
28172994
"hasPreviousPage": false,
2995+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
28182996
},
28192997
Symbol(edgesWithRawCursor): [
28202998
{
@@ -2999,8 +3177,10 @@ exports[`SqlCursorPagination > selects the second row when selecting one before
29993177
},
30003178
],
30013179
"pageInfo": {
3180+
"endCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
30023181
"hasNextPage": false,
30033182
"hasPreviousPage": true,
3183+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
30043184
},
30053185
Symbol(edgesWithRawCursor): [
30063186
{
@@ -3185,8 +3365,10 @@ exports[`SqlCursorPagination > selects the second row when selecting one before
31853365
},
31863366
],
31873367
"pageInfo": {
3368+
"endCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
31883369
"hasNextPage": false,
31893370
"hasPreviousPage": true,
3371+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
31903372
},
31913373
Symbol(edgesWithRawCursor): [
31923374
{
@@ -3392,8 +3574,10 @@ exports[`SqlCursorPagination > selects the second row when selecting the first o
33923574
},
33933575
],
33943576
"pageInfo": {
3577+
"endCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
33953578
"hasNextPage": true,
33963579
"hasPreviousPage": false,
3580+
"startCursor": "Vl8ajMnWgEXNNlI9TZNEzkzZT5fPgD7qdP_dIQBcjlM.nGHtSUghlMl64TM8BjfzsV4r2v-SL_TlQyYbwTz0nSbnzpetCeSw81VKEzJhkakKw3yRUHxi6ijfpwZEvyprnzBJzZ1gh070hs4CqayTv-g_KwpwjHGWUxUBkKA5S40-_oaeVS8",
33973581
},
33983582
Symbol(edgesWithRawCursor): [
33993583
{
@@ -3578,8 +3762,10 @@ exports[`SqlCursorPagination > selects the third row when selecting one after th
35783762
},
35793763
],
35803764
"pageInfo": {
3765+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
35813766
"hasNextPage": true,
35823767
"hasPreviousPage": false,
3768+
"startCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
35833769
},
35843770
Symbol(edgesWithRawCursor): [
35853771
{
@@ -3785,8 +3971,10 @@ exports[`SqlCursorPagination > selects the third row when selecting the last one
37853971
},
37863972
],
37873973
"pageInfo": {
3974+
"endCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
37883975
"hasNextPage": false,
37893976
"hasPreviousPage": true,
3977+
"startCursor": "BF4zwhmn3i_aUO8fMntuvbJbVfFA77xjg4HWAbCqZ8s.TcLZaSN-rn8Zij9ZZWUQgs3n6YG4t0yuwODBikGsWGnL3td0c3YCwQt99Dml_IfofoAbMsPQTVoiu1gWjQ3cm4xA5Pm019RFK3kSzgV3TUHM7EjIkmTbnmjYlTsGT-xYHt8V5QmM",
37903978
},
37913979
Symbol(edgesWithRawCursor): [
37923980
{
@@ -3888,8 +4076,10 @@ exports[`SqlCursorPagination > supports field aliases 10`] = `
38884076
},
38894077
],
38904078
"pageInfo": {
4079+
"endCursor": "eTi5IVXuus3g1sablUWFGWkZBbE8pKn1NpODYFyekPk.6pGQw7mGK7nGKpaVhAjxa5hfy_yJlJReRXPrGHHITChuwCzaKubo2hHL6LSHAr2y0SwB2lWFNN5nNOPzQrDYKiI7FwFSRtJhZT_698sW8J3n52yGVehDWOA",
38914080
"hasNextPage": true,
38924081
"hasPreviousPage": false,
4082+
"startCursor": "eTi5IVXuus3g1sablUWFGWkZBbE8pKn1NpODYFyekPk.6pGQw7mGK7nGKpaVhAjxa5hfy_yJlJReRXPrGHHITChuwCzaKubo2hHL6LSHAr2y0SwB2lWFNN5nNOPzQrDYKiI7FwFSRtJhZT_698sW8J3n52yGVehDWOA",
38934083
},
38944084
Symbol(edgesWithRawCursor): [
38954085
{
@@ -3989,8 +4179,10 @@ exports[`SqlCursorPagination > supports fully qualified column names 10`] = `
39894179
},
39904180
],
39914181
"pageInfo": {
4182+
"endCursor": "6ivs-1J-XTxms7CXt1QscsdUQ9LOZ2_k1WKxcNCh4uA.dZuwTEQegp2jJQAGcUOOYX04RyrK8r11IMU6Mwol870lhImHOcGc3BAExnrn51cTb8lzGmvZlXQQHlg",
39924183
"hasNextPage": true,
39934184
"hasPreviousPage": false,
4185+
"startCursor": "6ivs-1J-XTxms7CXt1QscsdUQ9LOZ2_k1WKxcNCh4uA.dZuwTEQegp2jJQAGcUOOYX04RyrK8r11IMU6Mwol870lhImHOcGc3BAExnrn51cTb8lzGmvZlXQQHlg",
39944186
},
39954187
Symbol(edgesWithRawCursor): [
39964188
{

0 commit comments

Comments
 (0)