Hi!

On Aug 4, 2008, at 12:27 PM, Daniel Fischer wrote:

With antlr, I'd assume? You should use it to replace drizzle's parser, so we can get query rewriting on the AST level ;-)


The secret plan :)

In fact, I fully plan to do just that. For a long time now, I wanted to have the opportunity to modularize the parser code so we can have multiple ones: One for raw speed, one for funky things and most importantly one which is not SQL ;)

The first step here would be to make a clean API out of the current (YACC-)action-based calls to the items classes and then separate the parser out into a module.

It goes further than that, of course. With a little work the protocol can be extended to request a certain parser for a request which would greatly enhance the flexibility of drizzle (and MySQL of course, too).

This is also the way I intend to bring back "prepared" statements, but on the client: Parsing happens on the client and all that gets sent is a flattened tree. Much simpler to parse because there are no string operations involved. The downside is that validating a parse tree can be tricky and allowing it is possibly a security risk. Much easier to provoke crashes by sending a faulty tree than a faulty string. We'll see.

I've also wondered about the merit of using a bytecode format for statements instead of a parse tree, but that's even further down the line.

cheers,
-k
--
Kay Roepke
Software Engineer, MySQL Enterprise Tools

Sun Microsystems GmbH    Sonnenallee 1, DE-85551 Kirchheim-Heimstetten
Geschaeftsfuehrer: Thomas Schroeder, Wolfang Engels, Dr. Roland Boemer
Vorsitz d. Aufs.rat.: Martin Haering                    HRB MUC 161028


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to