[pacman-dev] Hypotetic pacman's db structure (SQL)

Andrew Fyfe andrew at neptune-one.net
Fri Nov 9 13:56:21 EST 2007


JJDaNiMoTh wrote:
> Hello to all.
> 
> I'm writing an example databe structure for pacman db ( may be useful when someone decide to use SQLite as backend, and not simple text file). [1]
> 
> Tell me your impression, if something can be made, revisioned or deleted.
> Views isn't complete, because I need some data stored in the db to test it; and, of course, I'm writing a simple script that parse all packages information stored under /var/lib/pacman to this db schemas ( if anyone wants help, it's welcome :D )
> 
> Thanks
> 
> [1] http://rafb.net/p/XxK62l68.html (Version 0.01)
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> pacman-dev mailing list
> pacman-dev at archlinux.org
> http://archlinux.org/mailman/listinfo/pacman-dev

What's a text data type in SQLite? char or varchar? The text field sizes should match the current 
database schema[1].

I would put name.repository in a separate table (like group).

description.id_{replaces,conflicts,provides} only allows for a one-to-one relationship, I can think 
of several packages (e.g. kernel26) that replace/conflict/provide multiple packages. I would replace 
those 3 fields with a table similar to depends, with the fields id, type, id_name, id_dep. type 
would be an integer representing the type of dependence e.g. 0 = replace, 1 = conflict, 2 = provide.

I would combine the name and description tables. I don't think splitting them provides much benefit, 
it only adds more complexity to the SQL statements. (I've never used SQLite before so there could be 
benefits I'm unaware of)

What do depends.{major,same} mean?

[1] 
http://projects.archlinux.org/git/?p=pacman.git;a=blob;f=lib/libalpm/package.h;h=daaeb3604caf2766d7566faecfa1e4686b9659c0;hb=HEAD#l38


Andrew




More information about the pacman-dev mailing list