Skip to content

Commit c25a620

Browse files
committed
fix: offset falsy check in pipeline assembly — offset:0 skipped LimitOperator
Four sites in local-executor.ts and operators.ts (assemblePipeline) used `query.offset ||` which is falsy when offset is 0. Changed to `query.offset !== undefined ||` for correctness.
1 parent bcf49da commit c25a620

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

src/local-executor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ export class LocalExecutor implements QueryExecutor {
610610
pipeline = new TopKOperator(pipeline, query.sortColumn, query.sortDirection === "desc", query.limit, query.offset ?? 0);
611611
} else if (query.sortColumn) {
612612
pipeline = new InMemorySortOperator(pipeline, query.sortColumn, query.sortDirection === "desc", query.offset ?? 0);
613-
} else if (query.offset || query.limit !== undefined) {
613+
} else if (query.offset !== undefined || query.limit !== undefined) {
614614
pipeline = new LimitOperator(pipeline, query.limit ?? Infinity, query.offset ?? 0);
615615
}
616616
} else if (query.sortColumn) {
@@ -619,7 +619,7 @@ export class LocalExecutor implements QueryExecutor {
619619
} else {
620620
pipeline = new ExternalSortOperator(pipeline, query.sortColumn, query.sortDirection === "desc", query.offset ?? 0, pipeOpts?.memoryBudgetBytes ?? DEFAULT_MEMORY_BUDGET);
621621
}
622-
} else if (query.offset || query.limit !== undefined) {
622+
} else if (query.offset !== undefined || query.limit !== undefined) {
623623
pipeline = new LimitOperator(pipeline, query.limit ?? Infinity, query.offset ?? 0);
624624
}
625625

src/operators.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3066,7 +3066,7 @@ function assemblePipeline(
30663066
pipeline, query.sortColumn, query.sortDirection === "desc",
30673067
query.offset ?? 0,
30683068
);
3069-
} else if (query.offset || query.limit !== undefined) {
3069+
} else if (query.offset !== undefined || query.limit !== undefined) {
30703070
pipeline = new LimitOperator(pipeline, query.limit ?? Infinity, query.offset ?? 0);
30713071
}
30723072
} else if (query.sortColumn) {
@@ -3081,7 +3081,7 @@ function assemblePipeline(
30813081
query.offset ?? 0, memBudget, options?.spill,
30823082
);
30833083
}
3084-
} else if (query.offset || query.limit !== undefined) {
3084+
} else if (query.offset !== undefined || query.limit !== undefined) {
30853085
pipeline = new LimitOperator(pipeline, query.limit ?? Infinity, query.offset ?? 0);
30863086
}
30873087

0 commit comments

Comments
 (0)