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

Add namespace support to C++

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.6.1
    • 1.7.0
    • c++

    Description

      This patch adds support for reading and resolving schemas that use namespaces for named types. Looking for a code review and application of the patch to codebase.

      Node is modified to take an additional NamespaceConcept attribute in the template parameters. An additional stack has been added to the compiler context to track when namespaces have been entered or left for resolving further types/symbols. Symbolic resolution is now done against the "fullname" of the type and not just by the name. Some string gymnastics were needed in other areas of codegen in order to handle the new symbols.

      Added very trivial tests to AvrogencppTests for schema generation by avrogencpp and added a test schema (tweet) that has namespaces, a record definition inside a namespace, and then a later symbolic reference by name within an outer namespace. Also patched to work with gen-cppcode.py output. Note that NodeImpl::printBasicInfo intentionally does not output the namespace since that caused downstream breakage of gen-cppcode.py expected format.

      github project was forked at https://github.com/spindlelabs/avro

      Attachments

        1. AVRO-1026.patch
          32 kB
          Keh-Li Sheng
        2. AVRO-1026_json.patch
          1 kB
          Keh-Li Sheng
        3. AVRO-1026_with_AVRO-956.patch
          38 kB
          Keh-Li Sheng
        4. AVRO-1026-2.patch
          33 kB
          Thiruvalluvan M. G.

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            kehli Keh-Li Sheng
            kehli Keh-Li Sheng
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment