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

Closed

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.

@UlrichEckhardt UlrichEckhardt force-pushed the fix/skip-first-record branch 2 times, most recently from 1392131 to f4e0305 Compare February 24, 2024 15:57
@UlrichEckhardt UlrichEckhardt force-pushed the fix/skip-first-record branch from f4e0305 to ff4936a Compare March 3, 2024 09:54
@UlrichEckhardt UlrichEckhardt force-pushed the fix/skip-first-record branch from ff4936a to 7eccb7e Compare March 15, 2024 11:39
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.
@UlrichEckhardt UlrichEckhardt force-pushed the fix/skip-first-record branch from 7eccb7e to 698dc71 Compare April 10, 2024 11:56
@itsgoingd
Copy link
Owner

I ended up simplifying the index reading logic, which also fixes this issue (c6a7b1f).

@itsgoingd itsgoingd closed this Oct 20, 2024
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.

2 participants