Re: Is it just me, or is Sqlite3 goofy?

2006-09-22 Thread Scott David Daniels
Fredrik Lundh wrote:
... dynamic typing != random typing.

So true.  To get a really good random typing going, you need a
cryptographically strong random number generator to feed the
application of type constructors to values during the execution
of a program.  Perhaps the best way to do this is to modify the
the interpreter.  We could call the new language Python?!, or
actually use an interobang if Unicode has such a character.

--Scott David Daniels
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-14 Thread Magnus Lycka
Paul Boddie wrote:
 Well, if the client is free not to bother signalling anything about
 erroneous value types, one has to wonder why there's so much of a
 specification.

If you read it, I think you'll notice that the committee has
managed to produce a lot of text without spending too much
ink on error handling. I'm not completely up to date with
the latest standards, but last time I looked, a lot of things
that are essential parts of all serious implementations were
missing from the standards.

I'm pretty certain it would overwhelm the SQL standards committee
if they had to specify how error conditions are handled.

It would certainly be useful though. E.g. is PostgreSQL SQL
compliant in forcing a rollback as soon as an operation
fails. E.g. in Oracle, you can have a transaction with a
loop where you try to insert values, and fall back to updating
instead if you get a duplicate key on insert error. In PostgreSQL
you need to set a savepoint before the the insert and rollback
to that. Does the standard say whether this is kosher? I think
not.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Hendrik van Rooyen
 Tim Chase [EMAIL PROTECTED] wrote:

To: Steve Holden [EMAIL PROTECTED]


  But honestly, boss, I didn't write this code!  It was my
  evil alter-ego that puts VARCHAR values containing Gilbert 
  Sullivan lyrics into the Amount_Due CURRENCY fields!
  
  Hence the phrase Going for a song?
 
 I am the very model of a modern major database,
 For gigabytes of information gathered out in userspace.
 For banking applications to a website crackers will deface,
 You access me from console or spiffy user interface.
 
 My multi-threaded architecture offers you concurrency,
 And loads of RAM for caching things reduces query latency.
 The data is correctly typed, a fact that I will guarantee,
 Each datum has a data type, it's specified explicitly.
 
 is-it-friday-yet'ly yers,
 
 -tkc

I love this group - thanks for that - it made my day ...

- Hendrik

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Hendrik van Rooyen
From: Steve Holden [EMAIL PROTECTED] wrote:

snip
 These kids wi' their Oracle databases didn't know they were born. I can
 remember 'avin' to optimise programs by making sure that the next
 instruction were comin' under the heads of t' drum just as the last
 instruction were finishing.

 But yer tell these young folk nowadays and they just don't believe yer.
snip

Too true - one of my contemporaries made NCR CRAM units sing - one card
dropping, one on the drum, and one flying back up into the stack

- Hendrik

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Magnus Lycka
First of all, anyone with extensive experience in database systems
understand that validating and cleaning input is an unavoidable task.

Static typing can help identify some of the problems, but far from
all, and there is often data processing done before the data enters
the database, so it's often too late to do the cleaning at that time
anyway.

Once you are dealing with data within your system, it's a bug in the
software if data doesn't fulfill the intended constraints. Such
problems should be identified by unit tests.

Mike Owens wrote:
 Next, as far as transferring you data, you most likely have to resort
 to some delimited format, or INSERT statements, which is no different
 than any other database.

You can always write a Python script which reads from one
database, cleans up the data and inserts into another, one
row at a time. This isn't just a porting activity. I've written
a Python app that moved data from a DB2 mainframe production
database to DB2 testing database on Windows. It moved data
from a hierarchy of tables, starting in a given table, and
reading foreign keys from system tables (very slow in mainframe
DB2!) to figure out what data to bring from which tables.

Since the system used abstract keys and moved data to a populated
database, it had to generate new keys and adjust the foreign keys
in the dependent tables. It also had to work around bugs and
quirks in Windows NT, DB2 and ADODBAPI etc. These things are
relatively easy, but it's never trivial. There are always a lot
of details to deal with.

For big volumes, you typically need to use some kind of bulk
loading facility. Inserts are generally much too slow. (I'm
talking about general data porting woes here--in the case of
SQLite it's not likely that you have many million rows of data.)

Efficient bulk loading means that you have different data format
for different database systems, and also that you need to validate
your data before insertion, so the problems directly related to
SQLite doesn't seem very odd.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Magnus Lycka
[EMAIL PROTECTED] wrote:
 What was Richard Hipp's justification for slandering the
 writers of the SQL Language Specification?

First of all, if you read the text you quoted and understand
English, you should be able to see that the author of the
text is clearly expressing an opinion, not stating a fact.

Calling this lies or slander is just absurd.

the authors of SQLite feel very strongly that this is a
feature

The authors argue that static typing is a bug in the SQL
specification

If you think that these sentences imply some kind objective
truth that could be claimed to be a lie, then you are confused
about English or logic or both.

  Is there anything more rude than describling the SQL Language
  Specification as a bug that needs to be fixed?

Using waterheadretard in a posting subject perhaps?

Seriously, this is the first time I ever heard anyone
being religious about the SQL standard in that way.

Also, while I actually find your statement about SQL being
a bug rather funny and fitting, it's not what Hipp is saying.
He's talking about static typing, which is really only a
detail in SQL and has no bearing on the relational theories.
Equality and inequality can certainly be defined in a strict
way regardless on whether it is columns or values that have a
distinct type. The use of NULL as a permitted value for all
types mean that SQL has already relaxed the traditional type
mechanism a bit. Python, Tcl, SQLite etc goes one step further.

To cleanse you from this affliction, I suggest that you
read Date and Darwen's A Guide to the SQL Standard.
After all, these guys are seriously involved in the SQL
standard development, and they are certainly not very
religious about it. Among their claims you can find these
pearls: SQL in particular is very far from ideal as a
relational language, although there are well-established
principles for the design of formal languages, there is
little evidence that SQL was ever designed in accordance
with any such principles, Standard SQL especially is
additionally deficient in a number of respects.

Many people have claimed through the years that SQL is
broken, and that Quel was a much better language, and the
only reason that SQL killed Quel and not vice versa was the
IBM backing. Richard Hipp is hardly being controversial
in this respect...
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Magnus Lycka
Paul Boddie wrote:
 To be fair, that text originates in section 12.3, referring to input
 parameters to procedures. Meanwhile, the following text (subclause
 13.8, insert statement) appears to be more pertinent:
 
 If the data type of the target identified by the i-th column name is
 an exact numeric type, then the data type of the i-th item of the
 insert statement shall be an exact numeric type.

And SQLite behaves as expected if you provide a numeric value
to a numeric column, right? In other words, it complies to that
clause.

Does the spec state how the database engine should behave if the
client breaks the requirements for insert? I guess that this is
implementation dependent.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-13 Thread Paul Boddie
Magnus Lycka wrote:
 Paul Boddie wrote:
  To be fair, that text originates in section 12.3, referring to input
  parameters to procedures. Meanwhile, the following text (subclause
  13.8, insert statement) appears to be more pertinent:
 
  If the data type of the target identified by the i-th column name is
  an exact numeric type, then the data type of the i-th item of the
  insert statement shall be an exact numeric type.

 And SQLite behaves as expected if you provide a numeric value
 to a numeric column, right? In other words, it complies to that
 clause.

My 30 seconds' worth of consideration suggests that you have to
consider the matter the other way round: if the data type of some
column is an exact numeric type, then you should be providing a value
of such a type, not a string, for example.

 Does the spec state how the database engine should behave if the
 client breaks the requirements for insert? I guess that this is
 implementation dependent.

Well, if the client is free not to bother signalling anything about
erroneous value types, one has to wonder why there's so much of a
specification.

Paul

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Gabriel Genellina wrote:
 At Tuesday 5/9/2006 16:23, [EMAIL PROTECTED] wrote:

 I would be surprised if they had never used ANY database. A little
 thing like dynamic field typing will simply make it impossible to
 migrate your Sqlite data to a *real* database.

 Why not? Because it breaks the relational model rules?

That's part of it.

 That model
 certainly was great 30 years ago, but now things are different.

Different only in lite databases.

 (In
 fact, you didn't menction the word relational, but I presume you
 were thinking of that).
 Even what you call *real* databases have a lot of incompatibilities
 among them (e.g. ORACLE does not provide an autoincrement type, but
 has sequences, and so on...).

But it was stated in the sqlite docs that ALL SQL databases
use static types implying that sqlite will be incompatible
with any heavy database should the need arise to migrate
upwards. The issue is not that there will be compatibilty
problems with any data migration but that the truth is exactly
opposite of what's claimed in Section 13.13.

I'm not saying sqlite can't be used, what I'm asking for
is that the documentation lay the facts out and I'll decide
whether I can make this work in my application. Lying about
it makes you sound like Microsoft.

 Of course you could restrict yourself
 to, by example, SQL92 entry level and be a lot more compatible.
 But if I'm using a nice OO language like Python which lets me bind
 *any* object to *any* name, why should be wrong to bind *any* object
 to *any* database column?

But SQL isn't OO, it's relational. That means JOINing tables
together on a common field. In theory, due to the comparison
hierarchy, it is impossible to do JOINs with dynamic typing
since different types can never be equal. In practice, the type
affinity kluge trys to work around this but can't do anything
if the string doesn't look like an integer when a text field
attempts to JOIN to an interger field.

 Looks a lot more pythonic for me.

If all you have is a hammer, everything looks like a nail.

 Of
 course, a true object database (like ZODB) is better.



 Gabriel Genellina
 Softlab SRL





 __
 Preguntá. Respondé. Descubrí.
 Todo lo que querías saber, y lo que ni imaginabas,
 está en Yahoo! Respuestas (Beta).
 ¡Probalo ya! 
 http://www.yahoo.com.ar/respuestas

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread MonkeeSage
[EMAIL PROTECTED] wrote:
 But it was stated in the sqlite docs that ALL SQL databases
 use static types implying that sqlite will be incompatible
 with any heavy database should the need arise to migrate
 upwards. The issue is not that there will be compatibilty
 problems with any data migration but that the truth is exactly
 opposite of what's claimed in Section 13.13.

 I'm not saying sqlite can't be used, what I'm asking for
 is that the documentation lay the facts out and I'll decide
 whether I can make this work in my application. Lying about
 it makes you sound like Microsoft.

I thought your qualm was with the pysqlite docs, not the sqlite docs
(which apparently do make it plain how the database handles typing)?

Also, as others have mentioned, there are a number of ways to ensure
type safety, as long as you know how the database works (which as I
understand was your original point -- that it should be better
documented how it works in the pysqlite docs; and I am inclined to
agree -- at least a mention with link to the sqlite docs would be
helpful). But given that type safety is not an issue if you use those
ways of ensuring it, then the move to a fuller database _will_ be
relatively easy. If you don't want to change anything in your database
creation/update code ala check constraints, you can always explicitly
validate from python, which can be done programatically (very simple
example -- you could also use regexp patterns to validate; e.g., string
fields not only must be type str, but must not match '^\d+$', c):

rows = [
['1', 'fred', '0051', '/home/fred'],
['2', 'bob', '0054', '/home/bob'],
['3', 'bork', '056', '/home/bork']
]
def validate(row):
  return [int(row[0]), str(row[1]), int(row[2]), str(row[3])]
for i in xrange(len(rows)):
  rows[i] = validate(rows[i]) # - throws an exception on the third row
  # database stuff here...

Regards,
Jordan

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Paul Rubin
Mike Owens [EMAIL PROTECTED] writes:
 No it doesn't. If you don't like SQLite's design decisions, write your
 own embedded relational database, and stop yapping about something you
 didn't lift a finger to create, but are clearly trying to benefit
 from.

That's silly.  The sqlite developers are making all kinds of claims on
their web site, in order to attract users and build mindshare and gain
the benefits thereof.  If the claims aren't valid, it's completely
appropriate for others to call attention to it, whether or not they
feel like doing anything to fix it.

It's just like anything else.  If you think your Congressperson is
misleading the public about something or pursuing a bad policy, you
should speak out about it.  That doesn't mean you need to run for
Congress yourself.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
Mike Owens wrote:

 Crackpot? And now we get to why I took the flamebait -- wonderfully
 constructive comments such as this.
 
 I know SQLite's author. Besides being a nice and clearly very
 intelligent person, he also holds a master's degree in electrical
 engineering from Georgia Tech and a PhD in computer science from Duke
 University. His crackpot software is used by Sun, Apple, Symbian,
 Google, AOL, Philips, DLink, and I don't know how many other
 companies, not to mention countless open source projects such as
 Mozilla, PHP, and now Python.

but is he a member of Mensa?

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
Steve Holden wrote:

 Sure. But if you go back to the start of the thread you'll remember the 
 OP was originally complaining that SQLite was being promoted in the 
 Python docs as SQL compliant. It clearly isn't if its response to the 
 insertion of a data value that conflicts with the declared column type 
 is to store a value whose type is something else.

the standard actually says If the value of any input parameter provided 
by the SQL-agent falls outside the set of allowed values of the data 
type of the parameter /.../ the effect is implementation-defined so 
that's perfectly SQL92 compliant.

in fact, the phrases is implementation-defined and is implementation-
dependent occurs hundreds of times in the SQL92 standard.

it's far from obvious to me that SQL92 would rule out storing everything 
as strings (The physical representation of a value is implementation-
dependent.) and leaving it to the language binding to map things back 
to the host language types in whatever way it wants (Each host language 
has its own data types, which are separate and distinct from SQL data 
types, the above quotation, and so on).

looks like the real problem here is that some people think that 
implementation-defined means works as it did in that other database 
I'm using, and not specified by the implementor for each particular 
SQL-implementation.  that's not how standards work; if something's 
explicitly left undefined, it's not something you can rely on.

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Steve Holden
Paul Rubin wrote:
 Mike Owens [EMAIL PROTECTED] writes:
 
No it doesn't. If you don't like SQLite's design decisions, write your
own embedded relational database, and stop yapping about something you
didn't lift a finger to create, but are clearly trying to benefit
from.
 
 
 That's silly.  The sqlite developers are making all kinds of claims on
 their web site, in order to attract users and build mindshare and gain
 the benefits thereof.  If the claims aren't valid, it's completely
 appropriate for others to call attention to it, whether or not they
 feel like doing anything to fix it.
 
 It's just like anything else.  If you think your Congressperson is
 misleading the public about something or pursuing a bad policy, you
 should speak out about it.  That doesn't mean you need to run for
 Congress yourself.

Though it might improve the country's politics if wanting to be a 
Congressperson was an absolute disqualification from the job.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 11 Sep 2006 21:35:28 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 Mike Owens wrote:
  On 11 Sep 2006 18:23:50 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 
   Can you run your car on diesel fuel?
  
   Why not?
  
   Because your car's specification says to use gasoline?
  
   If your car has been designed to run on diesel, you shouldn't
   be saying it has gasoline engine. Duh.
 
  No but you can still call it a car with an engine, just as SQLite is a
  SQL database, with an SQL engine.

 Seperate the data from the engine and what have you got?
 Data with dynamic typing. Data that can't be migrated to
 a real SQL database because you'll get type mismatches
 when strings are inserted into numeric fields. The type affinity
 kluge won't help there, will it?

Did you even read my original post? Or did you just completely miss the point?

 It's not the job of the System Test Engineer to design things.
 It's his job to find fault with everything. I just happen to be very
 good at finding faults with things.

And apparently not very good at providing any constructive solutions.

 But no one appreciates my finding those faults.

No one appreciates the tone in which you report these alleged faults,
necessarily agrees with the faults that you find, nor elected you
system test engineer of the SQLite project.

  It calls for other things that many databases don't implement or
  altogether violate as well, so what? Show me how both MS SQL's T-SQL
  and Oracle's PL/SQL procedure languages are so standards compliant
  that you can use the same procedure code in both databases. You can't
  -- precisely because they ignore or outright violate parts of the
  standard as well. What's your position on that? Do some Googling and
  you can easily find 18 ways that Oracle's PL/SQL deviates from the
  standard. And T-SQL is plainly nowhere close.

 And how many of those systems use dynamic typing?

And how many conform to the standard?

 Name one where the documentation claims the SQL Language
 Specification is a bug.

Name one that conforms to the standard.

 And a lot of people go to chiropractors. And chiropractors are
 nice intelligent people with degrees. And the therapy provided
 does good.

 Nevertheless, the theory on which it's based is quackery.

To use your specious analogy, it represents another way of doing
things, which you admit yourself works. That's your justification for
calling Richard Hipp a crackpot?

  It's clear. You're just way too smart for SQLite.

 Did you see my solution to Rick Shepard's problem in the
 thread Parsing String, Dictionary Lookups, Writing to
 Database Table?

The point being? -- you can write Python code and feel entitled to
condescending and rude?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Paul Rubin
Mike Owens [EMAIL PROTECTED] writes:
  It's not the job of the System Test Engineer to design things.
  It's his job to find fault with everything. I just happen to be very
  good at finding faults with things.
 
 And apparently not very good at providing any constructive solutions.

As he says, it's not his job.

  But no one appreciates my finding those faults.
 
 No one appreciates the tone in which you report these alleged faults,

Your tone is not so great either.

 necessarily agrees with the faults that you find, nor elected you
 system test engineer of the SQLite project.

It's an open source project, as you like to say.  Everyone is a test
engineer.

   standard as well. What's your position on that? Do some Googling and
   you can easily find 18 ways that Oracle's PL/SQL deviates from the
   standard. And T-SQL is plainly nowhere close.
 
  And how many of those systems use dynamic typing?
 
 And how many conform to the standard?

How many of those deviations are justified in their documentation by
the responsible parties claiming, in effect, that they're smarter than
the standard's designers?

It seems obvious to me that there should, at minimum, be an option to
turn this particular nonstandard behavior on and off.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 11 Sep 2006 23:29:28 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 But it was stated in the sqlite docs that ALL SQL databases
 use static types implying that sqlite will be incompatible
 with any heavy database should the need arise to migrate
 upwards. The issue is not that there will be compatibilty
 problems with any data migration but that the truth is exactly
 opposite of what's claimed in Section 13.13.

Implying? There's a solid word. Migrating data from SQLite to other
databases is no more difficult or easy than migrating data to any
other database. Do you think this is ever trivial? It's as hard or as
easy as you make it. No database can just take any schema and the data
you put in it and just magically convert that schema/data to
flawlessly work in any arbitrary database of your choosing. Some
databases have tools to help with this, but they still are not
perfect.

 I'm not saying sqlite can't be used, what I'm asking for
 is that the documentation lay the facts out and I'll decide
 whether I can make this work in my application. Lying about
 it makes you sound like Microsoft.

Lying? Whose lying? Where on the website is there a lie about
anything? From what I can tell, you've not taken the time to read the
documentation or post anything to the mailing list. You've just posted
jeremiads on the Python list.

Don't like the documentation? Ever volunteered to help out? Ever
posted any suggestions on the list or report a bug?  Do you really
think that open source projects exists to serve you and meet your
standards? Do you think that free code and documentation just falls
like manna from heaven? Do you honestly think the two core developers
of SQLite have some secret agenda to deceive you or the world into
using SQLite?

  Of course you could restrict yourself
  to, by example, SQL92 entry level and be a lot more compatible.
  But if I'm using a nice OO language like Python which lets me bind
  *any* object to *any* name, why should be wrong to bind *any* object
  to *any* database column?

 But SQL isn't OO, it's relational. That means JOINing tables
 together on a common field. In theory, due to the comparison
 hierarchy, it is impossible to do JOINs with dynamic typing
 since different types can never be equal. In practice, the type
 affinity kluge trys to work around this but can't do anything
 if the string doesn't look like an integer when a text field
 attempts to JOIN to an interger field.

Unless you ensure that the correct types are put int the column to
begin with, which is entirely possible with SQLite, as I've already
demonstrated. And if that's just too much to bear, you can still do an
inner join by explicitly casting the two columns in the join
constraint to a common desired type. Want to know how? Read the
documentation.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Paul Boddie
Fredrik Lundh wrote:
 Steve Holden wrote:

  Sure. But if you go back to the start of the thread you'll remember the
  OP was originally complaining that SQLite was being promoted in the
  Python docs as SQL compliant. It clearly isn't if its response to the
  insertion of a data value that conflicts with the declared column type
  is to store a value whose type is something else.

 the standard actually says If the value of any input parameter provided
 by the SQL-agent falls outside the set of allowed values of the data
 type of the parameter /.../ the effect is implementation-defined so
 that's perfectly SQL92 compliant.

To be fair, that text originates in section 12.3, referring to input
parameters to procedures. Meanwhile, the following text (subclause
13.8, insert statement) appears to be more pertinent:

If the data type of the target identified by the i-th column name is
an exact numeric type, then the data type of the i-th item of the
insert statement shall be an exact numeric type.

I have used SQLite (releases 2 and 3) to my satisfaction, aware of the
common knowledge around the limitations (or features) of SQLite with
respect to data types. I'd agree with the complainant that the
behaviour of SQLite isn't what one would expect, although I started my
relational database experience using an Oracle database system and
admit that I may have been spoilt, thus saving Mr Holden - a
self-confessed Yorkshireman, I believe - the effort involved in
pointing out the relative luxury of my professional upbringing. ;-)

