Avro
  1. Avro
  2. AVRO-956

Remove dependency on Flex/Bison

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6.1
    • Fix Version/s: 1.6.2
    • Component/s: c++
    • Labels:
      None

      Description

      The current schema parser uses Flex/Bison. Making Flex/Bison work with CMake seems difficult. Moreover trying to parse Json directly into in-memory schema object appears hard. The code is not friendly for extensions to implement new features such as namespace, documentation comments etc.

      We already have a Json parser in Avro C++ codebase, but is hidden inside the JsonCodec. Bringing it out and implementing a schema parser on top of that (similar to the Java and C# implementations) would fix the problem. The forthcoming patch does just that.

      1. AVRO-956.patch
        132 kB
        Thiruvalluvan M. G.
      2. AVRO-956-2.patch
        132 kB
        Thiruvalluvan M. G.

        Activity

        Doug Cutting made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Doug Cutting made changes -
        Fix Version/s 1.6.2 [ 12319074 ]
        Fix Version/s 1.7.0 [ 12318848 ]
        Thiruvalluvan M. G. made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Thiruvalluvan M. G. made changes -
        Attachment AVRO-956-2.patch [ 12502777 ]
        Thiruvalluvan M. G. made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Thiruvalluvan M. G. made changes -
        Attachment AVRO-956.patch [ 12502763 ]
        Thiruvalluvan M. G. made changes -
        Field Original Value New Value
        Description The current schema parser uses Flex/Bison. Making Flex/Bison work with CMake seems difficult. Moreover trying to parse Json directly into in-memory schema object appears hard. The code is not friendly for extensions to implement new features such as namespace, documentation comments etc.

        We already have a Json parser in Avro C++ codebase, but is hidden inside the JsonCodec. Bringing it out and implementing a schema parser on top of that (similar to the Java and C++ implementations) would fix the problem. The forthcoming patch does just that.
        The current schema parser uses Flex/Bison. Making Flex/Bison work with CMake seems difficult. Moreover trying to parse Json directly into in-memory schema object appears hard. The code is not friendly for extensions to implement new features such as namespace, documentation comments etc.

        We already have a Json parser in Avro C++ codebase, but is hidden inside the JsonCodec. Bringing it out and implementing a schema parser on top of that (similar to the Java and C# implementations) would fix the problem. The forthcoming patch does just that.
        Thiruvalluvan M. G. created issue -

          People

          • Assignee:
            Thiruvalluvan M. G.
            Reporter:
            Thiruvalluvan M. G.
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development