Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FileStorage: Fix bug retrieving the first record #672

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

UlrichEckhardt
Copy link
Contributor

The file pointer is positioned at the line of the previously retrieved record. When retrieving the next record, the current one is skipped to get to the next record. After opening the index file, the position is zero and retrieving the next record then skips over the first record. The fix adds a simple flag that handles this corner-case.

BTW, I was wondering why the code there was implemented in this particular way. I would have positioned the file pointer at the beginning of the next record, so that it can be fetched conveniently. Is it to recover from EOF after more data is added?

BTW2: I found this trying to write a few tests, see https://github.com/UlrichEckhardt/clockwork/tree/feat/phpunit-integration. The commit from this PR is also contained in that branch.

@itsgoingd
Copy link
Owner

Hey, thanks for the PR! I want to think a bit about how to simplify this. Btw. I might be interested in upstreaming some of the tests at some point.

@UlrichEckhardt
Copy link
Contributor Author

If you want, I can create a PR with an empty PHPUnit integration, if you'd like that detached from this one. Same goes for #671.

The file pointer is positioned at the line of the previously read record.
When reading the next record, the current one is skipped. After opening
the index file, the position is zero and reading the next record then skips
the first record. The fix adds a flag that handles this corner-case.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants