Avro IDL compiler should support "NaN", "Infinity", and "-Infinity" as float 
literals
-------------------------------------------------------------------------------------

                 Key: AVRO-972
                 URL: https://issues.apache.org/jira/browse/AVRO-972
             Project: Avro
          Issue Type: Bug
          Components: java
    Affects Versions: 1.6.1
            Reporter: Brandon Ballinger
            Priority: Minor


The Avro IDL defines floating point literals as follows:
  < FLOATING_POINT_LITERAL:
  ("-")?
    ( <DECIMAL_FLOATING_POINT_LITERAL> | <HEXADECIMAL_FLOATING_POINT_LITERAL> )
  >
|
  < #DECIMAL_FLOATING_POINT_LITERAL:
        (["0"-"9"])+ "." (["0"-"9"])* (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
      | "." (["0"-"9"])+ (<DECIMAL_EXPONENT>)? (["f","F","d","D"])?
      | (["0"-"9"])+ <DECIMAL_EXPONENT> (["f","F","d","D"])?
      | (["0"-"9"])+ (<DECIMAL_EXPONENT>)? ["f","F","d","D"]
  >
|
  < #DECIMAL_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
|
  < #HEXADECIMAL_FLOATING_POINT_LITERAL:
        "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])+ (".")? 
<HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
      | "0" ["x", "X"] (["0"-"9","a"-"f","A"-"F"])* "." 
(["0"-"9","a"-"f","A"-"F"])+ <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?
  >
|
  < #HEXADECIMAL_EXPONENT: ["p","P"] (["+","-"])? (["0"-"9"])+ >

Java allows for "NaN", "Infinity", and "-Infinity" when parsing a Double from a 
String:
  
http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#valueOf(java.lang.String)

The IDL compiler should allow the same set of values as Java Double.valueOf. 
Among other things, this would allow "NaN" to be used as a default value for 
float fields in Avro records.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to