-- NOTE: This file is auto generated by ./sql-generator -- DuplicateRepository.getAll with "duplicates" as ( select "assets"."duplicateId", json_agg( "asset" order by "assets"."localDateTime" asc ) as "assets" from "assets" left join lateral ( select "assets".*, "exif" as "exifInfo" from "exif" where "exif"."assetId" = "assets"."id" ) as "asset" on true where "assets"."visibility" in ('archive', 'timeline') and "assets"."ownerId" = $1::uuid and "assets"."duplicateId" is not null and "assets"."deletedAt" is null and "assets"."stackId" is null group by "assets"."duplicateId" ), "unique" as ( select "duplicateId" from "duplicates" where json_array_length("assets") = $2 ), "removed_unique" as ( update "assets" set "duplicateId" = $3 from "unique" where "assets"."duplicateId" = "unique"."duplicateId" ) select * from "duplicates" where not exists ( select from "unique" where "unique"."duplicateId" = "duplicates"."duplicateId" ) -- DuplicateRepository.delete update "assets" set "duplicateId" = $1 where "ownerId" = $2 and "duplicateId" = $3 -- DuplicateRepository.deleteAll update "assets" set "duplicateId" = $1 where "ownerId" = $2 and "duplicateId" in ($3) -- DuplicateRepository.search begin set local vchordrq.probes = 1 with "cte" as ( select "assets"."id" as "assetId", "assets"."duplicateId", smart_search.embedding <=> $1 as "distance" from "assets" inner join "smart_search" on "assets"."id" = "smart_search"."assetId" where "assets"."visibility" in ('archive', 'timeline') and "assets"."ownerId" = any ($2::uuid[]) and "assets"."deletedAt" is null and "assets"."type" = $3 and "assets"."id" != $4::uuid and "assets"."stackId" is null order by "distance" limit $5 ) select * from "cte" where "cte"."distance" <= $6 commit -- DuplicateRepository.merge update "assets" set where ( "duplicateId" = any ($1::uuid[]) or "id" = any ($2::uuid[]) )