directory and directory_entry_dir inconsistency?
Guillaume has found at least one directory '0fda7ed42c34b25e009ad734b828637000fe69ee' which targets dir_entries which are not present in the directory_entry_dir table.
This generates flaky results in the swh_directory_walk
and swh_directory_walk_one
functions.
softwareheritage=> select * from directory dir where dir.id='\x0fda7ed42c34b25e009ad734b828637000fe69ee';
id | dir_entries | file_entries | rev_entries | object_id
--------------------------------------------+-----------------------------------------------------+----------------------------------------------------------------------------------------------------+-------------+------------
\x0fda7ed42c34b25e009ad734b828637000fe69ee | {928847825,928847896,928847956,928847938,928847936} | {1342314244,1342314344,654942401,1342314411,638363058,1316525564,1316525686,1316571535,1342314386} | | 1170016533
(1 row)
softwareheritage=> select ded.* from directory dir inner join directory_entry_dir ded on ded.id=any(dir.dir_entries) where dir.id='\x0fda7ed42c34b25e009ad734b828637000fe69ee';
id | target | name | perms
-----------+--------------------------------------------+----------+-------
928847896 | \x896826a64d213e1276211a9c9d755f4c8561c8ef | \x737263 | 16384
(1 row)
softwareheritage=> select * from directory_entry_dir where id in (select unnest(dir_entries) from directory where id='\x0fda7ed42c34b25e009ad734b828637000fe69ee');
id | target | name | perms
-----------+--------------------------------------------+----------+-------
928847896 | \x896826a64d213e1276211a9c9d755f4c8561c8ef | \x737263 | 16384
(1 row)
Migrated from T710 (view on Phabricator)