Code review comment for lp:~mwhudson/launchpad/recipe-db-schema

Revision history for this message
Stuart Bishop (stub) wrote :

I missed some indexes and one of the constraints is wrong.

CREATE INDEX sourcepackagerecipebuildupload__archive__idx
ON SourcepackageRecipeBuildUpload(archive);

CREATE INDEX sourcepackagerecipebuildupload__upload_log__idx
ON SourcepackageRecipeBuildUpload(upload_log) WHERE upload_log IS NOT NULL;

CREATE INDEX sourcepackagerelease__sourcepackage_recipe_build__idx
ON SourcepackageRelease(sourcepackage_recipe_build);

Should BuildSourcepackageFromRecipe.job be UNIQUE? If so:

ALTER TABLE BuildSourcepackageFromRecipe ADD CONSTRAINT
buildsourcepackagefromrecipe__job__key UNIQUE (job);

Otherwise:

CREATE INDEX buildsourcepackagefromrecipe__job__idx
ON BuildSourcepackageFromRecipe(job);

One of the constraints is wrong (NULL != NULL in SQL 3-value boolean). Drop:

ALTER TABLE SourcePackageRecipeData ADD CONSTRAINT
sourcepackagerecipedata__sourcepackage_recipe__sourcepackage_recipe_build__key
UNIQUE (sourcepackage_recipe, sourcepackage_recipe_build);

Replace with:

CREATE UNIQUE UNDEX sourcepackagerecipedata__sourcepackage_recipe__key
ON SourcepackageRecipeData(sourcepackage_recipe)
WHERE sourcepackage_recipe IS NOT NULL;
CREATE UNIQUE INDEX sourcepackagerecipedata__sourcepackage_recipe_build__key
ON SourcepackageRecipeData(sourcepackage_recipe_build)
WHERE sourcepackage_recipe_build IS NOT NULL;

« Back to merge proposal