MaxGekk commented on a change in pull request #26622: [SPARK-28023][SQL] Add
trim logic in UTF8String's toInt/toLong to make it consistent with other
string-numeric casting
URL: https://github.com/apache/spark/pull/26622#discussion_r349447501
##########
File path:
common/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
##########
@@ -1077,26 +1077,28 @@ public UTF8String translate(Map<Character, Character>
dict) {
* @return true if the parsing was successful else false
*/
public boolean toLong(LongWrapper toLongResult) {
- if (numBytes == 0) {
- return false;
- }
+ int offset = 0;
+ while (offset < this.numBytes && getByte(offset) <= ' ') offset++;
+ if (offset == this.numBytes) return false;
- byte b = getByte(0);
+ int end = this.numBytes - 1;
+ while (end > offset && getByte(end) <= ' ') end--;
Review comment:
You don't need to trim from the right explicitly here. Just break inside the
loop
https://github.com/apache/spark/pull/26622/files#diff-d2b5337b91f684b9e7fd5cc101e93fc8R1104
if b == ' '
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]