On 23 Jan 2007, at 18:14, Derek Wright wrote:
His argument is IIRC that we should stick to as plain SQL as possible to not further increase the barrier of entry for people already knowing SQL.
the main problem with this argument is the there's no "Standard" in the "Standard Query Language" for table creation and schema modifications across all the databases. so, while anyone who knows any variant of SQL (preferably the ANSI standard) can write SELECT and UPDATE and JOIN and the rest, you *have* to have DB-specific knowledge to create tables and add/remove/alter indexes or columns. to me, the lack of a standard here is the central point -- if there was a standard a) our situation would be totally different and b) we wouldn't need an abstraction layer.
The quality of this discussion has increased a lot since we discussed this last time for Drupal 5.0. Great! The 'database scheme definition' vs 'standard query language' (or 'data manipulation language') argument make sense to me -- although it would be great if you had pointers to references. Either way, I'm willing to reverse my position on creating database abstraction functions for create or altering SQL tables -- but not to build SELECT/UPDATE/INSERT queries. We'll want to document some of the knowledge captured in this thread in the code comments -- it doesn't hurt to explain our design goals/ decisions. -- Dries Buytaert :: http://www.buytaert.net/