Efficient implementation of Attribute Axis in SQL 99/140599/3
authordanielhanrahan <daniel.hanrahan@est.tech>
Mon, 2 Sep 2024 17:59:41 +0000 (18:59 +0100)
committerdanielhanrahan <daniel.hanrahan@est.tech>
Thu, 27 Mar 2025 10:04:42 +0000 (10:04 +0000)
commit66afb872fd75c36e05b4f94a76c00ca08f4511dd
treed7d425d7b7258fdfae88208ca856485e7674f210
parente23f16986d43d447d599e1c85922333af9df9a9d
Efficient implementation of Attribute Axis in SQL

Attribute Axis is the feature which allows fetching only a single
attribute, e.g. //books[@title='Matilda']/@price -> [15]
This implements the attribute axis feature directly in SQL, giving
much higher performance e.g. for CM-handle ID searches in NCMP.
The native SQL implementation directly returns data leaves from DB,
not requiring conversions to FragmentEntity, DataNode, etc.

Issue-ID: CPS-2623
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I54f517e47ca6bcddfae356f98857b05fd2e1229e
cps-ri/src/main/java/org/onap/cps/ri/CpsDataPersistenceServiceImpl.java
cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentQueryBuilder.java
cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepositoryCpsPathQuery.java
cps-ri/src/main/java/org/onap/cps/ri/repository/FragmentRepositoryCpsPathQueryImpl.java
cps-service/src/main/java/org/onap/cps/spi/CpsDataPersistenceService.java
integration-test/src/test/groovy/org/onap/cps/integration/functional/cps/QueryServiceIntegrationSpec.groovy
integration-test/src/test/groovy/org/onap/cps/integration/performance/cps/QueryPerfTest.groovy