Skip to content

Commit 6ee696c

Browse files
committed
Fix isLimitSubset to correctly handle unlimited subsets
1 parent e519eab commit 6ee696c

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

packages/db/src/query/predicate-utils.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -769,16 +769,17 @@ export function isLimitSubset(
769769
subset: number | undefined,
770770
superset: number | undefined
771771
): boolean {
772-
// No limit requirement is always satisfied
773-
if (subset === undefined) {
774-
return true
775-
}
776-
777772
// Unlimited superset satisfies any limit requirement
778773
if (superset === undefined) {
779774
return true
780775
}
781776

777+
// If requesting all data (no limit), we need unlimited data to satisfy it
778+
// But we know superset is not unlimited so we return false
779+
if (subset === undefined) {
780+
return false
781+
}
782+
782783
// Otherwise, subset must be less than or equal to superset
783784
return subset <= superset
784785
}

packages/db/tests/predicate-utils.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,12 @@ describe(`isOrderBySubset`, () => {
621621
})
622622

623623
describe(`isLimitSubset`, () => {
624-
it(`should return true for undefined subset`, () => {
625-
expect(isLimitSubset(undefined, 10)).toBe(true)
624+
it(`should return false for undefined subset with limited superset (requesting all data but only have limited)`, () => {
625+
expect(isLimitSubset(undefined, 10)).toBe(false)
626+
})
627+
628+
it(`should return true for undefined subset with undefined superset (requesting all data and have all data)`, () => {
629+
expect(isLimitSubset(undefined, undefined)).toBe(true)
626630
})
627631

628632
it(`should return true for undefined superset`, () => {

0 commit comments

Comments
 (0)