>From Ian Maxon <[email protected]>:

Attention is currently required from: Ian Maxon.

Hello Anon. E. Moose #1000171, Jenkins,

I'd like you to reexamine a change. Please visit

    https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21221?usp=email

to look at the new patch set (#5).


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: Id08170bde1f32bf9bda8821c799c9d0a629b12a6
---
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/21/21221/5
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21221?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: Id08170bde1f32bf9bda8821c799c9d0a629b12a6
Gerrit-Change-Number: 21221
Gerrit-PatchSet: 5
Gerrit-Owner: Ian Maxon <[email protected]>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-CC: Suryaa Charan Shivakumar <[email protected]>
Gerrit-Attention: Ian Maxon <[email protected]>

Reply via email to