Paul

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Mike Owens wrote:
 On 11 Sep 2006 21:35:28 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
  Mike Owens wrote:
   On 11 Sep 2006 18:23:50 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] 
   wrote:
  
Can you run your car on diesel fuel?
   
Why not?
   
Because your car's specification says to use gasoline?
   
If your car has been designed to run on diesel, you shouldn't
be saying it has gasoline engine. Duh.
  
   No but you can still call it a car with an engine, just as SQLite is a
   SQL database, with an SQL engine.
 
  Seperate the data from the engine and what have you got?
  Data with dynamic typing. Data that can't be migrated to
  a real SQL database because you'll get type mismatches
  when strings are inserted into numeric fields. The type affinity
  kluge won't help there, will it?

 Did you even read my original post? Or did you just completely miss the point?

  It's not the job of the System Test Engineer to design things.
  It's his job to find fault with everything. I just happen to be very
  good at finding faults with things.

 And apparently not very good at providing any constructive solutions.

  But no one appreciates my finding those faults.

 No one appreciates the tone in which you report these alleged faults,
 necessarily agrees with the faults that you find, nor elected you
 system test engineer of the SQLite project.

   It calls for other things that many databases don't implement or
   altogether violate as well, so what? Show me how both MS SQL's T-SQL
   and Oracle's PL/SQL procedure languages are so standards compliant
   that you can use the same procedure code in both databases. You can't
   -- precisely because they ignore or outright violate parts of the
   standard as well. What's your position on that? Do some Googling and
   you can easily find 18 ways that Oracle's PL/SQL deviates from the
   standard. And T-SQL is plainly nowhere close.
 
  And how many of those systems use dynamic typing?

 And how many conform to the standard?

  Name one where the documentation claims the SQL Language
  Specification is a bug.

 Name one that conforms to the standard.

  And a lot of people go to chiropractors. And chiropractors are
  nice intelligent people with degrees. And the therapy provided
  does good.
 
  Nevertheless, the theory on which it's based is quackery.

 To use your specious analogy, it represents another way of doing
 things, which you admit yourself works. That's your justification for
 calling Richard Hipp a crackpot?

What was Richard Hipp's justification for slandering the
writers of the SQL Language Specification?


   It's clear. You're just way too smart for SQLite.
 
  Did you see my solution to Rick Shepard's problem in the
  thread Parsing String, Dictionary Lookups, Writing to
  Database Table?

 The point being? -- you can write Python code and feel entitled to
 condescending and rude?

Is there anything more rude than describling the SQL Language
Specification as a bug that needs to be fixed?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 12 Sep 2006 08:29:34 -0700, Paul Rubin
http://phr.cx@nospam.invalid wrote:

   But no one appreciates my finding those faults.
 
  No one appreciates the tone in which you report these alleged faults,

 Your tone is not so great either.

And what would you expect after someone who has take little to no effort to

1. read the documentation

2. seek help in the appropriate places, or

3. raise concerns to the appropriate people

unjustly and publicly vilifies an otherwise wonderful volunteer effort
to provide a free, high-quality, open source software package?

  necessarily agrees with the faults that you find, nor elected you
  system test engineer of the SQLite project.

 It's an open source project, as you like to say.  Everyone is a test
 engineer.

Only real test engineers provide constructive feedback to the
appropriate places. Posting ill-informed flames to the Python mailing
list is hardly constructive feedback, or worthy of being called test
engineering.

standard as well. What's your position on that? Do some Googling and
you can easily find 18 ways that Oracle's PL/SQL deviates from the
standard. And T-SQL is plainly nowhere close.
  
   And how many of those systems use dynamic typing?
 
  And how many conform to the standard?

 How many of those deviations are justified in their documentation by
 the responsible parties claiming, in effect, that they're smarter than
 the standard's designers?

No one said they are smarter than anyone else in effect or otherwise,
but rather the SQLite project stated that it disagreed with static
typing. When you write free software, you have the freedom to write it
however you want, and that is the justification. This is the approach
that SQLite took, they are free to do so, and in no way have they been
deceptive about it.

And because SQLite deviates in this way does not make it any more
guilty of deviating or not conforming to the SQL standard than any
other SQL database.

 It seems obvious to me that there should, at minimum, be an option to
 turn this particular nonstandard behavior on and off.

Then the obvious means by which to accomplish this are like any other
open source project: At a minimum, post this suggestion to the mailing
list, write an RFE, or best of all, write the missing code yourself
and supply a patch to the bug list.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Steve Holden
Paul Boddie wrote:
 Fredrik Lundh wrote:
 
Steve Holden wrote:


Sure. But if you go back to the start of the thread you'll remember the
OP was originally complaining that SQLite was being promoted in the
Python docs as SQL compliant. It clearly isn't if its response to the
insertion of a data value that conflicts with the declared column type
is to store a value whose type is something else.

the standard actually says If the value of any input parameter provided
by the SQL-agent falls outside the set of allowed values of the data
type of the parameter /.../ the effect is implementation-defined so
that's perfectly SQL92 compliant.
 
 
 To be fair, that text originates in section 12.3, referring to input
 parameters to procedures. Meanwhile, the following text (subclause
 13.8, insert statement) appears to be more pertinent:
 
 If the data type of the target identified by the i-th column name is
 an exact numeric type, then the data type of the i-th item of the
 insert statement shall be an exact numeric type.
 
 I have used SQLite (releases 2 and 3) to my satisfaction, aware of the
 common knowledge around the limitations (or features) of SQLite with
 respect to data types. I'd agree with the complainant that the
 behaviour of SQLite isn't what one would expect, although I started my
 relational database experience using an Oracle database system and
 admit that I may have been spoilt, thus saving Mr Holden - a
 self-confessed Yorkshireman, I believe - the effort involved in
 pointing out the relative luxury of my professional upbringing. ;-)
 
