X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=db.sql;h=967cdb395390a8474aa37babf0295db76ddd630f;hb=f2f54bb7f19a00b8220ad130ff7f2383bae17299;hp=aadd91df9e24403814219cf3096c78d239bc141b;hpb=106b25a0eabbeb2a06d20c245c082202b3cb1a4e;p=zpackage diff --git a/db.sql b/db.sql index aadd91d..967cdb3 100644 --- a/db.sql +++ b/db.sql @@ -288,6 +288,27 @@ create table elfneeded ( without rowid ; +create view package_libraries as +select distinct PF.pkgid, EL.soname +from packagefiles_pkgid PF join elflibraries EL on PF.hash = EL.file +; + +create view package_libraries_needed as +with pkglibs as ( + select distinct EN.needed as soname, PF.pkgid + from elfneeded EN + join packagefiles_pkgid PF on PF.hash = EN.file + ), + pkgprovides as ( + select distinct EL.soname, PF.pkgid + from elflibraries EL + join packagefiles_pkgid PF on PF.hash = EL.file + ) + select distinct PL.pkgid,PL.soname, PP.soname is not null as selfsatisfied + from pkglibs PL + left join pkgprovides PP on PL.pkgid = PP.pkgid and PL.soname = PP.soname +; + -- package scripts: table of package, stage, file create table scripts ( package text, @@ -573,4 +594,18 @@ union select 'preserve' as op, *, null, null, null from preserve ; +/* + * tables for repository info, essentially materalized views + */ +create table repository_libs ( + pkgid text, + soname text +); + +create table repository_libsneeded ( + pkgid text, + soname text, + selfsat integer +); + commit;