diff --git a/server/src/queries/asset.repository.sql b/server/src/queries/asset.repository.sql index 1ebe3f7f0c..7866827e8f 100644 --- a/server/src/queries/asset.repository.sql +++ b/server/src/queries/asset.repository.sql @@ -335,7 +335,7 @@ with coalesce(array_agg("ratio"), '{}') as "ratio", coalesce(array_agg("status"), '{}') as "status", coalesce(array_agg("thumbhash"), '{}') as "thumbhash", - coalesce(array_agg("stack"), '{}') as "stack" + coalesce(json_agg("stack"), '[]') as "stack" from "cte" ) diff --git a/server/src/repositories/asset.repository.ts b/server/src/repositories/asset.repository.ts index a32957d17f..0a8d31b826 100644 --- a/server/src/repositories/asset.repository.ts +++ b/server/src/repositories/asset.repository.ts @@ -692,7 +692,7 @@ export class AssetRepository { eb.fn.coalesce(eb.fn('array_agg', ['thumbhash']), sql.lit('{}')).as('thumbhash'), ]) .$if(!!options.withStacked, (qb) => - qb.select((eb) => eb.fn.coalesce(eb.fn('array_agg', ['stack']), sql.lit('{}')).as('stack')), + qb.select((eb) => eb.fn.coalesce(eb.fn('json_agg', ['stack']), sql.lit('[]')).as('stack')), ), ) .selectFrom('agg') diff --git a/web/src/test-data/factories/asset-factory.ts b/web/src/test-data/factories/asset-factory.ts index efe3e6273b..aef7b5f16d 100644 --- a/web/src/test-data/factories/asset-factory.ts +++ b/web/src/test-data/factories/asset-factory.ts @@ -79,7 +79,7 @@ export const toResponseDto = (...timelineAsset: TimelineAsset[]) => { bucketAssets.ownerId.push(asset.ownerId); bucketAssets.projectionType.push(asset.projectionType!); bucketAssets.ratio.push(asset.ratio); - bucketAssets.stack?.push(asset.stack ? [asset.stack.id, asset.stack.assetCount] : null); + bucketAssets.stack?.push(asset.stack ? [asset.stack.id, asset.stack.assetCount.toString()] : null); bucketAssets.thumbhash.push(asset.thumbhash!); }