X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=db.sql;h=2c03a4a43d1827e3cce1b159b2522ad587485fe5;hb=c6ca9573e07d6547883d37ecf86f9deaffd6bcf5;hp=f44e52646a52c8ca660328c76e2f8dc77ca18a85;hpb=ea6c2b97f6088aa31dc5ebcebd59721fe5a62afb;p=zpackage diff --git a/db.sql b/db.sql index f44e526..2c03a4a 100644 --- a/db.sql +++ b/db.sql @@ -28,6 +28,7 @@ create table packages ( description text, architecture text, url text, + status text, licenses text, -- hash of actual license? need table for more than one? packager text, build_time integer default (strftime('%s', 'now')), @@ -38,6 +39,24 @@ create table packages ( without rowid ; +-- handle package status history with a logging trigger. +create trigger logpkgstatus after update of status on packages +begin insert into zpmlog (action,target,info) + values (printf('status change %s %s', OLD.status, NEW.status), + printf('%s-%s-%s', NEW.package, NEW.version, NEW.release), + NULL); END; + +create table packagetags ( + -- package id triple + package text, + version text, + release integer, + tag text, + set_time integer default (strftime('%s', 'now')), + primary key (package,version,release,tag), + foreign key (package,version,release) references packages (package,version,release) on delete cascade +); + -- packagefile hash is columns as text, joined with null bytes, then -- sha256 sum of that -- package checksum is package columns as text, joined with null bytes, @@ -93,10 +112,22 @@ without rowid ; create table elfinfo ( - file text, -- hash of blob + file text primary key, -- hash of blob elftype text, foreign key (file) references files on delete cascade -); +) +without rowid +; + +create table elfdeps ( + file text, + soname text, + dependency text, + primary key (file, soname, dependency), + foreign key (file) references files on delete cascade +) +without rowid +; -- TODO just elf information? -- and just hash, not package? @@ -167,7 +198,8 @@ create table packagegroups ( -- sub-invocations, probably an environment variable set if not -- already set by zpm, probably a uuid or a timestamp create table zpmlog ( - ts integer, -- timestamp of action, may need sub-second + ts text default (strftime('%Y-%m-%d %H:%M:%f', 'now')), + -- timestamp of action action text, target text, -- packagename, repo name, etc info text -- human readable