hey guys,

just to weigh in here real quick:

On Sun, 2007-05-20 at 19:29 +0100, Matt Brown wrote:
> My impression is that it should be a separate backend so that an
> administrator can choose between using sqlite or sqlite3 for their
> database. A separate option could then be added to allow upgrades
> between sqlite and sqlite3 if desired.

yeah, i think it should be treated support-wise as an entirely seperate
format...

> I don't think that automatically upgrading databases to sqlite3 if it
> is available is a good idea, as it becomes hard to ensure that the
> package is depending on correct sqlite3 bindings for php, python,
> ruby, etc rather than plain old sqlite bindings.

...and this is exactly why.  i think most apps that use sqlite are
linked against one of the sqlite libraries, and they dodn't have the
option of choosing one or the other.  of course, a sqlite0 linked app
might later be rebuilt to use sqlite3, in which case having an
upgrade/conversion path in place would be really wise.  i haven't used
sqlite enough to know what the best way to handle this is.

my guess would be that if/when such a situation arose, we'd need
something like "dbc_sqlite3_upgrade=version" used in in a manner similar
to the database upgrade detection.  actually, maintainers could already
use that hook to do it manually i suppose, though it'd be nice to
automate as much as possible when we can.

> What I was trying to say originally is that regardless of how sqlite3
> is handled my hope is that it doesn't require too much duplication of
> dbconfig-common code. Even if it is functionally a completely separate
> backend to sqlite it should still be able to share most of the exist
> sqlite code.

my feelings exactly.  if you need to copy/paste a bunch of code to get a
proof of concept working that's fine... but for a final version i'd like
to see as little duplicated code as possible.  if the CLI is the same in
both versions, it's probably sufficient to copy most of the
internal/sqlite functions to a new internal/sqlite-common file and just
define $path_to_sqlite in the internal/sqlite{3}? files.


        sean

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to