Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-2174

Enums with spaces are accepted

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.8.2
    • 1.10.0
    • python
    • None
    • As of 1.10.0 in Python, enum symbols must be valid names, unless schema.parse is called with {{validate_enum_symbols=False}}.
    • Patch, Important

    Description

      The Avro spec does not allow for spaces ' '  in enums. However, Python Avro does not error out or reject enums with spaces in them.

      This is an example enum schema which was accepted by the python package:

      {
        "symbols": [
          "top left",
          "top center",
          "top right",
          "center left",
          "center center",
          "center right",
          "bottom left",
          "bottom center",
          "bottom right"
        ],
        "type": "enum",
        "namespace": "",
        "name": "postion_enum"
      }
      

      The same schema, when read by the Java library errors out at top left as expected:

      
      Caused by: org.shaded.apache.avro.SchemaParseException: Illegal character in: top left
       at org.shaded.apache.avro.Schema.validateName(Schema.java:1151)
       at org.shaded.apache.avro.Schema.access$200(Schema.java:81)
       at org.shaded.apache.avro.Schema$EnumSchema.<init>(Schema.java:749)
       at org.shaded.apache.avro.Schema.parse(Schema.java:1300)
       at org.shaded.apache.avro.Schema.parse(Schema.java:1340)
       at org.shaded.apache.avro.Schema.parse(Schema.java:1269)
       at org.shaded.apache.avro.Schema$Parser.parse(Schema.java:1032)
       at org.shaded.apache.avro.Schema$Parser.parse(Schema.java:1020)
      
      

      Attachments

        Issue Links

          Activity

            People

              kojiromike Michael A. Smith
              dharshal Harshal Dalvi
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: