[V1] Defines PSink and IonSink to encode PartiQL data with type-annotated Ion. #1687
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.
Draft
This is a draft because it is not complete, the remaining items are
Most are easy, but datetimes is blocked on #1656
Description
This PR adds a source and sink API to the SPI package which will become the backing interfaces for various PartiQL encoding schemes (firstly Ion). These APIs are just like the reader/writer APIs from IonJava, but are intended to be extended to get values into a PartiQL system. The primary/default application here will be to encode PartiQL data in typed Ion.
See #1654 and #1655
The tests and streams.md have a description of the design and decisions there. I have gone back and forth many times, and prefer the per-sink type decorators and elisions, and the DatumWriter doing materialization along with settting the type context just like the IonWriter type annotations.
Other Information
and Code Style Guidelines? YES
License Information
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.