Remove unnecessary conversion steps in PartiQLValueIonReaderBuilder #1456
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.
Relevant Issues
N/A
Description
There is a lot of unnecessary computation in
PartiQLValueIonReaderBuilder.build(ionElement: IonElement)
as it converts fromIonElement -> IonValue -> text Ion -> PartiQLValue
. This PR eliminates the hop toIonValue
, resulting inIonElement -> text Ion -> PartiQLValue
.The IonReader in the current implementation is completely unnecessary. We can eliminate the construction and overhead of passing data through an IonReader by writing the
IonValue
s directly to the writer.The conversion to
IonValue
also adds a non-trivial amount of computation. The implementation ofIonElement.toIonValue()
constructs anIonWriter
that will write directly toIonValue
. We can take things one step further, and skipIonValue
completely, which is what this PR does. I.e.:Other Information
CHANGELOG says:
Is this PR "notable"? I'll let you be the judge.
Any backward-incompatible changes? NO
Any new external dependencies? NO
Do your changes comply with the Contributing Guidelines 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.