Multiple database support

David Miller justdave at
Mon Sep 1 01:44:46 UTC 2003

On 8/30/2003 9:02 PM +0200, Jeroen Ruigrok/asmodai wrote:

> for the last few days I've worked hard on getting the PostgreSQL RDBMS
> supported.

Did you start over, or did you update what RedHat already did (from 2.17.1)
up to the tip?

> The current plan I have in my mind:
> Make sure everything is done with ANSI SQL in mind (e.g. use ' instead
> of " where ANSI SQL expects it or -- instead of #).
> The script needs to have the schema definition ripped out,
> it is too MySQL specific to be of any use in that script.

Yep, this is pretty much the plan.

> This needs to move to a bugzilla.mysql file.  Here we can easily place
> bugzilla.pgsql, bugzilla.sybase, and next to.  Maybe a
> schema subdirectory to gather them under.  You can then use the command
> line tool supplied with your database system to read in this schema
> definition file.

I was toying with the idea of a central schema structure so we could make
sure they were all alike...

It would be cool to describe each table as a hash in perl code, and provide
the column names, abstract types, and even some DB-specific data (with a
hash key prefixed with the name of the DB it's for).  The database-specific
code for each database could then read from that hash, do what it needs to
for it to work on that Database, and go do it.

It may even be possible to describe necessary changes that way, too, but
that might be more difficult (for the seamless upgrade stuff).

> The worst part comes in making a correct abstraction layer towards the
> databases.  This is essentially hairy since with PostgreSQL some queries
> can be optimized in a certain way whilst MySQL might require some
> different uses.
> IIRC the Sybase guy(s) had a nice idea for that, need to check again.

Yeah, I'm still intending to use something like that here.  It seemed to
work very well at keeping the Sybase port running on both Sybase and MySQL

> So I guess I need to ask you Dave, what's allowed for 2.18 and how far
> off is it?

What's allowed depends on the ideas people have. :)  I attempted to post
enough details of the abstraction system on the Sybase bug that someone
with time could run with it.

I heard a rumor that Dave Lawrence at RedHat was going to get paid time to
work on completing the Postgres port they've already done sometime soon, so
it can be merged with the trunk.  I don't know if that's true or not though.

Time frame for 2.18?  As stated many times before, "whenever it's done."
The milestone goals on the website were recently updated.  When the stuff
in the "have to have" portion of that list gets completed, we release.
Dave Miller      Project Leader, Bugzilla Bug Tracking System   

More information about the developers mailing list