diff --git a/server/src/queries/asset.repository.sql b/server/src/queries/asset.repository.sql index 4564971ac2..f4f13c4d2b 100644 --- a/server/src/queries/asset.repository.sql +++ b/server/src/queries/asset.repository.sql @@ -296,7 +296,11 @@ with "duplicates" as ( select "assets"."duplicateId", - jsonb_agg("asset") as "assets" + json_agg( + "asset" + order by + "assets"."localDateTime" asc + ) as "assets" from "assets" left join lateral ( @@ -323,7 +327,7 @@ with from "duplicates" where - jsonb_array_length("assets") = $3 + json_array_length("assets") = $3 ), "removed_unique" as ( update "assets" diff --git a/server/src/repositories/asset.repository.ts b/server/src/repositories/asset.repository.ts index d49124b04b..e118bf39ad 100644 --- a/server/src/repositories/asset.repository.ts +++ b/server/src/repositories/asset.repository.ts @@ -649,10 +649,7 @@ export class AssetRepository { ) .select('assets.duplicateId') .select((eb) => - eb - .fn('jsonb_agg', [eb.table('asset')]) - .$castTo() - .as('assets'), + eb.fn.jsonAgg('asset').orderBy('assets.localDateTime', 'asc').$castTo().as('assets'), ) .where('assets.ownerId', '=', asUuid(userId)) .where('assets.duplicateId', 'is not', null) @@ -666,7 +663,7 @@ export class AssetRepository { qb .selectFrom('duplicates') .select('duplicateId') - .where((eb) => eb(eb.fn('jsonb_array_length', ['assets']), '=', 1)), + .where((eb) => eb(eb.fn('json_array_length', ['assets']), '=', 1)), ) .with('removed_unique', (qb) => qb @@ -677,7 +674,7 @@ export class AssetRepository { ) .selectFrom('duplicates') .selectAll() - // TODO: compare with filtering by jsonb_array_length > 1 + // TODO: compare with filtering by json_array_length > 1 .where(({ not, exists }) => not(exists((eb) => eb.selectFrom('unique').whereRef('unique.duplicateId', '=', 'duplicates.duplicateId'))), )