Introduce declare/fetch/deallocate #89
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explicitly defining handle_first/4 and handle_next/4 is deprecated
because callback implementations that are required to differentiate also
need to track cursors in their state. A single fetch/4 is cleaner to use
and these callbacks forward to handle_fetch/4 on
use DBConnection.For first/next/fetch the return value is
{:cont | :halt, result, state}where
:contis continue (same as :ok) and:haltmeans both that the cursor has finished enumerating results and the cursor is deallocated. Therefore:haltdoes not require adeallocatecall. This API is chosen to avoid an extra roundtrip that current adapters do. handle_first/4 and handle_next/4 still support:okand:deallocate`tuples.
A callback implementation may need to deallocate if the transaction ends
without a cursor being deallocated (via
fetch/4ordeallocate/4).