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