Skip to content

Commit f0b2195

Browse files
authored
version history: deduplicate the versions displayed (#2854)
* version history: deduplicate the versions displayed Signed-off-by: Namizata <namizata.sangare@decathlon.com> * remove log from test Signed-off-by: Namizata <namizata.sangare@decathlon.com> --------- Signed-off-by: Namizata <namizata.sangare@decathlon.com>
1 parent 2523965 commit f0b2195

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

api/src/main/java/marquez/db/DatasetVersionDao.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,13 +278,19 @@ LEFT JOIN (
278278
WHERE dv.namespace_name = :namespaceName
279279
AND dv.dataset_name = :datasetName
280280
LIMIT :limit OFFSET :offset
281+
),
282+
dataset_symlinks_names as (
283+
SELECT DISTINCT dataset_uuid, name
284+
FROM dataset_symlinks
285+
WHERE NOT is_primary
281286
)
282287
SELECT
283288
type, name, physical_name, namespace_name, source_name, description, lifecycle_state,
284289
created_at, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
285290
tags, dataset_version_uuid,
286291
JSONB_AGG(facets ORDER BY lineage_event_time ASC) AS facets
287292
FROM dataset_info
293+
WHERE name NOT IN (SELECT name FROM dataset_symlinks_names)
288294
GROUP BY type, name, physical_name, namespace_name, source_name, description, lifecycle_state,
289295
created_at, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
290296
tags, dataset_version_uuid

api/src/test/java/marquez/DatasetIntegrationTest.java

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
import static marquez.db.ColumnLineageTestUtils.getDatasetA;
99
import static marquez.db.ColumnLineageTestUtils.getDatasetB;
10+
import static marquez.db.LineageTestUtils.PRODUCER_URL;
11+
import static marquez.db.LineageTestUtils.SCHEMA_URL;
1012
import static org.assertj.core.api.Assertions.assertThat;
1113

1214
import com.fasterxml.jackson.core.type.TypeReference;
@@ -574,4 +576,57 @@ public void testApp_doesNotShowDeletedDatasetAfterUndeleteNamespace() throws IOE
574576
jobs = client.listJobs(namespaceName);
575577
assertThat(jobs).hasSize(1);
576578
}
579+
580+
@Test
581+
public void testApp_getTableVersionsWithSymlinks() {
582+
client.createDataset(NAMESPACE_NAME, DB_TABLE_NAME, DB_TABLE_META);
583+
584+
ImmutableMap<String, Object> outputFacets =
585+
ImmutableMap.of("outputFacetKey", "outputFacetValue");
586+
ImmutableMap<String, Object> inputFacets = ImmutableMap.of("inputFacetKey", "inputFacetValue");
587+
588+
final LineageEvent.DatasetFacets datasetFacets =
589+
LineageTestUtils.newDatasetFacet(
590+
outputFacets,
591+
LineageEvent.SchemaField.builder()
592+
.name("firstname")
593+
.type("string")
594+
.description("the first name")
595+
.build());
596+
datasetFacets
597+
.getDocumentation()
598+
.setDescription(DB_TABLE_META.getDescription().orElse("the dataset documentation"));
599+
datasetFacets.setSymlinks(
600+
new LineageEvent.DatasetSymlinkFacet(
601+
PRODUCER_URL,
602+
SCHEMA_URL,
603+
Collections.singletonList(
604+
new LineageEvent.SymlinkIdentifier("symlinkNamespace", "symlinkName", "type"))));
605+
final LineageEvent lineageEvent =
606+
LineageEvent.builder()
607+
.producer("testApp_getTableVersionsWithSymlinks")
608+
.eventType("COMPLETE")
609+
.run(
610+
new LineageEvent.Run(
611+
UUID.randomUUID().toString(), LineageEvent.RunFacet.builder().build()))
612+
.job(LineageEvent.Job.builder().namespace(NAMESPACE_NAME).name(JOB_NAME).build())
613+
.eventTime(ZonedDateTime.now())
614+
.inputs(
615+
Collections.singletonList(
616+
LineageEvent.Dataset.builder()
617+
.namespace(NAMESPACE_NAME)
618+
.name(DB_TABLE_NAME)
619+
.facets(datasetFacets)
620+
.build()))
621+
.outputs(Collections.emptyList())
622+
.build();
623+
final CompletableFuture<Integer> resp = sendEvent(lineageEvent);
624+
assertThat(resp.join()).isEqualTo(201);
625+
List<DatasetVersion> versions = client.listDatasetVersions(NAMESPACE_NAME, DB_TABLE_NAME);
626+
627+
versions.forEach(
628+
datasetVersion -> {
629+
assertThat(datasetVersion.getName()).isNotEqualTo("symlinkName");
630+
});
631+
}
577632
}

0 commit comments

Comments
 (0)