Merge pull request #856 from immae/fix_check_jobsets
Fix check in jobsets
This commit is contained in:
commit
d8a5892795
|
@ -84,9 +84,14 @@ create table Jobsets (
|
||||||
startTime integer, -- if jobset is currently running
|
startTime integer, -- if jobset is currently running
|
||||||
type integer not null default 0, -- 0 == legacy, 1 == flake
|
type integer not null default 0, -- 0 == legacy, 1 == flake
|
||||||
flake text,
|
flake text,
|
||||||
check (schedulingShares > 0),
|
constraint jobsets_schedulingshares_nonzero_check check (schedulingShares > 0),
|
||||||
check ((type = 0) = (nixExprInput is not null and nixExprPath is not null)),
|
constraint jobsets_type_known_check check (type = 0 or type = 1),
|
||||||
check ((type = 1) = (flake is not null)),
|
-- If the type is 0, then nixExprInput and nixExprPath should be non-null and other type-specific fields should be null
|
||||||
|
-- Otherwise the check passes
|
||||||
|
constraint jobsets_legacy_paths_check check ((type = 0) = (nixExprInput is not null and nixExprPath is not null and flake is null)),
|
||||||
|
-- If the type is 1, then flake should be non-null and other type-specific fields should be null
|
||||||
|
-- Otherwise the check passes
|
||||||
|
constraint jobsets_flake_paths_check check ((type = 1) = (nixExprInput is null and nixExprPath is null and flake is not null)),
|
||||||
primary key (project, name),
|
primary key (project, name),
|
||||||
foreign key (project) references Projects(name) on delete cascade on update cascade,
|
foreign key (project) references Projects(name) on delete cascade on update cascade,
|
||||||
constraint Jobsets_id_unique UNIQUE(id)
|
constraint Jobsets_id_unique UNIQUE(id)
|
||||||
|
|
9
src/sql/upgrade-74.sql
Normal file
9
src/sql/upgrade-74.sql
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
alter table Jobsets add constraint jobsets_type_known_check check (type = 0 or type = 1);
|
||||||
|
alter table Jobsets add constraint jobsets_legacy_paths_check check ((type = 0) = (nixExprInput is not null and nixExprPath is not null and flake is null));
|
||||||
|
alter table Jobsets add constraint jobsets_flake_paths_check check ((type = 1) = (nixExprInput is null and nixExprPath is null and flake is not null));
|
||||||
|
alter table Jobsets add constraint jobsets_schedulingshares_nonzero_check check (schedulingShares > 0);
|
||||||
|
|
||||||
|
alter table Jobsets drop constraint if exists jobsets_schedulingshares_check;
|
||||||
|
alter table Jobsets drop constraint if exists jobsets_check;
|
||||||
|
alter table Jobsets drop constraint if exists jobsets_check1;
|
||||||
|
alter table Jobsets drop constraint if exists jobsets_check2;
|
Loading…
Reference in a new issue