[ 
https://issues.apache.org/jira/browse/AVRO-2429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17027485#comment-17027485
 ] 

ASF subversion and git services commented on AVRO-2429:
-------------------------------------------------------

Commit b39e0a998c7f1f3efc394148d236bd608ddbbb9a in avro's branch 
refs/heads/branch-1.9 from RyanSkraba
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=b39e0a9 ]

AVRO-2429: Ignore unknown logical types in python2. (#687)

* AVRO-2429: Ignore unknown logical types in python2.

* AVRO-2429: Clean up math and unicode.

* AVRO-2429: Fix max precision formula.

If the maximum magnitude of a two's complement number of N bytes is:

max_mag(N) = 2 ** (8 * n - 1)

and the number of decimal digits required to represent M is:

decimal_digits(M) = floor(log10(M)) + 1

Then the maximum number of decimal digits that a N byte number can contain:

max_decimal_digits(N) = decimal_digits(max_mag(N))
  = floor(log10(2 ** (8 * n - 1))) + 1
  = floor( (8*n-1) * log10(2) ) + 1

If the biggest number has X decimal digits, the N bytes can represent all
numbers with X-1 decimal digits.

max_precision(N) = floor( (8*n-1) * log10(2) )

* AVRO-2429: Add unit tests for max precision.

Fix lint.


> Avro 1.9.0 fails when reading logical types other than "decimal"
> ----------------------------------------------------------------
>
>                 Key: AVRO-2429
>                 URL: https://issues.apache.org/jira/browse/AVRO-2429
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: python
>    Affects Versions: 1.9.0
>            Reporter: Chamikara Madhusanka Jayalath
>            Assignee: Ryan Skraba
>            Priority: Major
>             Fix For: 1.10.0, 1.9.2
>
>         Attachments: uuid.avro
>
>
> [https://github.com/apache/avro/pull/82] added support for Avro "decimal" 
> logical type but also added an assertion that results in a reader failing for 
> other logical types. 
> [https://github.com/apache/avro/blob/master/lang/py/src/avro/schema.py#L821]
> I believe this is a regression since previously avro library used to read the 
> underlying primitive type instead of failing.
> Can we revert the behavior for logical types that are not "decimal" by 
> removing this assertion and reverting to the old (avro 1.8.1) behavior of 
> returning the primitive type ?
>  
> cc: [~Fokko] [~mtth]



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

Reply via email to