DPS Initial Ideas

Peter Jeremy peterjeremy at optushome.com.au
Sat May 12 13:11:27 UTC 2007


On 2007-May-12 11:09:35 +0200, Michel Talon <talon at lpthe.jussieu.fr> wrote:
>- first i don't suppose sqlite3 is busted, since i suppose it is in the
>  base system and it works by definition.

It can happen that base system utilities become unusable for various
reasons:  Maybe an installworld went wrong, maybe someone accidently
deleted a shared library, maybe the disk developed an inconvenient
bad sector.  If sqlite3 is being used solely for ports management
then it may be a reasonable assumption that sqlite3 is always working
but if (as has been suggested) SQLite is used for base system config
files then it is essential that those files be repairable.

> Your hypothesis is alike, what
>do i do to edit my config files if vi and ed are busted?

Use emacs :-)

Seriously, you can probably get away with sh builtins for most purposes:
while read line
do
  case "$line" in
    foo*) echo bar ;;
    *) echo "$line" ;;
  esac
done < file > file.tmp
mv file.tmp file

> Moreover if
>sqlite3 gets really busted i can import a copy and hope it works,

I agree that sqlite3 is good in this respect.  "Import" implies that
you are able to get the system to a point where it can communicate
externally without needing whatever tool is broken.

>- second, if i am sql allergic, it takes one command to export the table
>  to a straight file,

This is only usable if the schema is designed so that the tables are
reasonably independent.  It's certainly possible to design something
that could not be usefully exported table-by-table and edited.

>- is the cost of including sqlite in the base system so high that  
>the above benefits are insufficient? Personnally i don't know, but i
>think some discussion is at least in order.

I agree that this topic is worth discussing.  There is a very high bar
for including new utilities in the base system because every time a
new utility is added, the maintenance effort goes up.  So far I
haven't seen anything that would make me say "SQLite should be imported".

>- and finally to answer one of Bill's critiques, why sqlite rather than 
>a Berkeley database? Precisely because sqlite offer a lot of facilities 
>that Berkeley db doesn't offer, such as export and import to and from 
>csv files,

This is a function of sqlite3(1) rather than the SQLite database itself.
It wouldn't be that difficult to write a tool to convert a BDB into
a flat file of key,value pairs.

> auto documentation of the table contents,

This is a big plus for SQL.

> while it requires
>in fact programming and knowledge of the api of the database to hand
>edit the Berkeley db.

Very trivial effort - if we had a need for it, someone could write the
necessary few dozen lines and commit it.  The downside is that since
BDB isn't self documenting, a flat file may not be any use.

-- 
Peter Jeremy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20070512/540e0ea8/attachment.pgp


More information about the freebsd-hackers mailing list