diff --git a/src/azul/plugins/repository/tdr_anvil/__init__.py b/src/azul/plugins/repository/tdr_anvil/__init__.py index e72dec7774..a19a16c462 100644 --- a/src/azul/plugins/repository/tdr_anvil/__init__.py +++ b/src/azul/plugins/repository/tdr_anvil/__init__.py @@ -446,39 +446,40 @@ def _retrieve_entities(self, entity_type: EntityType, keys: AbstractSet[Key], ) -> MutableJSONs: - if not keys: - return [] - table_name = self._full_table_name(source, entity_type) - columns = set.union( - self.common_indexed_columns, - self.indexed_columns_by_entity_type[entity_type] - ) - pk_column = entity_type + '_id' - assert pk_column in columns, entity_type - log.debug('Retrieving %i entities of type %r ...', len(keys), entity_type) - rows = self._run_sql(f''' - SELECT {', '.join(sorted(columns))} - FROM {backtick(table_name)} - WHERE {pk_column} IN ({', '.join(map(repr, keys))}) - ''') + if keys: + table_name = self._full_table_name(source, entity_type) + columns = set.union( + self.common_indexed_columns, + self.indexed_columns_by_entity_type[entity_type] + ) + pk_column = entity_type + '_id' + assert pk_column in columns, entity_type + log.debug('Retrieving %i entities of type %r ...', len(keys), entity_type) + rows = self._run_sql(f''' + SELECT {', '.join(sorted(columns))} + FROM {backtick(table_name)} + WHERE {pk_column} IN ({', '.join(map(repr, keys))}) + ''') - def convert_column(value): - if isinstance(value, list): - value.sort() - if isinstance(value, datetime.datetime): - return self.format_version(value) - else: - return value + def convert_column(value): + if isinstance(value, list): + value.sort() + if isinstance(value, datetime.datetime): + return self.format_version(value) + else: + return value - rows = [ - {k: convert_column(v) for k, v in row.items()} - for row in rows - ] - log.debug('Retrieved %i entities of type %r', len(rows), entity_type) - missing = keys - {row[pk_column] for row in rows} - require(not missing, - f'Required entities not found in {table_name}: {missing}') - return rows + rows = [ + {k: convert_column(v) for k, v in row.items()} + for row in rows + ] + log.debug('Retrieved %i entities of type %r', len(rows), entity_type) + missing = keys - {row[pk_column] for row in rows} + require(not missing, + f'Required entities not found in {table_name}: {missing}') + return rows + else: + return [] common_indexed_columns = { 'datarepo_row_id',