[ 
https://issues.apache.org/jira/browse/HIVE-23829?focusedWorklogId=465667&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-465667
 ]

ASF GitHub Bot logged work on HIVE-23829:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 03/Aug/20 12:45
            Start Date: 03/Aug/20 12:45
    Worklog Time Spent: 10m 
      Work Description: HunterL opened a new pull request #1313:
URL: https://github.com/apache/hive/pull/1313


   Updated the LazySimple SerDe to no longer attempt to auto-detect if Binary 
columns were Base64 and instead use a table property. The previous way this was 
done was expensive and did not correctly check if the values were valid Base64 
which in niche cases could result in statistics being computed incorrectly.


----------------------------------------------------------------
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:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 465667)
    Time Spent: 1h  (was: 50m)

> Compute Stats Incorrect for Binary Columns
> ------------------------------------------
>
>                 Key: HIVE-23829
>                 URL: https://issues.apache.org/jira/browse/HIVE-23829
>             Project: Hive
>          Issue Type: Bug
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> I came across an issue when working on [HIVE-22674].
> The SerDe used for processing binary data tries to auto-detect if the data is 
> in Base-64.  It uses 
> {{org.apache.commons.codec.binary.Base64#isArrayByteBase64}} which has two 
> issues:
> # It's slow since it will check if the array is compatible,... and then 
> process the data (examines the array twice)
> # More importantly, this method _Tests a given byte array to see if it 
> contains only valid characters within the Base64 alphabet. Currently the 
> method treats whitespace as valid._
> https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html#isArrayByteBase64-byte:A-
> The 
> [qtest|https://github.com/apache/hive/blob/f98e136bdd5642e3de10d2fd1a4c14d1d6762113/ql/src/test/queries/clientpositive/compute_stats_binary.q]
>  for this feature uses full sentences (which includes spaces) 
> [here|https://github.com/apache/hive/blob/f98e136bdd5642e3de10d2fd1a4c14d1d6762113/data/files/binary.txt]
>  and therefore it thinks this data is Base-64 and returns an incorrect 
> estimation for size.
> This should really not auto-detect Base64 data and instead it should be 
> enabled with a table property.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to