[TYPO3-project-4-3] Deprecating SQL parser in TYPO3 4.3

Xavier Perseguers typo3 at perseguers.ch
Mon Nov 2 20:46:00 CET 2009


Hi,

I hope to get some (positive) feedback here as I did not mention the word "DBAL" in title (ouch I did it anyway with my first few words :D).

OK. Once again, even with DBAL "outside" of Core, there is a real problem to get patch committed to trunk when it comes to issues that occur "only" when using DBAL.

Here is some extract from a discussion I had today with Karsten about what to do with SQL parser included in Core. I'm not speaking about the parser used to allow modifications of the database 
structure (CREATE TABLE, ALTER TABLE, ...) but the SELECT/INSERT/UPDATE parser which is used when installing DBAL but not when using MySQL only.

 > I would probably remove the code from core. [...] that should mean less probability for errors
 >
 > When Kasper put that code in place back in 2004 we all thought/hoped that people would go crazy
 > writing DB handlers, but that has not happened.
 >
 > Time to move the code into the right place, I'd say. And that is DBAL.

There is currently 3 patches waiting in Core that are related to DBAL:

- RFC #10411: sqlparser is not able to parse more than 1 join
- RFC #12231: New caching framework (4.3-dev) does not work with DBAL (oracle)
- RFC #5120 / #8915: SQL parse error in "Who is online" BE list

Needless to say that you'll easily understand that it's a pain not being able to reasonably quickly get feedback when I (or someone else) take time to fix gremlins (I think of RFC 5120 for instance).

I don't want to blame anybody, that's really not the point here. The point is to propose what I think is a viable solution (Karsten approved):

- Don't fix SQL parser in Core, copy relevant part into DBAL and fix bugs there as it is DBAL-related only
- Keep class in Core but log method calls that are known not to be used in Core itself but only in DBAL, just to be sure they are not needed. If no log arrises (which should be the case), then 
deprecate it/remove it. We might deprecate it right now as well.

I don't really need +1 for this to happen, it's easy to fix bugs in DBAL and leave Core with unmaintained methods. I prefer not doing this "in secret".

Now, I still need some feedback for bugs we (the DBAL team and its surrounded people) found and fix when it comes to DBAL use. I think of RFC #5120 / #8915. This is easily tested with NO DBAL install 
*at all*! Simply apply patch, go to BE module to see who is online, see that it still work as before for your MySQL install, give your +1 by testing because you don't see any change and let us be 
happy that yet another bug could be fixed to make DBAL work better.

Just read DBAL SVN log to see how it was enhanced and made more reliable since real bug fixing sessions can be made much more efficient by having it as "external" project. This is a great subproject 
of this highly loved CMS, be cool and let this story keep living!

Thanks.

-- 
Xavier Perseguers
http://xavier.perseguers.ch/en

One contribution a day keeps the fork away


More information about the TYPO3-project-4-3 mailing list