Spoilt? I should say so. When I were a lad we 'ad to scrape around for 
half a bit here and half a bit there - you didn't find whole bits just 
lying around in them days. As fer integers, you 'ad to save up for a 
year just to get sixteen bits. We used ter dream abaht 'avin' 64 bits, 
but there were no chance unless yer Dad were rich. Most of our strings 
were put together from characters we'd dredged out of t' canal, you 'ad 
to try and ignore the mud. We'd 'ave given our eye teeth for a bit of 
UTF-8 on a Sunday.

These kids wi' their Oracle databases didn't know they were born. I can 
remember 'avin' to optimise programs by making sure that the next 
instruction were comin' under the heads of t' drum just as the last 
instruction were finishing.

But yer tell these young folk nowadays and they just don't believe yer.

etc., etc.

pythonistical-ly y'rs  - steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
Paul Boddie wrote:

 To be fair, that text originates in section 12.3, referring to input
 parameters to procedures.

which is the section that section 4.1 (data types) refers to for more 
details on mappings between host data and SQL data.  guess it depends on 
how you look at the different layers: if you're using SQLite via the DB-
API, are you using SQL or an SQL Agent?

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 12 Sep 2006 09:31:54 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

  To use your specious analogy, it represents another way of doing
  things, which you admit yourself works. That's your justification for
  calling Richard Hipp a crackpot?

 What was Richard Hipp's justification for slandering the
 writers of the SQL Language Specification?

Slander? Richard wrote a free and open source relational database the
way he wanted to, in a way that seems useful to him, and apparently
thousands of other people. You are free to write your own open source
relational database as well which has its own deviations from the
standard. I say this because I'd love to see you write the worlds
first SQL compliant database, and do it in under 30,000 lines of C,
and make it portable across both operating systems and byte orders,
capable of being run on cell phones and low power environments.

The only slander I see are in your ill-informed posts on this mailing
lists which should really be directed to the SQLite list. Apparently,
you are too afraid to insult the SQLite community to its face, and
seek refuge on the Python list.

It's clear. You're just way too smart for SQLite.
  
   Did you see my solution to Rick Shepard's problem in the
   thread Parsing String, Dictionary Lookups, Writing to
   Database Table?
 
  The point being? -- you can write Python code and feel entitled to
  condescending and rude?

 Is there anything more rude than describling the SQL Language
 Specification as a bug that needs to be fixed?

Yes, namely calling respectable people (who selflessly write free and
open source software in their spare time) crackpots. Also, not lifting
a finger to seek help or effect change, but taking every effort to
insult. And finally, there is entertaining the notion that people live
to serve your needs. Yes, there are things that are clearly more rude.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Mike Owens wrote:
 On 11 Sep 2006 23:29:28 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

  But it was stated in the sqlite docs that ALL SQL databases
  use static types implying that sqlite will be incompatible
  with any heavy database should the need arise to migrate
  upwards. The issue is not that there will be compatibilty
  problems with any data migration but that the truth is exactly
  opposite of what's claimed in Section 13.13.

 Implying? There's a solid word. Migrating data from SQLite to other
 databases is no more difficult or easy than migrating data to any
 other database. Do you think this is ever trivial? It's as hard or as
 easy as you make it. No database can just take any schema and the data
 you put in it and just magically convert that schema/data to
 flawlessly work in any arbitrary database of your choosing. Some
 databases have tools to help with this, but they still are not
 perfect.

So, knowing that, would you agree that

quote Python Library Reference 13.13
If switching to a larger database such as PostgreSQL or Oracle
is later necessary, the switch should be relatively easy.
/quote

is misleading if not outright untruthful?


  I'm not saying sqlite can't be used, what I'm asking for
  is that the documentation lay the facts out and I'll decide
  whether I can make this work in my application. Lying about
  it makes you sound like Microsoft.

 Lying? Whose lying?

See above quote. And while you're at it, see the sqlite docs
about how the SQL Language Specification of static typing
is a bug.

 Where on the website is there a lie about
 anything? From what I can tell, you've not taken the time to read the
 documentation or post anything to the mailing list. You've just posted
 jeremiads on the Python list.

 Don't like the documentation?

No, it's misleading and full of errors (this is the Python docs
I'm referring to).

 Ever volunteered to help out?

That's what this thread was about, testing the waters.
No point making bug reports if I'm the one who's wrong.
But it turns out I'm not wrong, sqlite IS goofy and this
should be pointed out.

 Ever posted any suggestions on the list or report a bug?

I'm still considering it. This thread has been very useful
towards that.

 Do you really
 think that open source projects exists to serve you and meet your
 standards? Do you think that free code and documentation just falls
 like manna from heaven?

But why does it have to be wrong? It's just as easy to get
things right. Isn't that your complaint, that if I read the sqlite
docs first, the riculous examples in the Python docs would
have made more sense? Why didn't the guy writing the Python
docs read the sqlite docs first?

 Do you honestly think the two core developers
 of SQLite have some secret agenda to deceive you or the world into
 using SQLite?

Why do they claim that the SQL Language Specification of
static typing is a bug? That's simply a lie. Why do they claim
they've fixed it in a backwards compatible way? That's another
lie.

Why didn't they simply say they have an alternative to static
typing? Because part of the deception is to make people think
there is something wrong with static typing.


   Of course you could restrict yourself
   to, by example, SQL92 entry level and be a lot more compatible.
   But if I'm using a nice OO language like Python which lets me bind
   *any* object to *any* name, why should be wrong to bind *any* object
   to *any* database column?
 
  But SQL isn't OO, it's relational. That means JOINing tables
  together on a common field. In theory, due to the comparison
  hierarchy, it is impossible to do JOINs with dynamic typing
  since different types can never be equal. In practice, the type
  affinity kluge trys to work around this but can't do anything
  if the string doesn't look like an integer when a text field
  attempts to JOIN to an interger field.

 Unless you ensure that the correct types are put int the column to
 begin with, which is entirely possible with SQLite, as I've already
 demonstrated. And if that's just too much to bear, you can still do an
 inner join by explicitly casting the two columns in the join
 constraint to a common desired type. Want to know how? Read the
 documentation.

And what do you get when you implement all these kluges?
A database that effectively is static typed. Do you still think
static typing is a bug?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
[EMAIL PROTECTED] wrote:

 So, knowing that, would you agree that
 
 quote Python Library Reference 13.13
 If switching to a larger database such as PostgreSQL or Oracle
 is later necessary, the switch should be relatively easy.
 /quote
 
 is misleading if not outright untruthful?

eh?  if you've never migrated *from* SQLite to some other database, how 
can *you* possibly know *anything* about how hard or easy it is?

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Mike Owens wrote:
 On 12 Sep 2006 09:31:54 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

   To use your specious analogy, it represents another way of doing
   things, which you admit yourself works. That's your justification for
   calling Richard Hipp a crackpot?
 
  What was Richard Hipp's justification for slandering the
  writers of the SQL Language Specification?

 Slander? Richard wrote a free and open source relational database the
 way he wanted to, in a way that seems useful to him, and apparently
 thousands of other people. You are free to write your own open source
 relational database as well which has its own deviations from the
 standard. I say this because I'd love to see you write the worlds
 first SQL compliant database, and do it in under 30,000 lines of C,
 and make it portable across both operating systems and byte orders,
 capable of being run on cell phones and low power environments.

And when he was done, he made the ridiculous claim that
the SQL Language Specification of static typing was a bug.


 The only slander I see are in your ill-informed posts on this mailing
 lists which should really be directed to the SQLite list.

Why? I'm not requesting that dynamic typing be removed from
sqlite. I'm not even requesting that the slander in the sqlite docs
be removed. What I'm requesting is that these features of
sqlite be better presented in the Python docs, hence, no posting
to the sqlite list. Is that so hard to figure out?

 Apparently,
 you are too afraid to insult the SQLite community to its face, and
 seek refuge on the Python list.

I'm sure the sqlite community could care less about what appears
in the Python documentation.


 It's clear. You're just way too smart for SQLite.
   
Did you see my solution to Rick Shepard's problem in the
thread Parsing String, Dictionary Lookups, Writing to
Database Table?
  
   The point being? -- you can write Python code and feel entitled to
   condescending and rude?
 
  Is there anything more rude than describling the SQL Language
  Specification as a bug that needs to be fixed?

 Yes, namely calling respectable people (who selflessly write free and
 open source software in their spare time) crackpots. Also, not lifting
 a finger to seek help or effect change, but taking every effort to
 insult. And finally, there is entertaining the notion that people live
 to serve your needs. Yes, there are things that are clearly more rude.

So you admit that Richard Hipp's characterization of SQL was
rude. And now that we've established what you are, we're just
haggling over price.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Fredrik Lundh wrote:
 [EMAIL PROTECTED] wrote:

  So, knowing that, would you agree that
 
  quote Python Library Reference 13.13
  If switching to a larger database such as PostgreSQL or Oracle
  is later necessary, the switch should be relatively easy.
  /quote
 
  is misleading if not outright untruthful?

 eh?  if you've never migrated *from* SQLite to some other database, how
 can *you* possibly know *anything* about how hard or easy it is?

Because I can extrapolate. I *know* before even trying it that
if I export all my data from a sqlite db to a csv file and then try
to import it into Access that there will be problems if the fields
aren't static typed.

That's one of the reasons why I was such a good test engineer.
I could anticipate problems the design engineers didn't think of
and I would deliberately provoke those problems during testing
and crash their hardware/software.

I wasn't very popular.

 
 /F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Cliff Wells
On Tue, 2006-09-12 at 13:01 +0200, Fredrik Lundh wrote:
 Mike Owens wrote:
 
  Crackpot? And now we get to why I took the flamebait -- wonderfully
  constructive comments such as this.
  
  I know SQLite's author. Besides being a nice and clearly very
  intelligent person, he also holds a master's degree in electrical
  engineering from Georgia Tech and a PhD in computer science from Duke
  University. His crackpot software is used by Sun, Apple, Symbian,
  Google, AOL, Philips, DLink, and I don't know how many other
  companies, not to mention countless open source projects such as
  Mozilla, PHP, and now Python.
 
 but is he a member of Mensa?


Now *there's* a group of crackpots.


Cliff
-- 

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 12 Sep 2006 10:24:00 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 So, knowing that, would you agree that

 quote Python Library Reference 13.13
 If switching to a larger database such as PostgreSQL or Oracle
 is later necessary, the switch should be relatively easy.
 /quote

 is misleading if not outright untruthful?

Not in the least.

If you know what you are doing from a database perspective (not just a
SQLite perspective), migrating data to another database is exactly
that -- relatively easy. That means, you may have to recreate or
modify your schema for the target database -- and this is true in ALL
databases. Native datatypes vary from system to system, and some
systems support user-defined data types, in which case your schema
will definitely have to be modified. How would you migrate a CIDR type
in PostgreSQL to a numeric field in Oracle? You have to work at it.

Next, as far as transferring you data, you most likely have to resort
to some delimited format, or INSERT statements, which is no different
than any other database.

So,  I would call that relatively easy without a stretch, and
certainly no different than migrating data with any other database.

Really, how is this different than migrating data to/from any other database?

   whether I can make this work in my application. Lying about
   it makes you sound like Microsoft.
 
  Lying? Whose lying?

 See above quote. And while you're at it, see the sqlite docs
 about how the SQL Language Specification of static typing
 is a bug.

Both of which have been addressed in detail. The above quote is not
even stretching the truth, and the latter fact is a deviation that
SQLite has every right to make because they, and not you, wrote the
software. Furthermore, it is very clearly stated on the website.

So how is that a lie?

 No, it's misleading and full of errors (this is the Python docs
 I'm referring to).

I didn't join this thread because of Python's documentation, and I've
made that clear. I am here because you are unjustly vilifying the
SQLite project.

  Ever volunteered to help out?

 That's what this thread was about, testing the waters.
 No point making bug reports if I'm the one who's wrong.
 But it turns out I'm not wrong, sqlite IS goofy and this
 should be pointed out.

Then be a man and point it out on the SQLite mailing list, where you
can be called on it, rather than ranting about it here.

 But why does it have to be wrong? It's just as easy to get
 things right. Isn't that your complaint, that if I read the sqlite
 docs first, the riculous examples in the Python docs would
 have made more sense? Why didn't the guy writing the Python
 docs read the sqlite docs first?

First, SQLite's approach is no more wrong than any other database's
deviation from the standard. Second, as I've said, I'm not here for
the Python issues. I think they'll get things sorted out in due time,
and people on this list have been very receptive to your feedback.

  Do you honestly think the two core developers
  of SQLite have some secret agenda to deceive you or the world into
  using SQLite?

 Why do they claim that the SQL Language Specification of
 static typing is a bug? That's simply a lie. Why do they claim
 they've fixed it in a backwards compatible way? That's another
 lie.

It's not a lie at all. Are you incapable of comprehending the context
of that text? Do you not understand that it effectively says This is
the way we do things. It's not in agreement with the SQL standard. We
know that, we are doing it this way, and here's how it works, take it
or leave it. And the whole bug in the SQL standard, if you can't
tell, is called humor.

 Why didn't they simply say they have an alternative to static
 typing?

They did. You couldn't understand that from the documentation?

 Because part of the deception is to make people think
 there is something wrong with static typing.

Yes, it's really an underhanded conspiracy designed to deceive and
mislead on a global scale. I can just see the developers sitting
around plotting:

Hey, let's write some free software. Yeah let's give the code away
for free and not make a dime from it. Yeah, and then let's make up a
bunch of lies to make people want to use it, so we can continue to not
make a dime from it. And let's slander the SQL standard, and say all
sorts nasty things about it. Yeah, that's how we'll spend our nights
and weekends.

You really need to find some fault that will stick at this point, don't you?

They're really up to something.

 And what do you get when you implement all these kluges?
 A database that effectively is static typed.

