Compare commits

...
1 Commits
Author SHA1 Message Date
henkej 21c3ab28ec view optimization 2026-10-05 14:52:46 +02:00
4 changed files with 41 additions and 12 deletions

No files matched your search

+1 -2
View File
@@ -4,7 +4,6 @@ buildscript {
mavenCentral() mavenCentral()
maven { url "https://repo.maven.apache.org/maven2" } maven { url "https://repo.maven.apache.org/maven2" }
maven { url "https://plugins.gradle.org/m2/" } maven { url "https://plugins.gradle.org/m2/" }
jcenter()
} }
dependencies { dependencies {
classpath 'org.jooq:jooq-codegen:3.19.15' classpath 'org.jooq:jooq-codegen:3.19.15'
@@ -23,7 +22,7 @@ apply plugin: 'maven-publish'
apply plugin: 'eclipse' apply plugin: 'eclipse'
group = 'de.jottyfan' group = 'de.jottyfan'
version = '20260114' version = '20261005'
def artifactId = 'timetrackjooq' def artifactId = 'timetrackjooq'
def versionNumber = version def versionNumber = version
+1 -1
View File
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
+38 -8
View File
@@ -1,4 +1,4 @@
create schema done; /vcreate schema done;
create table done.t_billing ( create table done.t_billing (
lastchange timestamp without time zone default now(), lastchange timestamp without time zone default now(),
@@ -73,13 +73,30 @@ create table done.t_freetime (
unique(day, fk_login) unique(day, fk_login)
); );
create view done.v_favorite as create or replace view done.v_favorite as
select f.pk_favorite, f.fk_login, p.name as project, m.name as module, j.name as job, b.name as billing with x(fk_login, fk_project, fk_module, fk_job, fk_billing, amount) as (
from done.t_favorite f select fk_login, fk_project, fk_module, fk_job, fk_billing, count(*)
left join done.t_project p on p.pk = f.fk_project from done.t_done
left join done.t_module m on m.pk = f.fk_module group by fk_login, fk_project, fk_module, fk_job, fk_billing
left join done.t_job j on j.pk = f.fk_job )
left join done.t_billing b on b.pk = f.fk_billing; select f.pk_favorite,
f.fk_login,
p.name as project,
m.name as module,
j.name as job,
b.name as billing,
coalesce(x.amount, 0) as usage_count
from done.t_favorite f
left join done.t_project p on p.pk = f.fk_project
left join done.t_module m on m.pk = f.fk_module
left join done.t_job j on j.pk = f.fk_job
left join done.t_billing b on b.pk = f.fk_billing
left join x
on x.fk_login = f.fk_login
and x.fk_project is not distinct from f.fk_project
and x.fk_module is not distinct from f.fk_module
and x.fk_job is not distinct from f.fk_job
and x.fk_billing is not distinct from f.fk_billing;
create view done.v_billing as create view done.v_billing as
with x(total) as ( with x(total) as (
@@ -304,6 +321,18 @@ with x(dayworktime, day, fk_login, required, starttime, endtime) as (
from x from x
order by day desc, fk_login; order by day desc, fk_login;
create view done.v_favorite_count as
select f.pk_favorite,
f.fk_login,
count(d.pk) as usage_count
from done.t_favorite f
left join done.t_done d on d.fk_login = f.fk_login
and d.fk_project is not distinct from f.fk_project
and d.fk_module is not distinct from f.fk_module
and d.fk_job is not distinct from f.fk_job
and d.fk_billing is not distinct from f.fk_billing
group by f.pk_favorite, f.fk_login;
copy done.t_billing (lastchange, pk, name, shortcut, csskey) from stdin; copy done.t_billing (lastchange, pk, name, shortcut, csskey) from stdin;
2021-03-05 19:37:07.12832 1 WP2 (eucs) - Opal/Mica/..., REST WP2 WP2 2021-03-05 19:37:07.12832 1 WP2 (eucs) - Opal/Mica/..., REST WP2 WP2
2021-03-05 19:37:07.12832 2 WP4 (eucs) - Square² WP4 WP4 2021-03-05 19:37:07.12832 2 WP4 (eucs) - Square² WP4 WP4
@@ -414,3 +443,4 @@ grant select on done.v_worktime to timetrack;
grant select on done.v_daylimit to timetrack; grant select on done.v_daylimit to timetrack;
grant select on done.v_current_overtime to timetrack; grant select on done.v_current_overtime to timetrack;
grant select on done.v_day to timetrack; grant select on done.v_day to timetrack;
grant select on done.v_favorite_count to timetrack;
+1 -1
View File
@@ -1,5 +1,5 @@
create or replace view public.v_version as create or replace view public.v_version as
select 20260114 as version; select 20261005 as version;
grant usage on schema public to timetrack; grant usage on schema public to timetrack;