database tables for VuXML

Jacques A. Vidrine nectar at
Sun Aug 22 14:33:25 PDT 2004

On Sun, Aug 22, 2004 at 10:53:26PM +0200, Oliver Eikemeier wrote:
> Jacques A. Vidrine wrote:
> >The `ranges' table perhaps looks erm interesting.  In this case,
> >I encoded each package version number into four 32-bit integers.
> >This allowed one to lookup an affected package completely in SQL.
> >However, the encoding I used may now be incorrect in some ways, since
> >pkg_install et al were recently changed to treat version numbers
> >differently.
> I can just donate some code that converts version numbers into arbitrary
> precision floting point numbers between zero and one.

Sure, that's great if it covers all cases!  Floating point is limited
to something like 64 bits, and I found version numbers that required
almost 96 bits in the encoding I used (which I believe to be pretty

> An alternate (and
> maybe easier to handle) form are hex strings which can simply compared
> with strcmp.

Definitely easier to handle (assuming everything is padded correctly).
I found using integer comparisons was quite a bit faster, but this
could be a micro-optimization.  Heck, I'm not convinced that the whole
exercise of encoding version strings is not a micro-optimization :-)
but it is fun and interesting.

> >>    description     text                  not null,
> FWIIW, I would prefer to have a null description that is replaced by
> some dummy text when rendering.
> >>    date_discovery  date                          ,
> That same here: don't assume a valid date (or map non-existing dates to
> 1970-1-1). The reason is that I want to have a form of `quick' entries,
> which are not fully reviewed.

The current version of VuXML does not allow these to be null, and I it
is probably good to reflect those constraints in the database.

> >I think this is also easier to
> >modify if we get new children of <package>, e.g. the <category> and
> ><architecture> tags that are currently in the VuXML pre-1.2 DTD.
> Ehm, is the DTD somewhere available form review? And how about the
> csh-style braces / <alternate><optional> tags suggested in
> <>
> ?

The <category> is directly from the previous thread here, while
<architecture> was recently added due to a conversation from last week
that I thought was here ... but I don't see it in the archives, so I'm
clearly mistaken about that.

Jacques Vidrine / nectar at / jvidrine at / nectar at

More information about the freebsd-ports mailing list