SQLite (was: RE: [GENERAL] Reliability of Windows versions 8.3 or 8.4)

2010-05-12 Thread Rob Richardson
I use both PostgreSQL and SQLite in my job.  I have mixed feelings about
SQLite.  If you play by its rules, it works very well, but I think you
have to understand its rules well.  If you do not set up your indexes
correctly and do not use transactions correctly, performance can be
horrible, but if you do, its performance is excellent.  For some reason
I doubt I will ever understand, its developer thinks that it is a good
thing not to require a column to hold any particular type of
information.  One record can have an integer in a field, while the next
record in the table can have a string in the same field.  I would much
rather have my database enforce type consistency, and tell me when I'm
screwing up.  There is no fixed date format.  I suddenly found that one
program that used SQLite began writing dates as human-readable text
strings for no reason I could understand, after it had been writing them
as Julian dates (a floating-point number representing the number of days
since a given date) happily for years.  I had to rewrite the
corresponding program that reads the data to be able to handle either
strings or Julian dates correctly and transparently, which was not easy.
 
But it is nice to have SQLite available for use in programs that will be
installed at multiple customer sites where we can't be sure if the main
database will be PostgreSQL, SQL Server, Oracle, or something else.
 
RobR



Re: SQLite (was: RE: [GENERAL] Reliability of Windows versions 8.3 or 8.4)

2010-05-12 Thread Joshua D. Drake
On Wed, 2010-05-12 at 13:45 -0400, Rob Richardson wrote:
 I use both PostgreSQL and SQLite in my job.  I have mixed feelings
 about SQLite.  If you play by its rules, it works very well, but I
 think you have to understand its rules well.  If you do not set up
 your indexes correctly and do not use transactions correctly,
 performance can be horrible, but if you do, its performance is
 excellent.  For some reason I doubt I will ever understand, its
 developer thinks that it is a good thing not to require a column to
 hold any particular type of information.  One record can have an
 integer in a field, while the next record in the table can have a
 string in the same field.  I would much rather have my database
 enforce type consistency, and tell me when I'm screwing up.  There is
 no fixed date format.  I suddenly found that one program that used
 SQLite began writing dates as human-readable text strings for no
 reason I could understand, after it had been writing them as Julian
 dates (a floating-point number representing the number of days since a
 given date) happily for years.  I had to rewrite the corresponding
 program that reads the data to be able to handle either strings or
 Julian dates correctly and transparently, which was not easy.
  
 But it is nice to have SQLite available for use in programs that will
 be installed at multiple customer sites where we can't be sure if the
 main database will be PostgreSQL, SQL Server, Oracle, or something
 else.
  

I think it is also important to remember to use the right tool for each
job. SQLite is used for RPM as well as bookmarks for firefox. It makes
sense there. PostgreSQL would not.

SQLite is a small, cool, fast, embedded database. 

Joshua D. Drake


 RobR
 


-- 
PostgreSQL.org Major Contributor
Command Prompt, Inc: http://www.commandprompt.com/ - 503.667.4564
Consulting, Training, Support, Custom Development, Engineering



-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general