Riyafa Abdul Hameed has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/1838
Change subject: ASTERIXDB-1371 - Define new datatype 'geometry' user model changes: Add new builtin type 'geometry' storage format changes: no interface changes: no ...................................................................... ASTERIXDB-1371 - Define new datatype 'geometry' user model changes: Add new builtin type 'geometry' storage format changes: no interface changes: no Change-Id: If32dbfcc11350a81e6a64f6abeec0595aa7872d2 --- A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/GeoJSONQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/datatype/datatype_definition.1.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/datatype/datatype.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ATypeTag.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeTagUtil.java 8 files changed, 89 insertions(+), 1 deletion(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/38/1838/1 diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/GeoJSONQueries.xml b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/GeoJSONQueries.xml new file mode 100644 index 0000000..0525d53 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/GeoJSONQueries.xml @@ -0,0 +1,25 @@ +<!-- + ! Licensed to the Apache Software Foundation (ASF) under one + ! or more contributor license agreements. See the NOTICE file + ! distributed with this work for additional information + ! regarding copyright ownership. The ASF licenses this file + ! to you under the Apache License, Version 2.0 (the + ! "License"); you may not use this file except in compliance + ! with the License. You may obtain a copy of the License at + ! + ! http://www.apache.org/licenses/LICENSE-2.0 + ! + ! Unless required by applicable law or agreed to in writing, + ! software distributed under the License is distributed on an + ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ! KIND, either express or implied. See the License for the + ! specific language governing permissions and limitations + ! under the License. + !--> +<test-group name="geojson"> + <test-case FilePath="geojson"> + <compilation-unit name="datatype"> + <output-dir compare="Text">datatype</output-dir> + </compilation-unit> + </test-case> +</test-group> diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/datatype/datatype_definition.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/datatype/datatype_definition.1.ddl.sqlpp new file mode 100644 index 0000000..ec1af42 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/datatype/datatype_definition.1.ddl.sqlpp @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +drop dataverse GeoJSON if exists; +create dataverse GeoJSON; + +use GeoJSON; + +CREATE TYPE GeometryType AS{ + id : int, + geometry : geometry +}; \ No newline at end of file diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/datatype/datatype.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/datatype/datatype.1.adm new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/datatype/datatype.1.adm diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml index 6a6ea4b..bad36cf 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml @@ -19,6 +19,7 @@ <!DOCTYPE test-suite [ <!ENTITY RecordsQueries SYSTEM "queries_sqlpp/objects/ObjectsQueries.xml"> <!ENTITY AsyncDeferredQueries SYSTEM "queries_sqlpp/async-deferred/AsyncDeferredQueries.xml"> + <!ENTITY GeoQueries SYSTEM "queries_sqlpp/geojson/GeoJSONQueries.xml"> ]> <test-suite xmlns="urn:xml.testframework.asterix.apache.org" ResultOffsetPath="results" QueryOffsetPath="queries_sqlpp" QueryFileExtension=".sqlpp"> &AsyncDeferredQueries; @@ -8784,4 +8785,5 @@ </compilation-unit> </test-case> </test-group> + &GeoQueries; </test-suite> diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java index fd55815..a59532d 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java @@ -78,6 +78,7 @@ _builtinTypeMap.put("null", BuiltinType.ANULL); _builtinTypeMap.put("uuid", BuiltinType.AUUID); _builtinTypeMap.put("shortwithouttypeinfo", BuiltinType.SHORTWITHOUTTYPEINFO); + _builtinTypeMap.put("geometry", BuiltinType.AGEOMETRY); } private BuiltinTypeMap() { diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ATypeTag.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ATypeTag.java index 4e1f7f6..b7d9873 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ATypeTag.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ATypeTag.java @@ -66,7 +66,8 @@ DAYTIMEDURATION(37), UUID(38), SHORTWITHOUTTYPEINFO(40), - NULL(41); + NULL(41), + GEOMETRY(42); /* * Serialized Tags begin @@ -99,6 +100,7 @@ public static final byte SERIALIZED_FLOAT_TYPE_TAG = FLOAT.serialize(); public static final byte SERIALIZED_BINARY_TYPE_TAG = BINARY.serialize(); public static final byte SERIALIZED_UUID_TYPE_TAG = UUID.serialize(); + public static final byte SERIALIZED_GEOMETRY_TYPE_TAG = GEOMETRY.serialize(); /* * Serialized Tags end diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java index 3037e7c..6b1d625 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java @@ -682,6 +682,34 @@ } }; + public final static BuiltinType AGEOMETRY = new LowerCaseConstructorType() { + + private static final long serialVersionUID = 1L; + + @Override + public String getDisplayName() { + return "AGEOMETRY"; + } + + @Override + public ATypeTag getTypeTag() { + return ATypeTag.GEOMETRY; + } + + @Override + public String getTypeName() { + return "geometry"; + } + + @Override + public ObjectNode toJSON() { + ObjectMapper om = new ObjectMapper(); + ObjectNode type = om.createObjectNode(); + type.put("type", "geometry"); + return type; + } + }; + public final static BuiltinType ACIRCLE = new LowerCaseConstructorType() { private static final long serialVersionUID = 1L; diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeTagUtil.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeTagUtil.java index 5d91d2f..694b3cd 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeTagUtil.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/TypeTagUtil.java @@ -88,6 +88,8 @@ return AUnorderedListType.FULLY_OPEN_UNORDEREDLIST_TYPE; case ARRAY: return AOrderedListType.FULL_OPEN_ORDEREDLIST_TYPE; + case GEOMETRY: + return BuiltinType.AGEOMETRY; default: throw new AsterixException("Typetag " + typeTag + " is not a built-in type"); } -- To view, visit https://asterix-gerrit.ics.uci.edu/1838 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If32dbfcc11350a81e6a64f6abeec0595aa7872d2 Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Riyafa Abdul Hameed <riyafa...@cse.mrt.ac.lk>