Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,45 @@ class OrganizationStatsService(

fun getTranslationCount(organizationId: Long): Long {
return entityManager
.createQuery(
.createNativeQuery(
"""
select count(distinct k.project.id, k.name, k.namespace, t.language) from Translation t
join t.key k
join k.project p on p.deletedAt is null
join t.language l on l.deletedAt is null
where p.organizationOwner.id = :organizationId and t.text is not null and t.text <> ''
select count(*) from (
select distinct k.project_id, k.name, k.namespace_id, t.language_id
from translation t
join key k on k.id = t.key_id
where k.project_id in (
select p.id from project p
where p.organization_owner_id = :organizationId
and p.deleted_at is null
)
and exists (
select 1 from language l
where l.id = t.language_id
and l.deleted_at is null
)
and t.text is not null
and t.text <> ''
) sub
""".trimIndent(),
).setParameter("organizationId", organizationId)
.singleResult as Long
.singleResult
.let { (it as Number).toLong() }
}

fun getKeyCount(organizationId: Long): Long {
return entityManager
.createQuery(
"""
select count(distinct k.project.id, k.name, k.namespace) from Key k
join k.project p on p.deletedAt is null
where p.organizationOwner.id = :organizationId
""".trimIndent(),
).setParameter("organizationId", organizationId)
.singleResult as Long
return (
entityManager
.createNativeQuery(
"""
select count(*) from (
select distinct k.project_id, k.name, k.namespace_id
from key k
join project p on p.id = k.project_id and p.deleted_at is null
where p.organization_owner_id = :organizationId
) sub
""".trimIndent(),
).setParameter("organizationId", organizationId)
.singleResult as Number
).toLong()
}
}
10 changes: 10 additions & 0 deletions backend/data/src/main/resources/db/changelog/schema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5078,4 +5078,14 @@
</addColumn>
</rollback>
</changeSet>
<changeSet author="danielkrizan" id="1771846650000-1" runInTransaction="false">
<sql>
create index concurrently if not exists idx_key_project_name_namespace
on public.key (project_id, name, namespace_id);
</sql>
<sql>analyze public.key;</sql>
<rollback>
<sql>drop index concurrently if exists idx_key_project_name_namespace;</sql>
</rollback>
</changeSet>
</databaseChangeLog>