Summary
Add explicit pagination support to BaseRepository<T>.
Loading every row with findAll() is unsuitable for large tables and HTTP APIs.
Current behavior
findAll() always executes an unbounded query.
Users must create custom repositories for basic limit and offset pagination.
Expected behavior
Repositories must support bounded result retrieval using valid LIMIT and OFFSET clauses.
The API must remain explicit and predictable.
Scope
Suggested API direction
A possible API is findPage(limit, offset).
Another possible direction is a repository query-options structure.
The final API should be reviewed before implementation.
Suggested files
modules/orm/include/vix/orm/Repository.hpp
modules/orm/include/vix/orm/QueryOptions.hpp
modules/orm/tests/repository_pagination_test.cpp
modules/orm/examples/...
Acceptance criteria
Non-goals
This issue does not include:
- cursor pagination;
- HTTP response generation;
- automatic total-count queries;
- relationship pagination.
Suggested labels
scope:orm
type:feature
tests
help wanted
status:accepted
Summary
Add explicit pagination support to
BaseRepository<T>.Loading every row with
findAll()is unsuitable for large tables and HTTP APIs.Current behavior
findAll()always executes an unbounded query.Users must create custom repositories for basic limit and offset pagination.
Expected behavior
Repositories must support bounded result retrieval using valid
LIMITandOFFSETclauses.The API must remain explicit and predictable.
Scope
findAll().Suggested API direction
A possible API is
findPage(limit, offset).Another possible direction is a repository query-options structure.
The final API should be reviewed before implementation.
Suggested files
modules/orm/include/vix/orm/Repository.hppmodules/orm/include/vix/orm/QueryOptions.hppmodules/orm/tests/repository_pagination_test.cppmodules/orm/examples/...Acceptance criteria
findAll()remains unchanged.Non-goals
This issue does not include:
Suggested labels
scope:ormtype:featuretestshelp wantedstatus:accepted