2323import marquez .db .mappers .DatasetMapper ;
2424import marquez .db .mappers .DatasetRowMapper ;
2525import marquez .db .models .DatasetRow ;
26+ import marquez .db .models .DatasetSymlinkRow ;
2627import marquez .db .models .DatasetVersionRow ;
2728import marquez .db .models .NamespaceRow ;
2829import marquez .db .models .SourceRow ;
@@ -73,8 +74,7 @@ void updateLastModifiedAt(
7374 WITH selected_datasets AS (
7475 SELECT d.*
7576 FROM datasets_view d
76- WHERE d.namespace_name = :namespaceName
77- AND d.name = :datasetName
77+ WHERE CAST((:namespaceName, :datasetName) AS DATASET_NAME) = ANY(d.dataset_symlinks)
7878 ), dataset_runs AS (
7979 SELECT d.uuid, d.name, d.namespace_name, dv.run_uuid, dv.lifecycle_state, event_time, event
8080 FROM selected_datasets d
@@ -229,7 +229,7 @@ INSERT INTO datasets (
229229 :description,
230230 :isDeleted,
231231 false
232- ) ON CONFLICT (namespace_uuid, name )
232+ ) ON CONFLICT (uuid )
233233 DO UPDATE SET
234234 type = EXCLUDED.type,
235235 updated_at = EXCLUDED.updated_at,
@@ -275,7 +275,7 @@ DatasetRow upsert(
275275 + ":sourceName, "
276276 + ":name, "
277277 + ":physicalName) "
278- + "ON CONFLICT (namespace_uuid, name ) "
278+ + "ON CONFLICT (uuid ) "
279279 + "DO UPDATE SET "
280280 + "type = EXCLUDED.type, "
281281 + "updated_at = EXCLUDED.updated_at, "
@@ -296,8 +296,10 @@ DatasetRow upsert(
296296 """
297297 UPDATE datasets
298298 SET is_hidden = true
299- WHERE namespace_name = :namespaceName
300- AND name = :name
299+ FROM dataset_symlinks, namespaces
300+ WHERE dataset_symlinks.dataset_uuid = datasets.uuid
301+ AND namespaces.uuid = dataset_symlinks.namespace_uuid
302+ AND namespaces.name=:namespaceName AND dataset_symlinks.name=:name
301303 RETURNING *
302304 """ )
303305 Optional <DatasetRow > delete (String namespaceName , String name );
@@ -310,6 +312,10 @@ default Dataset upsertDatasetMeta(
310312 createNamespaceDao ()
311313 .upsertNamespaceRow (
312314 UUID .randomUUID (), now , namespaceName .getValue (), DEFAULT_NAMESPACE_OWNER );
315+ DatasetSymlinkRow symlinkRow =
316+ createDatasetSymlinkDao ()
317+ .upsertDatasetSymlinkRow (
318+ UUID .randomUUID (), datasetName .getValue (), namespaceRow .getUuid (), true , null , now );
313319 SourceRow sourceRow =
314320 createSourceDao ()
315321 .upsertOrDefault (
@@ -318,13 +324,12 @@ default Dataset upsertDatasetMeta(
318324 now ,
319325 datasetMeta .getSourceName ().getValue (),
320326 "" );
321- UUID newDatasetUuid = UUID .randomUUID ();
322327 DatasetRow datasetRow ;
323328
324329 if (datasetMeta .getDescription ().isPresent ()) {
325330 datasetRow =
326331 upsert (
327- newDatasetUuid ,
332+ symlinkRow . getUuid () ,
328333 datasetMeta .getType (),
329334 now ,
330335 namespaceRow .getUuid (),
@@ -338,7 +343,7 @@ default Dataset upsertDatasetMeta(
338343 } else {
339344 datasetRow =
340345 upsert (
341- newDatasetUuid ,
346+ symlinkRow . getUuid () ,
342347 datasetMeta .getType (),
343348 now ,
344349 namespaceRow .getUuid (),
@@ -349,7 +354,8 @@ default Dataset upsertDatasetMeta(
349354 datasetMeta .getPhysicalName ().getValue ());
350355 }
351356
352- updateDatasetMetric (namespaceName , datasetMeta .getType (), newDatasetUuid , datasetRow .getUuid ());
357+ updateDatasetMetric (
358+ namespaceName , datasetMeta .getType (), symlinkRow .getUuid (), datasetRow .getUuid ());
353359
354360 TagDao tagDao = createTagDao ();
355361 List <DatasetTagMapping > datasetTagMappings = new ArrayList <>();
0 commit comments