diff --git a/swh/indexer/sql/40-swh-func.sql b/swh/indexer/sql/40-swh-func.sql --- a/swh/indexer/sql/40-swh-func.sql +++ b/swh/indexer/sql/40-swh-func.sql @@ -319,7 +319,9 @@ select id, translated_metadata, mappings, indexer_configuration_id from tmp_revision_metadata tcm on conflict(id, indexer_configuration_id) - do update set translated_metadata = excluded.translated_metadata; + do update set + translated_metadata = excluded.translated_metadata, + mappings = excluded.mappings; else insert into revision_metadata (id, translated_metadata, mappings, indexer_configuration_id) @@ -415,7 +417,9 @@ metadata_tsvector, mappings from tmp_origin_intrinsic_metadata on conflict(origin_id, indexer_configuration_id) - do update set metadata = excluded.metadata; + do update set + metadata = excluded.metadata, + mappings = excluded.mappings; else insert into origin_intrinsic_metadata (origin_id, metadata, indexer_configuration_id, from_revision, metadata_tsvector, mappings) diff --git a/swh/indexer/tests/storage/test_storage.py b/swh/indexer/tests/storage/test_storage.py --- a/swh/indexer/tests/storage/test_storage.py +++ b/swh/indexer/tests/storage/test_storage.py @@ -1295,7 +1295,7 @@ 'softwareRequirements': None, 'identifier': None }, - 'mappings': [], + 'mappings': ['mapping1'], 'indexer_configuration_id': tool_id, } @@ -1309,7 +1309,7 @@ expected_metadata_v1 = [{ 'id': self.revision_id_1, 'translated_metadata': metadata_v1['translated_metadata'], - 'mappings': [], + 'mappings': ['mapping1'], 'tool': self.tools['swh-metadata-detector'] }] @@ -1322,6 +1322,7 @@ 'name': 'test_metadata', 'author': 'MG', }, + 'mappings': ['mapping2'], }) self.storage.revision_metadata_add([metadata_v2]) @@ -1356,7 +1357,7 @@ 'softwareRequirements': None, 'identifier': None }, - 'mappings': [], + 'mappings': ['mapping1'], 'indexer_configuration_id': tool_id, } @@ -1371,7 +1372,7 @@ expected_metadata_v1 = [{ 'id': self.revision_id_2, 'translated_metadata': metadata_v1['translated_metadata'], - 'mappings': [], + 'mappings': ['mapping1'], 'tool': self.tools['swh-metadata-detector'] }] self.assertEqual(actual_metadata, expected_metadata_v1) @@ -1383,6 +1384,7 @@ 'name': 'test_update_duplicated_metadata', 'author': 'MG' }, + 'mappings': ['mapping2'], }) self.storage.revision_metadata_add([metadata_v2], conflict_update=True) @@ -1392,7 +1394,7 @@ expected_metadata_v2 = [{ 'id': self.revision_id_2, 'translated_metadata': metadata_v2['translated_metadata'], - 'mappings': [], + 'mappings': ['mapping2'], 'tool': self.tools['swh-metadata-detector'] }]