[Phpmyadmin-devel] Parser / analyzer rewrite

Dan Ungureanu udan1107 at gmail.com
Mon Mar 9 09:31:33 CET 2015


I have been using phpMyAdmin for years now and seeing that phpMyAdmin is a
mentoring organisation for Google's Summer of Code, I thought of it as a
great opportunity for me to get invloved in the community as a developer.

I am interested in the parser and the analyzer of SQL queries of
phpMyAdmin. For the past days, I have been looking for a replacement
library, but, unfortunately I was not able to find a suitable one. I came
to the conclusion that this vital part of phpMyAdmin would benefit a lot
from a rewrite.

Most of the current parsing libraries I found are no longer mantained;
phpMyAdmin already has a huge codebase and adding even more code would be a
pain in terms of maintainability. Huge fragments of code that are using the
current `sqlparser` library would require changes as well. Moreover, the
parser is an important part of the core and it has to be optimised, but
flexible. From my experience, most libraries focus more on flexibility and
tend to abstractize a lot, which might increase the overall complexity of
the code.

A few goals I would like to accomplish by rewriting are:

- Modularize the code. What I mean is splitting the library into a lexer, a
parser and other miscellaneous modules (e.g. query tester, builder,
exporter etc.). In my opinion, this is one of the most important targets.
Not only will the code be a lot more easier to understand and extend, but
it will be a step closer to an object-oriented programmed phpMyAdmin.

- Find a better algorithm, in terms of speed and attention paid to detail
as well (ANSI, traditional, strict checking).

- Implement new features. So far, I browsed through current tickets and
came up with a list of issues that will potentially be fixed.


I am looking for feedback, so please don't hesitate to send me any
suggestion you might have!

Best regards,
Dan Ungureanu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20150309/c951cc78/attachment.html>

More information about the Developers mailing list