Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Aug 2004 16:33:04 -0500
From:      "Jacques A. Vidrine" <nectar@FreeBSD.org>
To:        Oliver Eikemeier <eikemeier@fillmore-labs.com>
Cc:        Dan Langille <dan@langille.org>
Subject:   Re: database tables for VuXML
Message-ID:  <20040822213304.GF17478@madman.celabo.org>
In-Reply-To: <50BEFF1D-F47D-11D8-8CAA-00039312D914@fillmore-labs.com>
References:  <20040822192915.GA17478@madman.celabo.org> <50BEFF1D-F47D-11D8-8CAA-00039312D914@fillmore-labs.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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
tight).

> 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
> <http://docs.freebsd.org/cgi/mid.cgi?3AF421B2-F082-11D8-924A-00039312D914>;
> ?

http://www.vuxml.org/dtd/vuxml-1/vuxml-pre12.dtd
http://www.vuxml.org/dtd/vuxml-1/vuxml-model-pre12.mod

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.

Cheers,
-- 
Jacques Vidrine / nectar@celabo.org / jvidrine@verio.net / nectar@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040822213304.GF17478>