Marijn,
I was talking with a friend about Submarine and Postmodern and he complained about the fact that Postmodern (and thus Submarine) are PostgreSQL specific. I agreed that this is a shame: for some smaller projects Postgres is a bit overkill and you may want to use something smaller, like SQLite.
You write in your docs that "...postmodern has no intention of being portable across different SQL implementations (it embraces non-standard Postgres features)." What do you mean by that? Is there anything Postgres specific outside of CL-POSTGRES? How difficult do you think it would be to port Postmodern to SQLite? (And: how long did it take to write CL-POSTGRES?)
Cheers,
-- Richard
Hello Ryszard,
As you are probably aware, the SQL standard is quite limited, and all database systems I've ever used go beyond it and provide extra functionality. They tend to all use different syntax for these extensions, and provide slightly different ones, so I didn't want to bother with making my library support these different syntaxes or be some kind of lowest common denominator -- partially because I am lazy, and partially because I think PostgreSQL is a very solid system which is pretty easy to set up -- there is rarely a very strong need to use anything else.
I am afraid that I couldn't quite give a precise list of Postgres-specific features that Postmodern uses, but just writing a cl-postgres replacement for SQLite will definitely not be enough -- that only concerns the client/server protocol, and doesn't solve the problem of SQL syntax and differences in supported features.
I have no idea how well the SQLite interface is documented, and whether you'd want to implement it in CL or use FFI. Postgres has good documentation about its protocol, so after studying that, writing the client was not that hard (apart from having to implement some stuff like binary floating point decoding).
Cheers, Marijn
postmodern-devel@common-lisp.net