Only if you want one. Otherwise, you have the freedom of dynamic
typing, which other databases don't afford. So, you in fact have more
freedom than you do than with databases that only offer strict typing.

 Do you still think static typing is a bug?

Did I say this, ever? I am not the SQLite website.

I don't think either is a bug. Both are two different 

Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 12 Sep 2006 10:47:22 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 So you admit that Richard Hipp's characterization of SQL was
 rude. And now that we've established what you are, we're just
 haggling over price.

No, you've just managed to try and take the heat off of yourself. I
never said anything about Richard. Good try. More sinned against than
sinning doesn't help you at all.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Steve Holden
[EMAIL PROTECTED] wrote:
 Fredrik Lundh wrote:
 
[EMAIL PROTECTED] wrote:


So, knowing that, would you agree that

quote Python Library Reference 13.13
If switching to a larger database such as PostgreSQL or Oracle
is later necessary, the switch should be relatively easy.
/quote

is misleading if not outright untruthful?

eh?  if you've never migrated *from* SQLite to some other database, how
can *you* possibly know *anything* about how hard or easy it is?
 
 
 Because I can extrapolate. I *know* before even trying it that
 if I export all my data from a sqlite db to a csv file and then try
 to import it into Access that there will be problems if the fields
 aren't static typed.
 
 That's one of the reasons why I was such a good test engineer.
 I could anticipate problems the design engineers didn't think of
 and I would deliberately provoke those problems during testing
 and crash their hardware/software.
 
 I wasn't very popular.
 
Strange, that, what with your excess of personal charm and great powers 
of diplomacy. People can be so touchy, can't they?

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
[EMAIL PROTECTED] wrote:

 Because I can extrapolate. I *know* before even trying it that
 if I export all my data from a sqlite db to a csv file and then try
 to import it into Access that there will be problems if the fields
 aren't static typed.

that's just the old C++/Java is better than Smalltalk/Python/Ruby 
crap.  we've seen it before, and it's no more true when it comes from 
you than when it comes from some Java head.  people who've actually used 
dynamic typing knows that it doesn't mean that all objects have random 
types all the time.

 That's one of the reasons why I was such a good test engineer.
 I could anticipate problems the design engineers didn't think of
 and I would deliberately provoke those problems during testing
 and crash their hardware/software.
 
 I wasn't very popular.

no wonder, if you kept running around telling your colleagues that they 
were liars and crackpots and slanderers when things didn't work as you 
expected.  what's your current line of work, btw?

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread A.M. Kuchling
On 12 Sep 2006 10:24:00 -0700, 
[EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 So, knowing that, would you agree that
 
quote Python Library Reference 13.13
 If switching to a larger database such as PostgreSQL or Oracle
 is later necessary, the switch should be relatively easy.
/quote
 
 is misleading if not outright untruthful?

As the original author of that sentence, I don't think it's either
misleading or untruthful; 'relatively easy' gives me wiggle room. 
However, to fix your complaint, I've changed the paragraph to read:

SQLite is a C library that provides a lightweight disk-based
database that doesn't require a separate server process and allows
accessing the database using a nonstandard variant of the SQL query
language. Some applications can use SQLite for internal data
storage. It's also possible to prototype an application using SQLite
and then port the code to a larger database such as PostgreSQL or
Oracle.

Of course, if you accept Fredrik's reading of the SQL standard, the
word 'nonstandard' in the revised text is incorrect; SQLite is
compliant with the standard but in an unusual way.  (But most readers
will interpret nonstandard as meaning not like most other SQL
databases, so I'll let it stand.)

--amk
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]
Fredrik Lundh wrote:
 [EMAIL PROTECTED] wrote:

  Because I can extrapolate. I *know* before even trying it that
  if I export all my data from a sqlite db to a csv file and then try
  to import it into Access that there will be problems if the fields
  aren't static typed.

 that's just the old C++/Java is better than Smalltalk/Python/Ruby
 crap.  we've seen it before, and it's no more true when it comes from
 you than when it comes from some Java head.  people who've actually used
 dynamic typing knows that it doesn't mean that all objects have random
 types all the time.

No, it isn't the same old crap. When I define an Access field as
Double, I cannot insert a value such as 200 or ND or Yes.
I'm not saying static typing is better, just that migrating a dynamic
types to static types may cause difficulties that wouldn't be present
if it was static to static.

And if you call the C++/Java is better than Smalltalk/Python/Ruby
statement crap, why do you accept the statement that
static typing is a bug in the SQL specification? Isn't that
crap also?


  That's one of the reasons why I was such a good test engineer.
  I could anticipate problems the design engineers didn't think of
  and I would deliberately provoke those problems during testing
  and crash their hardware/software.
 
  I wasn't very popular.

 no wonder, if you kept running around telling your colleagues that they
 were liars and crackpots and slanderers when things didn't work as you
 expected.

Nobody cared about that. What they cared about was my
reporting to their boss that the latest version of the software
was no better than the previous version who then had to figure
out how to explain to the customer that the improvement he
was promised didn't materialize and who then had to explain
to his boss why the customer still hadn't signed off on the
delivery and pay the bill.

 what's your current line of work, btw?

Database manager for an a geotechnical consulting firm doing
environmental remediation.

 
 /F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
[EMAIL PROTECTED] wrote:

 that's just the old C++/Java is better than Smalltalk/Python/Ruby
 crap.  we've seen it before, and it's no more true when it comes from
 you than when it comes from some Java head.  people who've actually used
 dynamic typing knows that it doesn't mean that all objects have random
 types all the time.
 
 No, it isn't the same old crap. When I define an Access field as
 Double, I cannot insert a value such as 200 or ND or Yes.
 I'm not saying static typing is better, just that migrating a dynamic
 types to static types may cause difficulties that wouldn't be present
 if it was static to static.

dynamic typing != random typing.  if your program is using the DB-API to 
add data to an SQLite database, who, exactly, is inserting the values? 
who's producing the data?  under what circumstances would that code 
produce or insert arbitrarily typed data?

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Mike Owens
On 12 Sep 2006 10:47:22 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 Why? I'm not requesting that dynamic typing be removed from
 sqlite. I'm not even requesting that the slander in the sqlite docs
 be removed. What I'm requesting is that these features of
 sqlite be better presented in the Python docs, hence, no posting
 to the sqlite list. Is that so hard to figure out?

  Apparently,
  you are too afraid to insult the SQLite community to its face, and
  seek refuge on the Python list.

 I'm sure the sqlite community could care less about what appears
 in the Python documentation.

As a member of the SQLite community, your publicly denouncing SQLite
as f***ing goofy, and it's creator as a crackpot, liar, and
slanderer, concerns at least me. And I would say that these comments
have no relation to what appears in the Python documentation.

In any case, I am thankful for these comments, as they speak volumes
about you. So much so, in fact, that I think neither you nor they pose
any real danger of being taken seriously by anyone new to Python or
SQLite. That being the case, I needn't continue with you.

If you ever want to have a constructive discussion about SQLite or any
of its features, or just need some general advice, please feel free to
join the mailing list. There are a lot of friendly people who would be
glad to help you out or consider to your suggestions.

Cheers.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

A.M. Kuchling wrote:
 On 12 Sep 2006 10:24:00 -0700,
   [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
  So, knowing that, would you agree that
 
 quote Python Library Reference 13.13
  If switching to a larger database such as PostgreSQL or Oracle
  is later necessary, the switch should be relatively easy.
 /quote
 
  is misleading if not outright untruthful?

 As the original author of that sentence, I don't think it's either
 misleading or untruthful; 'relatively easy' gives me wiggle room.

Ok, I appologize for saying that. Got a little carried away
by the flames.

 However, to fix your complaint, I've changed the paragraph to read:

   SQLite is a C library that provides a lightweight disk-based
   database that doesn't require a separate server process and allows
   accessing the database using a nonstandard variant of the SQL query
   language. Some applications can use SQLite for internal data
   storage. It's also possible to prototype an application using SQLite
   and then port the code to a larger database such as PostgreSQL or
   Oracle.

 Of course, if you accept Fredrik's reading of the SQL standard, the
 word 'nonstandard' in the revised text is incorrect; SQLite is
 compliant with the standard but in an unusual way.  (But most readers
 will interpret nonstandard as meaning not like most other SQL
 databases, so I'll let it stand.)

And that was basically what I was originally asking for.

That and fixing the broken examples.

And maybe add a few more to illustrate SQLite manifest
typing which is alien to a long time Access user.

Should I start a new thread (sans polemics) to discuss the
examples?

 
 --amk

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Tim Chase
 dynamic typing != random typing.  if your program is using the
 DB-API to add data to an SQLite database, who, exactly, is
 inserting the values? who's producing the data?  under what
 circumstances would that code produce or insert arbitrarily
 typed data?

Must be the code written by a Dr. Jekyll/Mr. Hyde personality...

But honestly, boss, I didn't write this code!  It was my evil 
alter-ego that puts VARCHAR values containing Gilbert  Sullivan 
lyrics into the Amount_Due CURRENCY fields!

:)

-tkc






-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Mike Owens wrote:
 On 12 Sep 2006 10:47:22 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

  Why? I'm not requesting that dynamic typing be removed from
  sqlite. I'm not even requesting that the slander in the sqlite docs
  be removed. What I'm requesting is that these features of
  sqlite be better presented in the Python docs, hence, no posting
  to the sqlite list. Is that so hard to figure out?
 
   Apparently,
   you are too afraid to insult the SQLite community to its face, and
   seek refuge on the Python list.
 
  I'm sure the sqlite community could care less about what appears
  in the Python documentation.

 As a member of the SQLite community, your publicly denouncing SQLite
 as f***ing goofy, and it's creator as a crackpot, liar, and
 slanderer, concerns at least me.

quote
And the whole bug in the SQL standard, if you can't
tell, is called humor.
/quote

 And I would say that these comments
 have no relation to what appears in the Python documentation.

 In any case, I am thankful for these comments, as they speak volumes
 about you. So much so, in fact, that I think neither you nor they pose
 any real danger of being taken seriously by anyone new to Python or
 SQLite. That being the case, I needn't continue with you.

See you in another life.


 If you ever want to have a constructive discussion about SQLite or any
 of its features, or just need some general advice, please feel free to
 join the mailing list. There are a lot of friendly people who would be
 glad to help you out or consider to your suggestions.

I'll use a different pseudonym.

 
 Cheers.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Steve Holden
Tim Chase wrote:
dynamic typing != random typing.  if your program is using the
DB-API to add data to an SQLite database, who, exactly, is
inserting the values? who's producing the data?  under what
circumstances would that code produce or insert arbitrarily
typed data?
 
 
 Must be the code written by a Dr. Jekyll/Mr. Hyde personality...
 
 But honestly, boss, I didn't write this code!  It was my evil 
 alter-ego that puts VARCHAR values containing Gilbert  Sullivan 
 lyrics into the Amount_Due CURRENCY fields!
 
Hence the phrase Going for a song?

groan-along-with-me-ly y'rs  - steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Steve Holden
[EMAIL PROTECTED] wrote:
 A.M. Kuchling wrote:
 
On 12 Sep 2006 10:24:00 -0700,
  [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

So, knowing that, would you agree that

quote Python Library Reference 13.13
If switching to a larger database such as PostgreSQL or Oracle
is later necessary, the switch should be relatively easy.
/quote

is misleading if not outright untruthful?

As the original author of that sentence, I don't think it's either
misleading or untruthful; 'relatively easy' gives me wiggle room.
 
 
 Ok, I appologize for saying that. Got a little carried away
 by the flames.
 
 
However, to fix your complaint, I've changed the paragraph to read:

  SQLite is a C library that provides a lightweight disk-based
  database that doesn't require a separate server process and allows
  accessing the database using a nonstandard variant of the SQL query
  language. Some applications can use SQLite for internal data
  storage. It's also possible to prototype an application using SQLite
  and then port the code to a larger database such as PostgreSQL or
  Oracle.

Of course, if you accept Fredrik's reading of the SQL standard, the
word 'nonstandard' in the revised text is incorrect; SQLite is
compliant with the standard but in an unusual way.  (But most readers
will interpret nonstandard as meaning not like most other SQL
databases, so I'll let it stand.)
 
 
 And that was basically what I was originally asking for.
 
 That and fixing the broken examples.
 
 And maybe add a few more to illustrate SQLite manifest
 typing which is alien to a long time Access user.
 
 Should I start a new thread (sans polemics) to discuss the
 examples?
 
Why don't you? That would seem like a productive forward direction.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread A.M. Kuchling
On 12 Sep 2006 13:03:09 -0700, 
[EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 Ok, I appologize for saying that. Got a little carried away
 by the flames.

Apology accepted; no problem.

 That and fixing the broken examples.

That's also done.  I fixed the executescript.py example, and tried
running all the other examples as a check; that didn't turn up any
more crashers.

The development version of the docs, built nightly from the SVN trunk,
are at http://docs.python.org/dev/.  Note that the version number is
now 2.6a0 on the trunk, but I can backport fixes to 2.5-maint as
they're made.  (Any new changes won't get in 2.5c2, which should be
released tomorrow, but will get into 2.5final if the fixes are made by
about the 17th.)

 Should I start a new thread (sans polemics) to discuss the
 examples?

Certainly!

--amk
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread A.M. Kuchling
On Tue, 12 Sep 2006 15:54:25 -0500, 
A.M. Kuchling [EMAIL PROTECTED] wrote:
 (Any new changes won't get in 2.5c2, which should be
 released tomorrow, but will get into 2.5final if the fixes are made by
 about the 17th.)

And in fact the formatted development version no longer reflects
what's in the trunk: I've just checked in a bunch of minor typo fixes
and other edits to the trunk.  So you may want to wait until tomorrow
when these fixes show up... or you can look at the original LaTeX in
the SVN browser at http://svn.python.org/view/python/trunk/Doc/lib/.

--amk

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Tim Chase
 But honestly, boss, I didn't write this code!  It was my
 evil alter-ego that puts VARCHAR values containing Gilbert 
 Sullivan lyrics into the Amount_Due CURRENCY fields!
 
 Hence the phrase Going for a song?

I am the very model of a modern major database,
For gigabytes of information gathered out in userspace.
For banking applications to a website crackers will deface,
You access me from console or spiffy user interface.

My multi-threaded architecture offers you concurrency,
And loads of RAM for caching things reduces query latency.
The data is correctly typed, a fact that I will guarantee,
Each datum has a data type, it's specified explicitly.

is-it-friday-yet'ly yers,

-tkc





-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Paul Boddie
Fredrik Lundh wrote:
 Paul Boddie wrote:

  To be fair, that text originates in section 12.3, referring to input
  parameters to procedures.

 which is the section that section 4.1 (data types) refers to for more
 details on mappings between host data and SQL data.  guess it depends on
 how you look at the different layers: if you're using SQLite via the DB-
 API, are you using SQL or an SQL Agent?

Don't ask me! :-) I found it awkward enough scrolling up and down an n
* 100 page plain text document formatted for a line printer in my Web
browser, let alone spending time working out the cross-references
throughout the text, all in the five to ten minutes I spent looking
this up.

Nevertheless, one could read the value of any input parameter provided
by the SQL-agent falls outside the set of allowed values of the data
type of the parameter as being something different from supplying a
value of one particular data type in a place where another data type is
expected. And I thought that the quote about valid values in insert
statements provided a more categorical summary of the specification's
position on such matters. Certainly, it's hard to read that and then to
claim that a string is acceptable in places where a number is expected,
regardless of what section 12.3 is trying to say.

Paul

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Fredrik Lundh
Paul Boddie wrote:

 Don't ask me! :-) I found it awkward enough scrolling up and down an n
 * 100 page plain text document formatted for a line printer in my Web
 browser, let alone spending time working out the cross-references
 throughout the text, all in the five to ten minutes I spent looking
 this up.

which proves my old theory: once a specification ends up having a bit 
more than 650 pages, it's certifiably evil.

(for true greatness, the limit is 50 pages)

/F

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread Gabriel Genellina



Paul Boddie wrote:

 Don't ask me! :-) I found it awkward enough scrolling up and down an n
 * 100 page plain text document formatted for a line printer in my Web
 browser, let alone spending time working out the cross-references
 throughout the text, all in the five to ten minutes I spent looking
 this up.


I remember that one of my very first Python scripts was to convert 
the SQL92 grammar -unusable otherwise- into an html cross-referenced version...



Gabriel Genellina
Softlab SRL 






__
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas


-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Is it just me, or is Sqlite3 goofy?

2006-09-12 Thread [EMAIL PROTECTED]

Tim Chase wrote:
  But honestly, boss, I didn't write this code!  It was my
  evil alter-ego that puts VARCHAR values containing Gilbert 
  Sullivan lyrics into the Amount_Due CURRENCY fields!
 
  Hence the phrase Going for a song?

 I am the very model of a modern major database,
 For gigabytes of information gathered out in userspace.
 For banking applications to a website crackers will deface,
 You access me from console or spiffy user interface.

 My multi-threaded architecture offers you concurrency,
 And loads of RAM for caching things reduces query latency.
 The data is correctly typed, a fact that I will guarantee,
 Each datum has a data type, it's specified explicitly.

Mensantor:
When I was a lad I had to load
Data to Access via import mode.
Data came in as DBase III
And had to be converted to csv.
I so carefully converted the csv's
That now I am the admin of big db's.

Chorus:
He so carefully converted the csv's
That now he is the admin of big db's.

 
 is-it-friday-yet'ly yers,
 
 -tkc

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Magnus Lycka
[EMAIL PROTECTED] wrote:
 I think an explanation of how Sqlite3 differs from SQL and
 a better set of examples is still warranted.

In general, Python standard library modules that are wrappers
for third party libraries are very thinly documented, and they
should probably remain that way, because it's really too much of
a burden on the Python developers to develop this documentation
and keep it up to date. The idea is to document the wrapper, not
the wrapped library.

If I had a choice concerning these wrapper libraries, I'd much
rather see more docs on the tkinter and xml libraries. There you
need to guess a lot. There is no shortage of Tcl/Tk docs, but it
doesn't look the same within Python. For the Python xml libraries,
I've had to experiment a lot, and I have this nagging feeling
that I don't do things the way I should. (From Python 2.5, we
have ElementTree, which is much better from this perspective,
but we've just started using 2.4 at work, and we try to keep
the amount of third party libraries to a minimum here.)

It seems to me that the sqlite3 module is fairly decent in
this regard, particularly since it's not even included in a
completed Python release yet. Concerning the API, I'm surprised
to see magic method naming such as __conform__ introduced in
a library like that. It seems to me that this is a violation
of PEP 8. I'm sure there are further details that could be worth
mentioning in the docs, but I think it's important that we don't
try to duplicate the SQLite docs in the Python docs.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Gerhard Häring
Kay Schluehr wrote:
 [EMAIL PROTECTED] wrote:
 
 I wouldn't be at all surprised if the pysqlite author operated under that
 assumption.  That the Python developers didn't pick up on the issue is not
 surprising.  I'm not sure how many of them are (py)sqlite users, probably
 relatively few.

 Skip
 
 Who has reviewed sqlite/pysqlite after all? 

pysqlite was actually reviewed by several Python core developers before 
becoming a part of the Python standard library, most prominently Neil 
Norwitz and Anthony Baxter.

 Reading the passage in the
 sqlite FAQ I can hardly believe that passing errors silently and
 coercing everything to string when it fails to be coerced to INTEGER
 although INTEGER was an invariant declared in the create command is on
 par with Pythons design philosophy. [...]

Unfortunately, third-party library authors don't first check with 
Python's design philosophy in case their software will be wrapped as a 
Python module ;-)

I did my best to combine both SQLite's and Python's type system though, 
including a discussion with pysqlite 1.x users before the grand rewrite 
for version 2, which is the one that ended up in the Python standard 
library now.

 In other cases doctoral dissertations are written about whether a
 keyword or some punctuation shall be used for decorator syntax and in
 this case everything must be rushed into the code base of the
 standard library?

There was no rush at all.

-- Gerhard

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Preston Hagar
   Unfortunately, I don't think they are going to duplicate the 200 or
 so page O'Reilly SQLite book as part of the help system (even if that
 book is quite out-of-date; there is one skinny chapter near the end that
 explains what changes will appear in the version that has been
 available for Python for over a year now).
 --

Just to let you (and everyone else know) there is a new SQLite book
out from APress that covers SQLite 3

http://www.apress.com/book/bookDisplay.html?bID=10130

It actually has a section that covers what a lot of these postings
have been discussing, check constraints.  You can actually implement
type checking constraints in SQLite with very little additional code.
That way it will give you an error message if you try to insert
something of the wrong type.

HTH,

Preston
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Steve Holden
Mike Owens wrote:
 I coworker pointed me to this thread.
 
 
and why it isn't SQL.
 
 
It isn't SQL simply because SQL won't let you insert text
into a numeric field.
 
 
Yup, I have to agree that's pretty crappy. (Makes mental note to limit
use of SQLite).
 
 
 Ever heard of check constraints? That's another feature of this
 crappy, non-SQL database. They are one of at least three different
 approaches you can take to implement strict typing using SQLite's SQL
 and C library facilities.
 
Oh, right. So you're trying to defend SQLite (which, by the way, doesn't 
need it: it's a perfectly fine tool for limited purposes) by suggesting 
that column typing's failure to work isn't a problem because you can 
declare column types in check constraints? That seems like a hard 
position to defend to me.

You might as well say it's OK to sell blunt knives because they can 
always be sharpened.

[examples snipped]
 
 That darned dynamic typing. It works like almost any other database if
 you want it to. (Makes mental note to spend more time reading SQLite
 documentation before bashing SQLite.)

Sure. But if you go back to the start of the thread you'll remember the 
OP was originally complaining that SQLite was being promoted in the 
Python docs as SQL compliant. It clearly isn't if its response to the 
insertion of a data value that conflicts with the declared column type 
is to store a value whose type is something else. You shouldn't need to 
add check constraints to verify that the value stored in an integer 
column is actually an integer.

I don't think anyone is trying to suggest that SQLite isn't a prefectly 
good tool for many purposes: it's far more sophisticated than bsddb, for 
example, and I've used both it and Gadfly (which has similar 
deficiencies when compared to strict standards) with complete satisfaction.

So climb down off that high horse :-)

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Mike Owens
On 9/11/06, Steve Holden [EMAIL PROTECTED] wrote:

 Sure. But if you go back to the start of the thread you'll remember the
 OP was originally complaining that SQLite was being promoted in the
 Python docs as SQL compliant.

Define SQL compliant. That's about as technically precise as saying
that something tastes like chicken.

Furthermore, I'm not responding to Python's representation of one
thing or another. I am responding to some of the ridiculous and unfair
criticisms directed at SQLite. Whatever Python did or didn't do, or
whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
drug through the mud.

 You shouldn't need to
 add check constraints to verify that the value stored in an integer
 column is actually an integer.

You should if your using SQLite, and this is clearly documented:
http://www.sqlite.org/datatype3.html.

 I don't think anyone is trying to suggest that SQLite isn't a prefectly
 good tool for many purposes: it's far more sophisticated than bsddb, for
 example, and I've used both it and Gadfly (which has similar
 deficiencies when compared to strict standards) with complete satisfaction.

Then what does calling it crappy and goofy suggest?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Steve Holden
Mike Owens wrote:
 On 9/11/06, Steve Holden [EMAIL PROTECTED] wrote:
 
 
Sure. But if you go back to the start of the thread you'll remember the
OP was originally complaining that SQLite was being promoted in the
Python docs as SQL compliant.
 
 
 Define SQL compliant. That's about as technically precise as saying
 that something tastes like chicken.
 
 Furthermore, I'm not responding to Python's representation of one
 thing or another. I am responding to some of the ridiculous and unfair
 criticisms directed at SQLite. Whatever Python did or didn't do, or
 whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
 drug through the mud.
 
Which is precisely why I took pains to acknowledge that there were many 
purposes for which SQLite is entirely suitable.
 
You shouldn't need to
add check constraints to verify that the value stored in an integer
column is actually an integer.
 
 
 You should if your using SQLite, and this is clearly documented:
 http://www.sqlite.org/datatype3.html.
 
Right. In which case, why bother to define the types of the columns in 
your table declarations?
 
I don't think anyone is trying to suggest that SQLite isn't a prefectly
good tool for many purposes: it's far more sophisticated than bsddb, for
example, and I've used both it and Gadfly (which has similar
deficiencies when compared to strict standards) with complete satisfaction.
 
 
 Then what does calling it crappy and goofy suggest?

That colloquial English expression is acceptable on this list.

Strict affinity mode seems to represent a movement towards more rigorous 
type checking. So the designers of SQLIte accept that it wasn't perfect. 
So what? Please, don't take on so. It's only ones and zeroes.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread [EMAIL PROTECTED]

Mike Owens wrote:
 On 9/11/06, Steve Holden [EMAIL PROTECTED] wrote:

  Sure. But if you go back to the start of the thread you'll remember the
  OP was originally complaining that SQLite was being promoted in the
  Python docs as SQL compliant.

 Define SQL compliant. That's about as technically precise as saying
 that something tastes like chicken.

Can you run your car on diesel fuel?

Why not?

Because your car's specification says to use gasoline?

If your car has been designed to run on diesel, you shouldn't
be saying it has gasoline engine. Duh.


 Furthermore, I'm not responding to Python's representation of one
 thing or another. I am responding to some of the ridiculous and unfair
 criticisms directed at SQLite. Whatever Python did or didn't do, or
 whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
 drug through the mud.

Sure it does.

From SQLite Homepage
  documentation
Available Documentation
  Distinctive Features

quote *emphasis added*
This page highlights some of the characteristics of SQLite
that are unusual and which make SQLite different from many
other SQL database engines.

Manifest typing

Most SQL database engines use static typing. A datatype is
associated with each column in a table and only values of
that particular datatype are allowed to be stored in that
column. SQLite relaxes this restriction by using manifest
typing.

In manifest typing, the datatype is a property of the
value itself, not of the column in which the value is
stored. SQLite thus allows the user to store any value
of any datatype into any column regardless of the declared
type of that column. (There are some exceptions to this
rule: An INTEGER PRIMARY KEY column may only store
integers. And SQLite attempts to coerce values into the
declared datatype of the column when it can.)

***
* The SQL language specification calls for static typing. *
***

So some people feel that the use of manifest typing is a
bug in SQLite. But the authors of SQLite feel very
strongly that this is a feature.

**
* The authors argue that static typing is a bug in the   *
* SQL specification that SQLite has fixed in a backwards *
* compatible way.*
**
/quote

A spcification cannot be a bug (unless it is inconsistent
with other specifications). An implementation can be,
but a specification cannot.


  You shouldn't need to
  add check constraints to verify that the value stored in an integer
  column is actually an integer.

 You should if your using SQLite, and this is clearly documented:
 http://www.sqlite.org/datatype3.html.

  I don't think anyone is trying to suggest that SQLite isn't a prefectly
  good tool for many purposes: it's far more sophisticated than bsddb, for
  example, and I've used both it and Gadfly (which has similar
  deficiencies when compared to strict standards) with complete satisfaction.

 Then what does calling it crappy and goofy suggest?

It suggests that the SQLite author is a crackpot.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Mike Owens
On 11 Sep 2006 18:23:50 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 Can you run your car on diesel fuel?

 Why not?

 Because your car's specification says to use gasoline?

 If your car has been designed to run on diesel, you shouldn't
 be saying it has gasoline engine. Duh.

No but you can still call it a car with an engine, just as SQLite is a
SQL database, with an SQL engine.

  Furthermore, I'm not responding to Python's representation of one
  thing or another. I am responding to some of the ridiculous and unfair
  criticisms directed at SQLite. Whatever Python did or didn't do, or
  whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
  drug through the mud.

 Sure it does.

No it doesn't. If you don't like SQLite's design decisions, write your
own embedded relational database, and stop yapping about something you
didn't lift a finger to create, but are clearly trying to benefit
from.

 From SQLite Homepage
   documentation
 Available Documentation
   Distinctive Features

 In manifest typing, the datatype is a property of the
 value itself, not of the column in which the value is
 stored. SQLite thus allows the user to store any value
 of any datatype into any column regardless of the declared
 type of that column. (There are some exceptions to this
 rule: An INTEGER PRIMARY KEY column may only store
 integers. And SQLite attempts to coerce values into the
 declared datatype of the column when it can.)

 ***
 * The SQL language specification calls for static typing. *
 ***

It calls for other things that many databases don't implement or
altogether violate as well, so what? Show me how both MS SQL's T-SQL
and Oracle's PL/SQL procedure languages are so standards compliant
that you can use the same procedure code in both databases. You can't
-- precisely because they ignore or outright violate parts of the
standard as well. What's your position on that? Do some Googling and
you can easily find 18 ways that Oracle's PL/SQL deviates from the
standard. And T-SQL is plainly nowhere close.

 A spcification cannot be a bug (unless it is inconsistent
 with other specifications). An implementation can be,
 but a specification cannot.

Then every database implementation, when held up to the SQL standard,
is equally guilty of being buggy and/or incomplete. Name one database
that fully conforms to SQL 2003. Can't name one? Then why single out
SQLite?

  Then what does calling it crappy and goofy suggest?

 It suggests that the SQLite author is a crackpot.

Crackpot? And now we get to why I took the flamebait -- wonderfully
constructive comments such as this.

I know SQLite's author. Besides being a nice and clearly very
intelligent person, he also holds a master's degree in electrical
engineering from Georgia Tech and a PhD in computer science from Duke
University. His crackpot software is used by Sun, Apple, Symbian,
Google, AOL, Philips, DLink, and I don't know how many other
companies, not to mention countless open source projects such as
Mozilla, PHP, and now Python. But I guess they must all be crackpots
too.

It's clear. You're just way too smart for SQLite.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Mike Owens
On 9/11/06, Steve Holden [EMAIL PROTECTED] wrote:

  Furthermore, I'm not responding to Python's representation of one
  thing or another. I am responding to some of the ridiculous and unfair
  criticisms directed at SQLite. Whatever Python did or didn't do, or
  whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
  drug through the mud.
 
 Which is precisely why I took pains to acknowledge that there were many
 purposes for which SQLite is entirely suitable.

Which was objective and diplomatic. Thanks.

 You shouldn't need to
 add check constraints to verify that the value stored in an integer
 column is actually an integer.
 
  You should if your using SQLite, and this is clearly documented:
  http://www.sqlite.org/datatype3.html.
 
 Right. In which case, why bother to define the types of the columns in
 your table declarations?

Actually there is some use for this, so long as the declared types
correspond to one of SQLite's storage classes -- INTEGER, REAL, TEXT,
BLOB, or NONE. When SQLite sees one of these as the declared type, it
will apply some affinity rules for updates/inserts which will
attempt to coerce the input value to that type if possible. So while
this does not give you true strict typing, it does provide you with
something helpful if you code your application with this in mind. As
already mentioned, you will need triggers or check constraints if you
need true strict typing.

  Then what does calling it crappy and goofy suggest?

 That colloquial English expression is acceptable on this list.

And what about some of the other colloquial expressions I saw but didn't repeat?

 Strict affinity mode seems to represent a movement towards more rigorous
 type checking. So the designers of SQLIte accept that it wasn't perfect.
 So what? Please, don't take on so. It's only ones and zeroes.

This is an example of SQLite listening and responding to constructive
feedback. When I first started using SQLite, it didn't have an
autoincrement primary key. I made a case for it, asked nicely, and it
was done in three days. Most people will agree that this approach
tends to work better in most projects, as opposed to calling them
goofy and crappy, or its author a crackpot.

Mike

 regards
   Steve
 --
 Steve Holden   +44 150 684 7255  +1 800 494 3119
 Holden Web LLC/Ltd  http://www.holdenweb.com
 Skype: holdenweb   http://holdenweb.blogspot.com
 Recent Ramblings http://del.icio.us/steve.holden

 --
 http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Steve Holden
Mike Owens wrote:
 On 9/11/06, Steve Holden [EMAIL PROTECTED] wrote:
 
 
Furthermore, I'm not responding to Python's representation of one
thing or another. I am responding to some of the ridiculous and unfair
criticisms directed at SQLite. Whatever Python did or didn't do, or
whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
drug through the mud.


Which is precisely why I took pains to acknowledge that there were many
purposes for which SQLite is entirely suitable.
 
 
 Which was objective and diplomatic. Thanks.
 
Well known for my even temper and cool objective thinking.
My modesty, too ;-)

 
You shouldn't need to
add check constraints to verify that the value stored in an integer
column is actually an integer.

You should if your using SQLite, and this is clearly documented:
http://www.sqlite.org/datatype3.html.


Right. In which case, why bother to define the types of the columns in
your table declarations?
 
 
 Actually there is some use for this, so long as the declared types
 correspond to one of SQLite's storage classes -- INTEGER, REAL, TEXT,
 BLOB, or NONE. When SQLite sees one of these as the declared type, it
 will apply some affinity rules for updates/inserts which will
 attempt to coerce the input value to that type if possible. So while
 this does not give you true strict typing, it does provide you with
 something helpful if you code your application with this in mind. As
 already mentioned, you will need triggers or check constraints if you
 need true strict typing.
 
 
Then what does calling it crappy and goofy suggest?

That colloquial English expression is acceptable on this list.
 
 
 And what about some of the other colloquial expressions I saw but didn't 
 repeat?
 
Well, I'm not going to take responsibility for others' immoderate 
comments, am I? But remember that this is usenet, where generally you 
can count on somewhere between 20% and 80% of what you read being 
somewhere between ill-informed and downright wrong. This group seems to 
have a better record than most, but that just means less crap, not no 
crap ...
 
Strict affinity mode seems to represent a movement towards more rigorous
type checking. So the designers of SQLIte accept that it wasn't perfect.
So what? Please, don't take on so. It's only ones and zeroes.
 
 
 This is an example of SQLite listening and responding to constructive
 feedback. When I first started using SQLite, it didn't have an
 autoincrement primary key. I made a case for it, asked nicely, and it
 was done in three days. Most people will agree that this approach
 tends to work better in most projects, as opposed to calling them
 goofy and crappy, or its author a crackpot.
 
Works better for Python too. Anyway, you seem to be feeling better now, 
so I presume getting it off your chest helped :-)

SQLite will clearly fare well in the future with a responsive 
development team like that.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread [EMAIL PROTECTED]
Mike Owens wrote:
 On 11 Sep 2006 18:23:50 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

  Can you run your car on diesel fuel?
 
  Why not?
 
  Because your car's specification says to use gasoline?
 
  If your car has been designed to run on diesel, you shouldn't
  be saying it has gasoline engine. Duh.

 No but you can still call it a car with an engine, just as SQLite is a
 SQL database, with an SQL engine.

Seperate the data from the engine and what have you got?
Data with dynamic typing. Data that can't be migrated to
a real SQL database because you'll get type mismatches
when strings are inserted into numeric fields. The type affinity
kluge won't help there, will it?


   Furthermore, I'm not responding to Python's representation of one
   thing or another. I am responding to some of the ridiculous and unfair
   criticisms directed at SQLite. Whatever Python did or didn't do, or
   whatever PySQLite does or doesn't do, SQLite doesn't deserve to be
   drug through the mud.
 
  Sure it does.

 No it doesn't. If you don't like SQLite's design decisions, write your
 own embedded relational database, and stop yapping about something you
 didn't lift a finger to create,

It's not the job of the System Test Engineer to design things.
It's his job to find fault with everything. I just happen to be very
good at finding faults with things.

But no one appreciates my finding those faults.

The Emperor is naked and I'm the only one who can see it.

 but are clearly trying to benefit
 from.

  From SQLite Homepage
documentation
  Available Documentation
Distinctive Features
 
  In manifest typing, the datatype is a property of the
  value itself, not of the column in which the value is
  stored. SQLite thus allows the user to store any value
  of any datatype into any column regardless of the declared
  type of that column. (There are some exceptions to this
  rule: An INTEGER PRIMARY KEY column may only store
  integers. And SQLite attempts to coerce values into the
  declared datatype of the column when it can.)
 
  ***
  * The SQL language specification calls for static typing. *
  ***

 It calls for other things that many databases don't implement or
 altogether violate as well, so what? Show me how both MS SQL's T-SQL
 and Oracle's PL/SQL procedure languages are so standards compliant
 that you can use the same procedure code in both databases. You can't
 -- precisely because they ignore or outright violate parts of the
 standard as well. What's your position on that? Do some Googling and
 you can easily find 18 ways that Oracle's PL/SQL deviates from the
 standard. And T-SQL is plainly nowhere close.

And how many of those systems use dynamic typing?


  A spcification cannot be a bug (unless it is inconsistent
  with other specifications). An implementation can be,
  but a specification cannot.

 Then every database implementation, when held up to the SQL standard,
 is equally guilty of being buggy and/or incomplete. Name one database
 that fully conforms to SQL 2003. Can't name one? Then why single out
 SQLite?

Name one where the documentation claims the SQL Language
Specification is a bug.


   Then what does calling it crappy and goofy suggest?
 
  It suggests that the SQLite author is a crackpot.

 Crackpot? And now we get to why I took the flamebait -- wonderfully
 constructive comments such as this.

 I know SQLite's author. Besides being a nice and clearly very
 intelligent person, he also holds a master's degree in electrical
 engineering from Georgia Tech and a PhD in computer science from Duke
 University. His crackpot software is used by Sun, Apple, Symbian,
 Google, AOL, Philips, DLink, and I don't know how many other
 companies, not to mention countless open source projects such as
 Mozilla, PHP, and now Python. But I guess they must all be crackpots
 too.

And a lot of people go to chiropractors. And chiropractors are
nice intelligent people with degrees. And the therapy provided
does good.

Nevertheless, the theory on which it's based is quackery.


 It's clear. You're just way too smart for SQLite.

Did you see my solution to Rick Shepard's problem in the
thread Parsing String, Dictionary Lookups, Writing to 
Database Table?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-11 Thread Gabriel Genellina

At Tuesday 5/9/2006 16:23, [EMAIL PROTECTED] wrote:


I would be surprised if they had never used ANY database. A little
thing like dynamic field typing will simply make it impossible to
migrate your Sqlite data to a *real* database.


Why not? Because it breaks the relational model rules? That model 
certainly was great 30 years ago, but now things are different. (In 
fact, you didn't menction the word relational, but I presume you 
were thinking of that).
Even what you call *real* databases have a lot of incompatibilities 
among them (e.g. ORACLE does not provide an autoincrement type, but 
has sequences, and so on...). Of course you could restrict yourself 
to, by example, SQL92 entry level and be a lot more compatible.
But if I'm using a nice OO language like Python which lets me bind 
*any* object to *any* name, why should be wrong to bind *any* object 
to *any* database column? Looks a lot more pythonic for me. Of 
course, a true object database (like ZODB) is better.




Gabriel Genellina
Softlab SRL 






__
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas


-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Is it just me, or is Sqlite3 goofy?

2006-09-10 Thread Paul Boddie
Dennis Lee Bieber wrote:

  Talking to myself again, I see...

Not quite. ;-)

[...]

  How interesting... With MySQL/MySQLdb I did NOT get exceptions or
 error results on inserting bad numeric data supplied as character string
 format (ie, as read from the CSV). Instead, MySQL SILENTLY converted
 them to ZEROS

  A price of Priceless becomes Decimal(0.00).

  The Customer number of 68 became 0L

This kind of thing is classic MySQL behaviour.

  Which would one rather have to work with -- a database that copied
 invalid numerics as string literals (which, in my mind, makes it much
 easier to correct the data later, using update  set field = correct
 where field = invalid) or a database that silently converts them all to
 0 values. (Of course, I now expect to have a rejoinder about Using a
 REAL database instead of MySQL -- but unless said person wishes to
 start making the same comments about SQLite on at least as regular a
 basis, I believe the objection itself is invalid for this example).

Given subsequent research into SQLite's affinity modes and their
presumed status as future features, the solution in that database
system's case is to apply validation in the driver/module or through
driver extensions, and there is apparently some flexibility in the
pysqlite2 modules for changing the way data types are handled, although
a cursory inspection of the documentation doesn't appear to suggest a
convenient, ready-made solution.

As for MySQL, the situation is possibly more awkward: one expects the
database system to complain about certain things, which it probably
does from time to time, but it would seem wasteful to duplicate
whatever validation the database system does do just to cover those
situations where the system misbehaves.

Paul

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-10 Thread [EMAIL PROTECTED]

Dennis Lee Bieber wrote:
 Guess I lied...

 On Sat, 09 Sep 2006 05:22:20 GMT, Dennis Lee Bieber
 [EMAIL PROTECTED] declaimed the following in comp.lang.python:

   Talking to myself again, I see...

 snip
 rs = cr.execute(insert into invoice_1
 (CustNo, Title, Author, Year, Price)
 values (?,?,?,?,?),
 r)

 Whoops, r = rv, though the exceptions raised made it moot

 rs = cr.execute(insert into invoice_2
 (CustNo, Title, Author, Year, Price)
 values (?,?,?,?,?),
 r)

 Same comment

   Out of curiousity, I converted to using MySQL(db) as a test. As
 expected, the pre-insert validation code worked with same results (well,
 the price was declared decimal, and Python 2.4 appears to handle that as
 a Decimal(value) on return G)

   Now, taking out the pre-validation and type conversion, supplying
 all data as it came from the CSV file:

 -=-=-=-=-=-=-
 Inserting:
 ['066', '101 Ways to Start A Fight', 'some Irish gentleman', '1919',
 '19.95']
 ['032', 'A Sale of Two Titties', 'Charles Dikkens', '1855', '20.00']
 ['001', 'Olsens Standard Book of British Birds (Expurgated)', 'Olsen',
 'None', '99.95']
 ['066', 'Ethel the Aardvark Goes Quantity Surveying', 'None', '1975',
 '9.99']
 ['032', 'David Coperfield', 'Edmund Wells', '1955', '3.95']
 ['68', 'Strawmen and Dorothy', '', '2006', '49.89']
 ['033', The Emperor's Old Clothes, 'Grimm Hound', '1887', 'Priceless']

 Select all from Invoice_1 (CustNo is CHARACTER)
 (1L, '066', '101 Ways to Start A Fight', 'some Irish gentleman', 1919L,
 Decimal(19.95))
 (2L, '032', 'A Sale of Two Titties', 'Charles Dikkens', 1855L,
 Decimal(20.00))
 (3L, '001', 'Olsens Standard Book of British Birds (Expurgated)',
 'Olsen', 0L, Decimal(99.95))
 (4L, '066', 'Ethel the Aardvark Goes Quantity Surveying', 'None', 1975L,
 Decimal(9.99))
 (5L, '032', 'David Coperfield', 'Edmund Wells', 1955L, Decimal(3.95))
 (6L, '68', 'Strawmen and Dorothy', '', 2006L, Decimal(49.89))
 (7L, '033', The Emperor's Old Clothes, 'Grimm Hound', 1887L,
 Decimal(0.00))

 Select all from Invoice_2 (CustNo is INTEGER)
 (1L, 66L, '101 Ways to Start A Fight', 'some Irish gentleman', 1919L,
 Decimal(19.95))
 (2L, 32L, 'A Sale of Two Titties', 'Charles Dikkens', 1855L,
 Decimal(20.00))
 (3L, 1L, 'Olsens Standard Book of British Birds (Expurgated)', 'Olsen',
 0L, Decimal(99.95))
 (4L, 66L, 'Ethel the Aardvark Goes Quantity Surveying', 'None', 1975L,
 Decimal(9.99))
 (5L, 32L, 'David Coperfield', 'Edmund Wells', 1955L, Decimal(3.95))
 (6L, 0L, 'Strawmen and Dorothy', '', 2006L, Decimal(49.89))
 (7L, 33L, The Emperor's Old Clothes, 'Grimm Hound', 1887L,
 Decimal(0.00))
 -=-=-=-=-=-=-

   How interesting... With MySQL/MySQLdb I did NOT get exceptions or
 error results on inserting bad numeric data supplied as character string
 format (ie, as read from the CSV). Instead, MySQL SILENTLY converted
 them to ZEROS

   A price of Priceless becomes Decimal(0.00).

   The Customer number of 68 became 0L


   Which would one rather have to work with -- a database that copied
 invalid numerics as string literals (which, in my mind, makes it much
 easier to correct the data later, using update  set field = correct
 where field = invalid) or a database that silently converts them all to
 0 values. (Of course, I now expect to have a rejoinder about Using a
 REAL database instead of MySQL -- but unless said person wishes to
 start making the same comments about SQLite on at least as regular a
 basis, I believe the objection itself is invalid for this example).

 (Apparently we have fallen afoul of this clause from the old
 O'Reilly/MySQL black/brown book: When asked to store a value in a
 numeric column that is outside the column type's allowable range, MySQL
 clips the value to the appropriate endpoint of the range and stores the
 resulting value instead. -- seems character data clips to zero.


Are you saying that MySQL is goofy? ;-)

Based on these replies, I'm pulling back and retrenching.

As I said before, I'm not entering 500,000 records by writing
INSERT statements for each record, so reading csv files is
a more realistic test. Nevertheless, I am still convinced that
the documentation (or lack thereof) is mainly responsible for
my confusion. I was, after all, mimicing the examples given
(which still have errors).

I think an explanation of how Sqlite3 differs from SQL and
a better set of examples is still warranted.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-09 Thread Kay Schluehr

[EMAIL PROTECTED] wrote:

 I wouldn't be at all surprised if the pysqlite author operated under that
 assumption.  That the Python developers didn't pick up on the issue is not
 surprising.  I'm not sure how many of them are (py)sqlite users, probably
 relatively few.

 Skip

Who has reviewed sqlite/pysqlite after all? Reading the passage in the
sqlite FAQ I can hardly believe that passing errors silently and
coercing everything to string when it fails to be coerced to INTEGER
although INTEGER was an invariant declared in the create command is on
par with Pythons design philosophy. In other cases doctoral
dissertations are written about whether a keyword or some punctuation
shall be used for decorator syntax and in this case everything must be
rushed into the code base of the standard library?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-09 Thread Paul Boddie
Kay Schluehr wrote:


[Quoting Marc 'BlackJack' Rintsch...]

  If you are so fond of static typing, why are you using Python in the first
  place?  Just see it as consistency -- dynamically typed language →
  dynamically typed DB columns.  ;-)

 I have to admit I find this bogus too. It has by no means anything to
 do with static typing but letting errors pass silently i.e.
 deactivating runtime type checks as well.

If the questioner had been talking about Perl, most respondents would
rightly have said that Perl's silent coercion or conversion of values
is an irritating source of potential errors. Here, the behaviour of
SQLite, whilst not as bad as Perl - values are not converted into
something different which is then erroneous - does contradict the naive
expectations of users who expect the data type declarations to mean
something and for such constraints to be enforced.

Of course, the criticism of the questioner should be more forgiving in
this debate, since I imagine that most people with experience of SQLite
know of its loose data typing model, and that many assume that
everyone else is aware of this feature or limitation, even though that
may not be the case. Thus, the priority should be on emphasizing this
in the module documentation (in order to avoid unnecessary confusion),
along with mentioning other possible strategies for emulating other
database system behaviours: Other Affinity Modes in the SQLite
documentation [1] may be helpful here, if the future tense can be
replaced with the present tense whilst preserving the factual content
of that section.

Paul

[1] http://www.sqlite.org/datatype3.html

-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Is it just me, or is Sqlite3 goofy?

2006-09-08 Thread A.M. Kuchling
I've made the following edits:

Index: whatsnew25.tex
===
--- whatsnew25.tex  (revision 51828)
+++ whatsnew25.tex  (working copy)
@@ -2116,14 +2116,16 @@
 SQLite embedded database, has been added to the standard library under
 the package name \module{sqlite3}.

-SQLite is a C library that provides a SQL-language database that
-stores data in disk files without requiring a separate server process.
+SQLite is a C library that provides a lightweight disk-based database
+that doesn't require a separate server process and allows accessing
+the database using a nonstandard variant of the SQL query language.
+Some applications can use SQLite for internal data storage.  It's also
+possible to prototype an application using SQLite and then port the
+code to a larger database such as PostgreSQL or Oracle.
+
 pysqlite was written by Gerhard H\aring and provides a SQL interface
 compliant with the DB-API 2.0 specification described by
-\pep{249}. This means that it should be possible to write the first
-version of your applications using SQLite for data storage.  If
-switching to a larger database such as PostgreSQL or Oracle is
-later necessary, the switch should be relatively easy.
+\pep{249}.

 If you're compiling the Python source yourself, note that the source
 tree doesn't include the SQLite code, only the wrapper module.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-08 Thread [EMAIL PROTECTED]
Magnus Lycka wrote:
 While I can understand your frustration, I think it is
 important to think about the tone in our postings here.
 Hydrocephalus is one of the most common birth defects,
 and it's not terribly unlikely that someone who reads
 this has a family member or someone else in his proximity
 who suffers from this condition.

Ok, I appologize. No more Larry the Cable Guy humor.
I'll stick with Monty Python and Douglas Adams.


 [EMAIL PROTECTED] wrote:
  Fixed? Up until now, I didn't think it was possible for
  crackpot theories to be implemented in computer science.
  This is absolutely the craziest thing I've ever heard.

 Still, many people with lots of experience in databases
 use it, and prefer it for certain kinds of applications.
 All systems have limitations and deviations, and those
 limitations and deviations are stated more clearly for
 SQLite than for most commercial products at least.

But they're not stated up front. The deviations from
standard SQL are extreme enough to warrant mentioning
in the Python docs.

 The
 market leader Oracle still can't store empty strings in
 VARCHAR fields for instance. They are silently converted
 to NULL. I'm pretty sure that has been in clear violation
 to the official spec since 1986 at least.

But does Oracle claim the specification is a bug?


 As far as I understand, noone here is forcing you to use
 SQLite,

As long as it's included in the standard library, I'm going
to use it. There is nothing wrong with the idea of a lite
database. It is very misleading, though, to claim it's SQL.

 and with your long experience of MS Access I'd
 expect you to be fairly used to almost SQL... It's
 some time since I used Jet/Access now, but I had much
 more problems with that than I've had with SQLite.

 SQLite is built in Tcl, by someone who appreciates the
 way Tcl works, with its weak typing. I don't think Tcl's
 type handling is nearly as clever as Python's, but I
 think it's a good thing that Python's standard lib finally
 has a DB-API compliant module, and while I would have
 preferred something that was closer to standard SQL, I
 don't know of a better candidate than SQLite.

 It's good that it's usable without a server setup, and
 that it's very light weight. A Jet engine is obviously
 not an option, and I would have preferred SQLite even
 if Jet was open source and worked on all platforms.
 (Well, if JET *was* open source, I suspect it would
 have been fixed by now.) It's possible that one could
 have used the embedded version of Firebird instead, but
 in my experience that's not nearly as lean or easy to
 deploy.

 With your long experience of Access and SQL Server I'm
 sure you know well that any attempt to build a working
 database application requires extensive knowledge of
 the backend to understand its peculiarities and
 limitations.

 The list of software projects where not quite competent
 developers built Access applications that worked ok in
 small scale tests and failed catastrophically in real
 life is looong...

 Of course, if you've stayed with one vendor for 15 years,
 I can imagine that you've forgotten how long it took you
 Having worked with half a dozen backends or so, I'm no
 longer surprised that SQL can be interpreted in so many
 ways... I agree that SQLite is unique in it's approach
 to typing, but if you are aware of this, it's really not
 a big problem.

Ok, I'm now aware of it.

I'm aware that all my WHERE clauses will have to be
modified to allow for text that may show up in my numeric
fields.

I'm aware that all my ORDER BY clauses will have to
be modified for the same reason.

And I'm aware that INNER JOIN doesn't even work in
theory with dynamic typed fields and can't even be
worked around like the WHERE and ORDER BY clauses
can.

And given a typical query I use:

SELECT tblLocations.SiteID,
   tblSites.SiteName,
   tblLocations.IEPALocationNumber,
   tblZones.Zone,
   tblSampleEvent.SampleEventCode,
   tblSampleAnalyses.SampleDate,
   tblSamples.SampleMatrixID,
   tblSamples.SampleNumber,
   tblRefQAQCTypes.QAQCType,
   tblResults.LabSampleNumber,
   tblRefParameterGroups.ParameterGroupCode,
   tblSampleAnalyses.AnalysisID,
   tblRefAnalyses.AnalysisTypeCode,
   tblRefParameters.ParameterReportLabel,
   tblRefParameters.CASNumber,
   tblResults.Result,
   tblResults.Qualifier,
   tblRefUnitOfMeasure.Unit,
   Val(Format$(IIf(([tblResults].[unitid]=5) Or
   ([tblResults].[unitid]=7),
[result]/1000,[result]),
 0.))
   AS the_ppm_result,
   IIf([tblResults].[unitid]=7,mg/kg,
   IIf([tblResults].[unitid]=5,mg/L,
   [unit]))
   AS the_ppm_unit,
   Val(Format$(IIf(([tblResults].[unitid]=5) Or
   ([tblResults].[unitid]=7),
[quantitationlimit]/1000,
[quantitationlimit]),0.))
   AS 

Re: Is it just me, or is Sqlite3 goofy?

2006-09-08 Thread Paul Rubin
[EMAIL PROTECTED] [EMAIL PROTECTED] writes:
 As long as it's included in the standard library, I'm going
 to use it. There is nothing wrong with the idea of a lite
 database. It is very misleading, though, to claim it's SQL.

Maybe it could be renamed by changing the t in lite to k.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-08 Thread Kay Schluehr
  It's not a bug, it's a feature.  And answered as third point in the
FAQ:

 http://www.sqlite.org/faq.html#q3

 I think your whole experience is based on it.  Live with it or use a
 real RDBMS.

 If you are so fond of static typing, why are you using Python in the first
 place?  Just see it as consistency -- dynamically typed language →
 dynamically typed DB columns.  ;-)

 Ciao,
   Marc 'BlackJack' Rintsch

