>From Ian Maxon <[email protected]>: Attention is currently required from: Ian Maxon, Suryaa Charan Shivakumar.
Ian Maxon has uploaded a new patch set (#14) to the change originally created by Suryaa Charan Shivakumar. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20968?usp=email ) The following approvals got outdated and were removed: Contrib-2 by Anon. E. Moose #1000171, Integration-Tests+1 by Jenkins, Verified+1 by Jenkins Change subject: [ASTERIXDB-3542][SQL++] Add CRS support and st_transform function ...................................................................... [ASTERIXDB-3542][SQL++] Add CRS support and st_transform function - New metadata entity: CoordinateReferenceSystem (SRID, name, WKT) backed by a dedicated metadata index and tuple translator - DDL: CREATE CRS, DROP CRS - SQL++ parser (SQLPP.jj): grammar rules for CREATE/DROP CRS - ST_Transform(geom, fromSRID, toSRID): compile-time WKT lookup via metadata, runtime coordinate transformation via Apache SIS - ST_Distance_Spheroid(geom1, geom2): geodesic distance on WGS-84 ellipsoid using SIS GeodeticCalculator - Metadata lock support: acquireCRSReadLock / acquireCRSWriteLock - Error codes 1244-1249 covering CRS DDL and function failure modes - Test suite: 13 test cases covering DDL lifecycle, ST_Transform, ST_Distance_Spheroid, and negative cases - Documentation: DDL reference and geo-functions markdown updated - Apache SIS + GeoAPI dependencies added (asterix-geo, asterix-app) Some parts of this commit were Generated-by: Claude code Change-Id: Ia6e37080a581292744ddc9020b214926412c16ac --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/DefaultRuleSetFactory.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java A asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/STTransformResolveCRSRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/util/SpatialJoinUtils.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AbstractLangTranslator.java M asterixdb/asterix-app/pom.xml M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java A asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/CRSStatementHandler.java M asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_dataset/metadata_dataset.1.adm M asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm M asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_index/metadata_index.1.adm M asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_selfjoin/metadata_selfjoin.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/GeoJSONQueries.xml A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.02.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.03.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.04.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.05.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/dataverse-scoping/dataverse-scoping.06.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.02.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.03.update.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.04.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.05.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.06.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.08.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.09.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.10.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.11.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/functions/crs.99.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-create-metadata-namespace/crs-create-metadata-namespace.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-distance-spheroid-srid/crs-distance-spheroid-srid.01.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-drop-not-found/crs-drop-not-found.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-duplicate/crs-duplicate.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-invalid-wkt/crs-invalid-wkt.01.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-transform-not-found/crs-transform-not-found.00.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-transform-not-found/crs-transform-not-found.01.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-transform-not-found/crs-transform-not-found.99.ddl.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-transform-srid-too-large/crs-transform-srid-too-large.01.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/geojson/crs/negative/crs-transform-srid-zero/crs-transform-srid-zero.01.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/dataverse-scoping/dataverse-scoping.03.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/dataverse-scoping/dataverse-scoping.05.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.04.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.05.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.06.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.08.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.09.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/functions/result.10.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/negative-fractional/crs-fractional-srid.01.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/negative-srid-fromtext/crs-negative-srid-fromtext.01.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/negative-srid/crs-negative-srid.01.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/geojson/crs/negative/crs-distance-spheroid-srid.01.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf23/udf23.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results_cloud/user-defined-functions/udf23/udf23.1.adm M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IMetadataLockManager.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IMetadataLockUtil.java M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/MetadataConstants.java M asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties M asterixdb/asterix-doc/src/main/markdown/sqlpp/7_ddl_dml.md M asterixdb/asterix-doc/src/site/markdown/geo/functions.md M asterixdb/asterix-geo/pom.xml M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/GeoFunctionRegistrant.java M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/GeoFunctionTypeInferers.java M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/functions/AbstractSTDoubleGeometryDescriptor.java A asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/functions/STDistanceSpheroidDescriptor.java M asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/functions/STFlipCoordinatesDescriptor.java A asterixdb/asterix-geo/src/main/java/org/apache/asterix/geo/evaluators/functions/STTransformDescriptor.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Statement.java A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/crs/CRSCreateStatement.java A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/crs/CRSDropStatement.java A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/crs/CRSStatement.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataCache.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataTransactionContext.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataNode.java A asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/CRSEntity.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataIndexesProvider.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataPrimaryIndexes.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataRecordTypes.java A asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/CoordinateReferenceSystem.java A asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CRSTupleTranslator.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/MetadataTupleTranslatorProvider.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/lock/MetadataLockKey.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/lock/MetadataLockManager.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/MetadataLockUtil.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java M asterixdb/asterix-server/pom.xml M asterixdb/pom.xml A asterixdb/src/main/licenses/content/javax.measure--unit-api--2.1.3_LICENSE.txt A asterixdb/src/main/licenses/content/raw.githubusercontent.com_opengeospatial_geoapi_master_LICENSE.txt 95 files changed, 2,791 insertions(+), 27 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/68/20968/14 -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20968?usp=email To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email Gerrit-MessageType: newpatchset Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: Ia6e37080a581292744ddc9020b214926412c16ac Gerrit-Change-Number: 20968 Gerrit-PatchSet: 14 Gerrit-Owner: Suryaa Charan Shivakumar <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-CC: Ian Maxon <[email protected]> Gerrit-Attention: Ian Maxon <[email protected]> Gerrit-Attention: Suryaa Charan Shivakumar <[email protected]>
