Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-1427

GraphSON 3.0 needs collection types and consistent number typing.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Done
    • 3.2.1
    • 3.3.0
    • io
    • None

    Description

      Before 3.3.0, we need to get the story around collections straight. Currently we are relying on JSON collections to represent our collections, but this isn't always sound – e.g. JSON maps can only have string keys.

      Thus, we need:

      g:Map
      g:List
      g:Set
      

      Note that all of these would just be JSON lists:

      {@type:"g:Map", @value:[key1,value1,key2,value2,key3,value3,...]}
      {@type:"g:List", @value:[value1, value2, value3,...]}
      {@type:"g:Set", @value:[value1, value2, value3,...]}
      

      Next, these data structures are exactly what play into aggregateTo in sideEffects for RemoteConnection. Thus, we should use these types and, as well, get rid of none as the aggregate would be a real type like g:Int32.

      Also, I think we should abandon this hybrid physical machine naming convention and programming language type convention.

      g:Int32 -> g:Integer
      g:Int64 -> g:Long
      g:Double -> g:Double (no change)
      g:Float -> g:Float (no change)
      

      If we want to be consistent either do the above or do the below, though I think the above is cleaner.

      g:Int32 -> g:Int32
      g:Int64 -> g:Int64
      g:Float -> g:Float32
      g:Double -> g:Float64
      

      Again, using programming lexicon vs. physical machine lexicon is best and thus, just gut "int32" and "int64."

      Attachments

        Issue Links

          Activity

            People

              spmallette Stephen Mallette
              okram Marko A. Rodriguez
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: