Skip to content

Commit 5f5466d

Browse files
Merge pull request #8524 from mandy-chessell/oak2024
New query design for PostgreSQL repository
2 parents d4c17d7 + 13d171e commit 5f5466d

File tree

13 files changed

+324
-128
lines changed

13 files changed

+324
-128
lines changed

open-metadata-implementation/access-services/asset-manager/Egeria-asset-manager-omas.http

+1-1
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ Content-Type: application/json
801801
###
802802
# group: Glossaries
803803
# @name Search for term by version identifier
804-
POST {{baseURL}}/servers/{{server}}/open-metadata/framework-services/asset-manager/open-metadata-store/users/{{user}}/metadata-elements/by-search-specification?
804+
POST {{baseURL}}/servers/{{server}}/open-metadata/framework-services/asset-manager/open-metadata-store/users/{{user}}/metadata-elements/by-search-conditions?
805805
startFrom=0&
806806
pageSize=0&
807807
forLineage=false&

open-metadata-implementation/access-services/asset-manager/Egeria-asset-manager-omas.postman_collection.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1871,7 +1871,7 @@
18711871
}
18721872
},
18731873
"url": {
1874-
"raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/asset-manager/open-metadata-store/users/{{user}}/metadata-elements/by-search-specification?startFrom=0&pageSize=0&forLineage=false&forDuplicateProcessing=false&effectiveTime=0",
1874+
"raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/asset-manager/open-metadata-store/users/{{user}}/metadata-elements/by-search-conditions?startFrom=0&pageSize=0&forLineage=false&forDuplicateProcessing=false&effectiveTime=0",
18751875
"host": [
18761876
"{{baseURL}}"
18771877
],
@@ -1885,7 +1885,7 @@
18851885
"users",
18861886
"{{user}}",
18871887
"metadata-elements",
1888-
"by-search-specification"
1888+
"by-search-conditions"
18891889
],
18901890
"query": [
18911891
{

open-metadata-implementation/adapters/open-connectors/repository-services-connectors/open-metadata-collection-store-connectors/postgres-repository-connector/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/postgres/repositoryconnector/PostgresOMRSMetadataStore.java

+53-28
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,10 @@ List<EntityDetail> findEntitiesByPropertyValue(String entityTypeG
220220
{
221221
final String entityTypeGUIDParameterName = "entityTypeGUID";
222222

223-
QueryBuilder entityQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
223+
QueryBuilder entityQueryBuilder = new QueryBuilder(RepositoryTable.ENTITY.getTableName(),
224+
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName(),
225+
repositoryHelper,
226+
repositoryName);
224227

225228
entityQueryBuilder.setTypeGUID(entityTypeGUID, entityTypeGUIDParameterName);
226229
entityQueryBuilder.setSearchString(searchCriteria);
@@ -233,7 +236,10 @@ List<EntityDetail> findEntitiesByPropertyValue(String entityTypeG
233236

234237
if ((limitResultsByClassification != null) && (! limitResultsByClassification.isEmpty()))
235238
{
236-
classificationQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
239+
classificationQueryBuilder = new QueryBuilder(RepositoryTable.CLASSIFICATION.getTableName(),
240+
RepositoryTable.CLASSIFICATION_ATTRIBUTE_VALUE.getTableName(),
241+
repositoryHelper,
242+
repositoryName);
237243

238244
classificationQueryBuilder.setLimitResultsByClassification(limitResultsByClassification);
239245
classificationQueryBuilder.setAsOfTime(asOfTime);
@@ -287,13 +293,14 @@ List<EntityDetail> findEntitiesByProperty(String entityTypeGU
287293
{
288294
final String entityTypeGUIDParameterName = "entityTypeGUID";
289295

290-
QueryBuilder entityQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
296+
QueryBuilder entityQueryBuilder = new QueryBuilder(RepositoryTable.ENTITY.getTableName(),
297+
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName(),
298+
repositoryHelper,
299+
repositoryName);
291300

292301
entityQueryBuilder.setTypeGUID(entityTypeGUID, entityTypeGUIDParameterName);
293302
entityQueryBuilder.setMatchProperties(matchProperties,
294-
matchCriteria,
295-
RepositoryTable.ENTITY.getTableName(),
296-
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName());
303+
matchCriteria);
297304
entityQueryBuilder.setLimitResultsByStatus(limitResultsByStatus);
298305
entityQueryBuilder.setAsOfTime(asOfTime);
299306
entityQueryBuilder.setSequencingOrder(sequencingOrder, sequencingProperty);
@@ -303,7 +310,10 @@ List<EntityDetail> findEntitiesByProperty(String entityTypeGU
303310

304311
if ((limitResultsByClassification != null) && (! limitResultsByClassification.isEmpty()))
305312
{
306-
classificationQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
313+
classificationQueryBuilder = new QueryBuilder(RepositoryTable.CLASSIFICATION.getTableName(),
314+
RepositoryTable.CLASSIFICATION_ATTRIBUTE_VALUE.getTableName(),
315+
repositoryHelper,
316+
repositoryName);
307317

308318
classificationQueryBuilder.setLimitResultsByClassification(limitResultsByClassification);
309319
classificationQueryBuilder.setAsOfTime(asOfTime);
@@ -357,21 +367,25 @@ List<EntityDetail> findEntities(String entityTypeGUID,
357367
final String entityTypeGUIDParameterName = "entityTypeGUID";
358368
final String entitySubtypeGUIDsParameterName = "entitySubtypeGUIDs";
359369

360-
QueryBuilder entityQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
370+
QueryBuilder entityQueryBuilder = new QueryBuilder(RepositoryTable.ENTITY.getTableName(),
371+
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName(),
372+
repositoryHelper,
373+
repositoryName);
361374
QueryBuilder classificationQueryBuilder = null;
362375

363376
entityQueryBuilder.setTypeGUID(entityTypeGUID, entityTypeGUIDParameterName, entitySubtypeGUIDs, entitySubtypeGUIDsParameterName);
364-
entityQueryBuilder.setSearchProperties(matchProperties,
365-
RepositoryTable.ENTITY.getTableName(),
366-
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName());
377+
entityQueryBuilder.setSearchProperties(matchProperties);
367378
entityQueryBuilder.setLimitResultsByStatus(limitResultsByStatus);
368379
entityQueryBuilder.setAsOfTime(asOfTime);
369380
entityQueryBuilder.setSequencingOrder(sequencingOrder, sequencingProperty);
370381
entityQueryBuilder.setPaging(fromEntityElement, pageSize);
371382

372383
if (matchClassifications != null)
373384
{
374-
classificationQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
385+
classificationQueryBuilder = new QueryBuilder(RepositoryTable.CLASSIFICATION.getTableName(),
386+
RepositoryTable.CLASSIFICATION_ATTRIBUTE_VALUE.getTableName(),
387+
repositoryHelper,
388+
repositoryName);
375389

376390
classificationQueryBuilder.setSearchClassifications(matchClassifications);
377391
classificationQueryBuilder.setAsOfTime(asOfTime);
@@ -426,8 +440,14 @@ List<EntityDetail> findEntitiesByClassification(String entity
426440
{
427441
final String entityTypeGUIDParameterName = "entityTypeGUID";
428442

429-
QueryBuilder entityQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
430-
QueryBuilder classificationQueryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
443+
QueryBuilder entityQueryBuilder = new QueryBuilder(RepositoryTable.ENTITY.getTableName(),
444+
RepositoryTable.ENTITY_ATTRIBUTE_VALUE.getTableName(),
445+
repositoryHelper,
446+
repositoryName);
447+
QueryBuilder classificationQueryBuilder = new QueryBuilder(RepositoryTable.CLASSIFICATION.getTableName(),
448+
RepositoryTable.CLASSIFICATION_ATTRIBUTE_VALUE.getTableName(),
449+
repositoryHelper,
450+
repositoryName);
431451

432452
entityQueryBuilder.setTypeGUID(entityTypeGUID, entityTypeGUIDParameterName);
433453
entityQueryBuilder.setLimitResultsByStatus(limitResultsByStatus);
@@ -436,10 +456,7 @@ List<EntityDetail> findEntitiesByClassification(String entity
436456
entityQueryBuilder.setPaging(fromEntityElement, pageSize);
437457

438458
classificationQueryBuilder.setLimitResultsByClassification(Collections.singletonList(classificationName));
439-
classificationQueryBuilder.setMatchProperties(matchClassificationProperties,
440-
matchCriteria,
441-
RepositoryTable.CLASSIFICATION.getTableName(),
442-
RepositoryTable.CLASSIFICATION_ATTRIBUTE_VALUE.getTableName());
459+
classificationQueryBuilder.setMatchProperties(matchClassificationProperties, matchCriteria);
443460
classificationQueryBuilder.setAsOfTime(asOfTime);
444461

445462
DatabaseStore databaseStore = new DatabaseStore(jdbcResourceConnector, repositoryName, repositoryHelper);
@@ -567,7 +584,10 @@ List<Relationship> getRelationshipsForEntity(String entityGU
567584
{
568585
final String relationshipTypeGUIDParameterName = "relationshipTypeGUID";
569586

570-
QueryBuilder queryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
587+
QueryBuilder queryBuilder = new QueryBuilder(RepositoryTable.RELATIONSHIP.getTableName(),
588+
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName(),
589+
repositoryHelper,
590+
repositoryName);
571591

572592
queryBuilder.setTypeGUID(relationshipTypeGUID, relationshipTypeGUIDParameterName);
573593
queryBuilder.setLimitResultsByStatus(limitResultsByStatus);
@@ -654,12 +674,13 @@ List<Relationship> findRelationships(String relationshipTypeG
654674
final String relationshipTypeGUIDParameterName = "relationshipTypeGUID";
655675
final String relationshipSubtypeGUIDsParameterName = "relationshipSubtypeGUIDs";
656676

657-
QueryBuilder queryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
677+
QueryBuilder queryBuilder = new QueryBuilder(RepositoryTable.RELATIONSHIP.getTableName(),
678+
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName(),
679+
repositoryHelper,
680+
repositoryName);
658681

659682
queryBuilder.setTypeGUID(relationshipTypeGUID, relationshipTypeGUIDParameterName, relationshipSubtypeGUIDs, relationshipSubtypeGUIDsParameterName);
660-
queryBuilder.setSearchProperties(matchProperties,
661-
RepositoryTable.RELATIONSHIP.getTableName(),
662-
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName());
683+
queryBuilder.setSearchProperties(matchProperties);
663684
queryBuilder.setLimitResultsByStatus(limitResultsByStatus);
664685
queryBuilder.setAsOfTime(asOfTime);
665686
queryBuilder.setSequencingOrder(sequencingOrder, sequencingProperty);
@@ -711,13 +732,14 @@ List<Relationship> findRelationshipsByProperty(String relatio
711732
{
712733
final String relationshipTypeGUIDParameterName = "relationshipTypeGUID";
713734

714-
QueryBuilder queryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
735+
QueryBuilder queryBuilder = new QueryBuilder(RepositoryTable.RELATIONSHIP.getTableName(),
736+
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName(),
737+
repositoryHelper,
738+
repositoryName);
715739

716740
queryBuilder.setTypeGUID(relationshipTypeGUID, relationshipTypeGUIDParameterName);
717741
queryBuilder.setMatchProperties(matchProperties,
718-
matchCriteria,
719-
RepositoryTable.RELATIONSHIP.getTableName(),
720-
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName());
742+
matchCriteria);
721743
queryBuilder.setLimitResultsByStatus(limitResultsByStatus);
722744
queryBuilder.setAsOfTime(asOfTime);
723745
queryBuilder.setSequencingOrder(sequencingOrder, sequencingProperty);
@@ -768,7 +790,10 @@ List<Relationship> findRelationshipsByPropertyValue(String re
768790
{
769791
final String relationshipTypeGUIDParameterName = "relationshipTypeGUID";
770792

771-
QueryBuilder queryBuilder = new QueryBuilder(repositoryHelper, repositoryName);
793+
QueryBuilder queryBuilder = new QueryBuilder(RepositoryTable.RELATIONSHIP.getTableName(),
794+
RepositoryTable.RELATIONSHIP_ATTRIBUTE_VALUE.getTableName(),
795+
repositoryHelper,
796+
repositoryName);
772797

773798
queryBuilder.setTypeGUID(relationshipTypeGUID, relationshipTypeGUIDParameterName);
774799
queryBuilder.setSearchString(searchCriteria);

0 commit comments

Comments
 (0)