One approach would be to be silent about properties - and then it could be there anyway - however, that wouldn't allow you to state the requirement (?) that it must be called properties and/or that it must be an object (not a scalar). That could work for now, perhaps? We need to have an "any record type" type name - we've noted a desire for that - unfortunately we don't have one I don't think. I believe the concept is there inside the code, in the type-related areas, but we don't have a keyword like name for it. (@Yingyi - comments?) And we do also have a restriction (at the type level) that precludes recursion (regular or mutual) in type definitions; we probably need to do something about that someday as well.

In the meantime, these things could be handled (weakly) by documenting what's expected/allowed in this setting.

Cheers,

Mike

PS - I wonder if JSON Schema has the expressiveness for this?


On 6/21/17 2:26 AM, Riyafa Abdul Hameed wrote:
Hi,

I would like to parse the following or any GeoJSON type[1] to a record in AsterixDB:
{
   "type":"Feature",
   "geometry":{
      "type":"Point",
      "coordinates":[
         -118.40,
         33.93
      ]
   },
   "properties":{
      "code":"LAX",
      "elevation":38
   }
}

The value of properties is optional and is a variable that is it can be any type of object. What is the most suitable datatype to use to represent properties in this case?
Is something like the following possible?

CREATE TYPE GeometryType AS {
     type: string,
     geometry: GeometryType,
     properties: object
};

I came up with the above because there's a derived type called objects[2] in AsterixDB. The above doesn't work because of the following reasons:

  * type appears to be keyword
  * We can't use the defining type within the same type recursively
    (ie. GeometryType within GeometryType)
  * The type object cannot be resolved

Any suggestions on how a GeoJSON can be parsed into AsterixDB?

[1] https://tools.ietf.org/html/rfc7946
[2] https://ci.apache.org/projects/asterixdb/datamodel.html#DerivedTypesObject

Thank you
Yours sincerely,
Riyafa


Reply via email to