Use Set instead of LongSet in long script field#85417
Merged
rjernst merged 2 commits intoelastic:masterfrom Mar 30, 2022
Merged
Use Set instead of LongSet in long script field#85417rjernst merged 2 commits intoelastic:masterfrom
rjernst merged 2 commits intoelastic:masterfrom
Conversation
The long script field uses hppc's LongSet to store the unique values to be queried. However, this set should be relatively small. This commit changes the internals of the runtime long script field to use Set<Long>. relates elastic#84735
Collaborator
|
Pinging @elastic/es-search (Team:Search) |
nik9000
reviewed
Mar 28, 2022
| public static Long toLong(String stringValue, boolean coerce) { | ||
| try { | ||
| return Long.parseLong(stringValue); | ||
| return Long.valueOf(stringValue); |
Member
There was a problem hiding this comment.
I think I'd keep the return type on this one.
Member
Author
There was a problem hiding this comment.
I moved this to return the boxed type so that we do not rely on the JIT to inline+elide this boxing. Otherwise we would parse into a primitive long, then need to box when actually inserting into the set. I don't feel strongly about this, though.
Member
Author
There was a problem hiding this comment.
I thought about it more, and I changed back to primitive.
| * types and checking its range. | ||
| */ | ||
| public static long objectToLong(Object value, boolean coerce) { | ||
| public static Long objectToLong(Object value, boolean coerce) { |
Member
There was a problem hiding this comment.
I'd probably keep the return type on this one too.
Member
Author
There was a problem hiding this comment.
Changed back to primitive.
| assertThat(Numbers.toLong("9223372036854775807.00", true), equalTo(9223372036854775807L)); | ||
| assertThat(Numbers.toLong("-9223372036854775808.00", true), equalTo(-9223372036854775808L)); | ||
| assertThat(Numbers.toLong("9223372036854775807.99", true), equalTo(9223372036854775807L)); | ||
| assertThat(Numbers.toLong("-9223372036854775808.99", true), equalTo(-9223372036854775808L)); |
Member
Author
|
@nik9000 Can you take another look? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The long script field uses hppc's LongSet to store the unique values
to be queried. However, this set should be relatively small. This commit
changes the internals of the runtime long script field to use Set.
relates #84735