[Phpmyadmin-devel] New SQL Parser - now mostly complete

Hi List, The new SQL parser is functional now, and very capable as well as fast. Again I am looking for hints and ideas about PHP3 incompatibilites if there are any in my code (I'm not sure). http://games.techbc.ca/~robbat2/sqlparse.php If there is some long and convoluted but still valid query that you want me to test my code on, please send it my way. Check out the LARGE_* query tests before you do though. I'd like suggestions on how to make it even faster on the huge query sets, like the SQL_MS_SQL* tests that I have in the test harness. The current code now uses absoltely NO Regex or PCRE functions, and does nearly everything via strings with a few arrays. I'd also like suggestions on what we want the indenting to look like, so that I can code it in as well. Any specific preferences? The only thing that remains in my code is more SQL validator, which is mainly for the structure, like missing brackets/quotes etc. I don't think I will do validation of the keywords or number of function arguments. -- Robin Hugh Johnson E-Mail : robbat2@orbis-terrarum.net Home Page : http://www.orbis-terrarum.net/?l=people.robbat2 ICQ# : 30269588 or 41961639

Robin, very cool! Robin Johnson wrote:
Hi List,
The new SQL parser is functional now, and very capable as well as fast. Again I am looking for hints and ideas about PHP3 incompatibilites if there are any in my code (I'm not sure).
If nobody can test it under PHP3 before 2.3.0-final,I would say: just check the PHP version and do not parse if < PHP4, because PHP3 users can live without coloring :)
http://games.techbc.ca/~robbat2/sqlparse.php
If there is some long and convoluted but still valid query that you want me to test my code on, please send it my way. Check out the LARGE_* query tests before you do though.
You made a good test case, and I would not be afraid to merge this code, so that masses of users can test convoluted queries on it :) But can you
I'd like suggestions on how to make it even faster on the huge query sets, like the SQL_MS_SQL* tests that I have in the test harness.
The current code now uses absoltely NO Regex or PCRE functions, and does nearly everything via strings with a few arrays.
I'd also like suggestions on what we want the indenting to look like, so that I can code it in as well. Any specific preferences?
This is only a suggestion (for future versions?): when I look your FUNC_1 test, the raw version, I see SELECT job,dept.loc,AVG(sal) FROM emp,dept WHERE dept.deptno=emp.deptno GROUP BY dept.loc,job ORDER BY 3 and this is exactly the way I like to code my queries. Now, I would like to see the color output formatted like the raw version, only with colors added. A newline after each major sections of a SELECT. The same thing applies to an insert: start the VALUES on a new line, and put each record on a different line.
The only thing that remains in my code is more SQL validator, which is mainly for the structure, like missing brackets/quotes etc. I don't think I will do validation of the keywords or number of function arguments.
-- Marc Delisle
participants (2)
-
Marc Delisle
-
Robin Johnson