I have to admit I find this bogus too. It has by no means anything to
do with static typing but letting errors pass silently i.e.
deactivating runtime type checks as well. The problem here is that
fields are not dynamically type checked but completely untyped and only
coercion hints are present. Using a clever coercion / type-affinity
does not justify that there is no error case handling when the coercion
fails. This might be handled by user code ( or better by the pysqlite
wrapper ) but it appears to be redundant.

-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Is it just me, or is Sqlite3 goofy?

2006-09-06 Thread Steve Holden
[EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
 
I think your whole experience is based on it.

 But shouldn't a significant feature like that be explained in the
 Python manuals? Why should I go dig up Sqlite FAQs to learn what
 should have been in the manuals?

I don't know, but I will take a stab at a plausible explanation.  First,
sqlite support has only been in Python for a month or three.  Its first
official unveiling will be when 2.5 is released.
 
 
 Although possibly too late for the final release, now would be a
 good time to straighten out the documentation.
 
And you would be the best person to do it, since you're teh one this has 
bitten in the tender parts.

 
Second, it's common when
wrapping functionality into Python to rely on the documentation for the
thing being wrapped.  The thinner the wrapper, the more you tend to rely on
the underlying documentation.  Also, the more functionally rich the thing
you've wrapped, the more you rely on the underlying documentation.  I
wouldn't be at all surprised if the pysqlite author operated under that
assumption.
 
 
 Ok, that's certainly plausible. But it's not an excuse. The thinner the
 documentation, the greater the emphasis should be made to point
 the reader to a more adequate source. Simply listing the Sqlite home
 page at the bottom of the page is hardly good enough. It should be
 explicitly stated in bold letters that the reader should go read the
 Sqlite FAQ because it radically differs from *real* databases and
 provide a seperate link to it in the body of the documentation.
 
Whoa, there! This isn't commercial software we are talking about. While 
I appreciate the need to continually better Python's documentation, the 
should implies a moral imperative that the (volunteer) developers are 
unikely to find compelling.
 
That the Python developers didn't pick up on the issue is not
surprising.  I'm not sure how many of them are (py)sqlite users, probably
relatively few.
 
 
 I would be surprised if they had never used ANY database. A little
 thing like dynamic field typing will simply make it impossible to
 migrate your Sqlite data to a *real* database.
 
 What I'll do is re-format my rant, suggest how *I* would do the
 documentation, fix the errors I found in the examples and send it
 off to the Python bug tracking as suggested in the manuals.
 
 How's that as a plan?

That's the ticket. Great idea. Changes to the documentation can be 
suggested in plain ASCII, you don't have to grok the LaTeX markup.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-06 Thread Steve Holden
[EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
 
I think your whole experience is based on it.

 But shouldn't a significant feature like that be explained in the
 Python manuals? Why should I go dig up Sqlite FAQs to learn what
 should have been in the manuals?

I don't know, but I will take a stab at a plausible explanation.  First,
sqlite support has only been in Python for a month or three.  Its first
official unveiling will be when 2.5 is released.
 
 
 Although possibly too late for the final release, now would be a
 good time to straighten out the documentation.
 
And you would be the best person to do it, since you're the one this has 
bitten in the tender parts.

 
Second, it's common when
wrapping functionality into Python to rely on the documentation for the
thing being wrapped.  The thinner the wrapper, the more you tend to rely on
the underlying documentation.  Also, the more functionally rich the thing
you've wrapped, the more you rely on the underlying documentation.  I
wouldn't be at all surprised if the pysqlite author operated under that
assumption.
 
 
 Ok, that's certainly plausible. But it's not an excuse. The thinner the
 documentation, the greater the emphasis should be made to point
 the reader to a more adequate source. Simply listing the Sqlite home
 page at the bottom of the page is hardly good enough. It should be
 explicitly stated in bold letters that the reader should go read the
 Sqlite FAQ because it radically differs from *real* databases and
 provide a seperate link to it in the body of the documentation.
 
Whoa, there! This isn't commercial software we are talking about. While 
I appreciate the need to continually better Python's documentation, the 
should implies a moral imperative that the (volunteer) developers are 
unlikely to find compelling.
 
That the Python developers didn't pick up on the issue is not
surprising.  I'm not sure how many of them are (py)sqlite users, probably
relatively few.
 
 
 I would be surprised if they had never used ANY database. A little
 thing like dynamic field typing will simply make it impossible to
 migrate your Sqlite data to a *real* database.
 
 What I'll do is re-format my rant, suggest how *I* would do the
 documentation, fix the errors I found in the examples and send it
 off to the Python bug tracking as suggested in the manuals.
 
 How's that as a plan?

That's the ticket. Great idea. Changes to the documentation can be 
suggested in plain ASCII, you don't have to grok the LaTeX markup.

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-06 Thread Bruno Desthuilliers
[EMAIL PROTECTED] wrote:
(snip)
 But shouldn't a significant feature like that be explained
 in the Python manuals? 

Why should it ? It's a SQLite feature, not a Python one.

 Why should I go dig up Sqlite
 FAQs to learn what should have been in the manuals?

Why should you read the manuals at all then ?


 Live with it or use a real RDBMS.
 
 I don't mind living with it as long as it's documented.

It is. In SQLite manual. Or do you hope the Python manual to also fully
document PostgreSQL, MySQL, Oracle, Apache, Posix, Win32 etc ?


-- 
bruno desthuilliers
python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '[EMAIL PROTECTED]'.split('@')])
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-06 Thread Ben Sizer
Bruno Desthuilliers wrote:
 [EMAIL PROTECTED] wrote:
  I don't mind living with it as long as it's documented.

 It is. In SQLite manual. Or do you hope the Python manual to also fully
 document PostgreSQL, MySQL, Oracle, Apache, Posix, Win32 etc ?

With those other applications, you have a separate download. With
sqlite, you don't, on Windows at least. Surely all the 'included
batteries' should have local documentation, especially with the type
conversions.

-- 
Ben Sizer

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-06 Thread Tim Roberts
Bruno Desthuilliers [EMAIL PROTECTED] wrote:

[EMAIL PROTECTED] wrote:
(snip)
 But shouldn't a significant feature like that be explained
 in the Python manuals? 

Why should it ? It's a SQLite feature, not a Python one.

You have missed the key point that, as of Python 2.5, SQLite 3 is part of
the Python 2.5 standard library.  So, at this point, it IS a Python
feature.

 I don't mind living with it as long as it's documented.

It is. In SQLite manual. Or do you hope the Python manual to also fully
document PostgreSQL, MySQL, Oracle, Apache, Posix, Win32 etc ?

Warning: misplaced sarcasm detected
-- 
- Tim Roberts, [EMAIL PROTECTED]
  Providenza  Boekelheide, Inc.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread Steve Holden
[EMAIL PROTECTED] wrote:
 Probably just me. I've only been using Access and SQL Server
 for 12 years, so I'm sure my opinions don't count for anything.
[...]
 
 Ok, next issue, what the fuck are [varchar] and [decimal]?
[..]
 
 It's still fuckin' goofy.
 
Language ...

regards
  Steve
-- 
Steve Holden   +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd  http://www.holdenweb.com
Skype: holdenweb   http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread Bruno Desthuilliers
[EMAIL PROTECTED] wrote:
 Probably just me. I've only been using Access and SQL Server
 for 12 years, so I'm sure my opinions don't count for anything.
 

SQLite never pretended to be a full-blown RDBMS - just a lightweight
simple embedded database as SQL-compliant as possible. In it's category,
it beats Access and MySQL hands down. Now if you want a real RDBMS,
you've just failed to choose the right tool. May I suggest PostgreSQL ?

(snip useless rant)

-- 
bruno desthuilliers
python -c print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in '[EMAIL PROTECTED]'.split('@')])
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread [EMAIL PROTECTED]

Marc 'BlackJack' Rintsch wrote:
 In [EMAIL PROTECTED],
 [EMAIL PROTECTED] wrote:

  But watch this: being clueless (but not stupid) is a gift I have
  for troubleshooting. I tried (incorrectly) to insert another record:
 
  cur.execute(insert into book(title, author, published) values ('Dirk
  Gently''s Holistic Detective Agency','Douglas Adams','1987'))
 
  (uDirk Gently's Holistic Detective Agency, u'Douglas Adams', 1987)
  (uDirk Gently's Holistic Detective Agency, u'Douglas Adams', u'1987')
 
  Uhh...how can a database have a different field type for each record?
 
  Simple, without a cast when the table is created, the field type is
  whatever you insert into it. That's how the default must work,
  each record has a data structure independent of every other record!
 
  Wow. Just think of the kind of bugs *that* must cause.
 
  Bugs?

 It's not a bug, it's a feature.  And answered as third point in the FAQ:

 http://www.sqlite.org/faq.html#q3

Oh, so it is This behaviour is by design.


 I think your whole experience is based on it.

But shouldn't a significant feature like that be explained
in the Python manuals? Why should I go dig up Sqlite
FAQs to learn what should have been in the manuals?

 Live with it or use a real RDBMS.

I don't mind living with it as long as it's documented.


 If you are so fond of static typing, why are you using Python in the first
 place?  Just see it as consistency -- dynamically typed language →
 dynamically typed DB columns.  ;-)

Did you miss this statement in Section 13.13?

If switching to a larger database such as PostgreSQL or Oracle
is later necessary, the switch should be relatively easy. 

Obviously, this is a new useage of relatively easy with which
I have been previously unaware.

 
 Ciao,
   Marc 'BlackJack' Rintsch

-- 
http://mail.python.org/mailman/listinfo/python-list

Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread skip

 I think your whole experience is based on it.

 But shouldn't a significant feature like that be explained in the
 Python manuals? Why should I go dig up Sqlite FAQs to learn what
 should have been in the manuals?

I don't know, but I will take a stab at a plausible explanation.  First,
sqlite support has only been in Python for a month or three.  Its first
official unveiling will be when 2.5 is released.  Second, it's common when
wrapping functionality into Python to rely on the documentation for the
thing being wrapped.  The thinner the wrapper, the more you tend to rely on
the underlying documentation.  Also, the more functionally rich the thing
you've wrapped, the more you rely on the underlying documentation.  I
wouldn't be at all surprised if the pysqlite author operated under that
assumption.  That the Python developers didn't pick up on the issue is not
surprising.  I'm not sure how many of them are (py)sqlite users, probably
relatively few.

Skip
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread [EMAIL PROTECTED]

[EMAIL PROTECTED] wrote:
  I think your whole experience is based on it.

  But shouldn't a significant feature like that be explained in the
  Python manuals? Why should I go dig up Sqlite FAQs to learn what
  should have been in the manuals?

 I don't know, but I will take a stab at a plausible explanation.  First,
 sqlite support has only been in Python for a month or three.  Its first
 official unveiling will be when 2.5 is released.

Although possibly too late for the final release, now would be a
good time to straighten out the documentation.

 Second, it's common when
 wrapping functionality into Python to rely on the documentation for the
 thing being wrapped.  The thinner the wrapper, the more you tend to rely on
 the underlying documentation.  Also, the more functionally rich the thing
 you've wrapped, the more you rely on the underlying documentation.  I
 wouldn't be at all surprised if the pysqlite author operated under that
 assumption.

Ok, that's certainly plausible. But it's not an excuse. The thinner the
documentation, the greater the emphasis should be made to point
the reader to a more adequate source. Simply listing the Sqlite home
page at the bottom of the page is hardly good enough. It should be
explicitly stated in bold letters that the reader should go read the
Sqlite FAQ because it radically differs from *real* databases and
provide a seperate link to it in the body of the documentation.

 That the Python developers didn't pick up on the issue is not
 surprising.  I'm not sure how many of them are (py)sqlite users, probably
 relatively few.

I would be surprised if they had never used ANY database. A little
thing like dynamic field typing will simply make it impossible to
migrate your Sqlite data to a *real* database.

What I'll do is re-format my rant, suggest how *I* would do the
documentation, fix the errors I found in the examples and send it
off to the Python bug tracking as suggested in the manuals.

How's that as a plan?

 
 Skip

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-05 Thread skip

 What I'll do is re-format my rant, suggest how *I* would do the
 documentation, fix the errors I found in the examples and send it off
 to the Python bug tracking as suggested in the manuals.

 How's that as a plan?

That's fine.  Reformat your rant as a documentation bug report on
SourceForge:

http://sourceforge.net/projects/python

If you mention specific sqlite documentation urls you think should be
referenced in the pysqlite docs it would make it easier to accept.

Skip

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Is it just me, or is Sqlite3 goofy?

2006-09-04 Thread Marc 'BlackJack' Rintsch
In [EMAIL PROTECTED],
[EMAIL PROTECTED] wrote:

 But watch this: being clueless (but not stupid) is a gift I have
 for troubleshooting. I tried (incorrectly) to insert another record:
 
 cur.execute(insert into book(title, author, published) values ('Dirk
 Gently''s Holistic Detective Agency','Douglas Adams','1987'))
 
 (uDirk Gently's Holistic Detective Agency, u'Douglas Adams', 1987)
 (uDirk Gently's Holistic Detective Agency, u'Douglas Adams', u'1987')
 
 Uhh...how can a database have a different field type for each record?
 
 Simple, without a cast when the table is created, the field type is
 whatever you insert into it. That's how the default must work,
 each record has a data structure independent of every other record!
 
 Wow. Just think of the kind of bugs *that* must cause.
 
 Bugs?

It's not a bug, it's a feature.  And answered as third point in the FAQ:

http://www.sqlite.org/faq.html#q3

I think your whole experience is based on it.  Live with it or use a
real RDBMS.

If you are so fond of static typing, why are you using Python in the first
place?  Just see it as consistency -- dynamically typed language →
dynamically typed DB columns.  ;-)

Ciao,
Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list