1313
1414from prime_backup .db import schema , db_constants
1515from prime_backup .db .db_features import DbFeatures
16- from prime_backup .db .values import FileRole , BackupTagDict , OffsetChunk , OffsetChunkGroup , BlobStorageMethod , ChunkGroupChunkBindingIdentifier , BlobChunkGroupBindingIdentifier , FileIdentifier
16+ from prime_backup .db .values import FileRole , BackupTagDict , ChunkRow , OffsetChunk , OffsetChunkRow , OffsetChunkGroup , BlobStorageMethod , ChunkGroupChunkBindingIdentifier , BlobChunkGroupBindingIdentifier , FileIdentifier
1717from prime_backup .exceptions import BackupNotFound , BackupFileNotFound , BlobHashNotFound , PrimeBackupError , FilesetNotFound , FilesetFileNotFound , BlobIdNotFound , ChunkHashNotFound , ChunkIdNotFound , ChunkGroupChunkBindingNotFound , BlobChunkGroupBindingNotFound , ChunkGroupIdNotFound , ChunkGroupHashNotFound , PackIdNotFound
1818from prime_backup .types .backup_filter import BackupFilter , BackupTagFilter , BackupSortOrder
1919from prime_backup .types .pack_info import PackEntryInfo
@@ -1097,15 +1097,21 @@ def get_blob_chunk_count(self, blob_id: int) -> int:
10971097 where (schema .BlobChunkGroupBinding .blob_id == blob_id )
10981098 ).scalar_one ())
10991099
1100- def get_blob_chunks (self , blob_id : int , * , limit : Optional [int ] = None ) -> List [OffsetChunk ]:
1100+ def get_blob_chunks (self , blob_id : int , * , limit : Optional [int ] = None ) -> List [OffsetChunkRow ]:
11011101 """
11021102 result is sorted
11031103 """
11041104 absolute_offset = (schema .BlobChunkGroupBinding .chunk_group_offset + schema .ChunkGroupChunkBinding .chunk_offset ).label ('absolute_offset' )
11051105 stmt = (
11061106 select (
11071107 absolute_offset ,
1108- schema .Chunk
1108+ schema .Chunk .id ,
1109+ schema .Chunk .hash ,
1110+ schema .Chunk .compress ,
1111+ schema .Chunk .raw_size ,
1112+ schema .Chunk .stored_size ,
1113+ schema .Chunk .pack_id ,
1114+ schema .Chunk .pack_offset ,
11091115 ).
11101116 select_from (schema .BlobChunkGroupBinding ).
11111117 join (
@@ -1121,8 +1127,22 @@ def get_blob_chunks(self, blob_id: int, *, limit: Optional[int] = None) -> List[
11211127 )
11221128 if limit is not None :
11231129 stmt = stmt .limit (limit )
1124- result : Sequence [Row [Tuple [int , schema .Chunk ]]] = self .session .execute (stmt ).all ()
1125- return [OffsetChunk (offset , chunk ) for offset , chunk in result ]
1130+ result : Sequence [Row [Tuple [int , int , str , str , int , int , int , int ]]] = self .session .execute (stmt ).all ()
1131+ return [
1132+ OffsetChunkRow (
1133+ offset = offset ,
1134+ chunk = ChunkRow (
1135+ id = chunk_id ,
1136+ hash = chunk_hash ,
1137+ compress = compress ,
1138+ raw_size = raw_size ,
1139+ stored_size = stored_size ,
1140+ pack_id = pack_id ,
1141+ pack_offset = pack_offset ,
1142+ ),
1143+ )
1144+ for offset , chunk_id , chunk_hash , compress , raw_size , stored_size , pack_id , pack_offset in result
1145+ ]
11261146
11271147 def batch_get_blob_pretty_chunks (self , blob_ids : List [int ]) -> Dict [int , List ['PrettyChunk' ]]:
11281148 """
0 commit comments