* fcl-db: readme for sql parser/scanner/lexer; based on Michael's message http://www.mail-archive.com/fpc-devel%40lists.freepascal.org/msg18680.html

git-svn-id: trunk@27853 -
This commit is contained in:
reiniero 2014-06-05 08:15:37 +00:00
parent c76dedfd31
commit 7275f30360
2 changed files with 17 additions and 0 deletions

1
.gitattributes vendored
View File

@ -2140,6 +2140,7 @@ packages/fcl-db/src/sdf/testfix.pp svneol=native#text/plain
packages/fcl-db/src/sdf/testsdf.pp svneol=native#text/plain
packages/fcl-db/src/sql/Makefile svneol=native#text/plain
packages/fcl-db/src/sql/Makefile.fpc svneol=native#text/plain
packages/fcl-db/src/sql/README.txt svneol=native#text/plain
packages/fcl-db/src/sql/fpsqlparser.pas svneol=native#text/plain
packages/fcl-db/src/sql/fpsqlscanner.pp svneol=native#text/plain
packages/fcl-db/src/sql/fpsqltree.pp svneol=native#text/plain

View File

@ -0,0 +1,16 @@
SQL scanner/parser/Abstract Syntax Tree units
This can parse the complete Firebird dialect 3 SQL syntax(which should come pretty close to SQL-92) and builds a syntax tree from it. The Abstract Syntax Tree can re-create the SQL with limited formatting support.
It comes with extensive test suite (over 750 testcases; see the fcl-db\tests directory). It has been tested on almost 400,000 SQL statements. Nevertheless bugs may remain, so any test results you may produce are welcome. Especially the GRANT/REVOKE statements are tested only theoretically.
The scanner/parser have been set up so they should be able to cope with other SQL dialects (using a set of flags) such as MySQL, but this support is currently not implemented.
The purpose is 3-fold:
- Add SQL syntax checking to property editors in the Lazarus IDE.
- Add reverse engineering of database creation scripts to the
Lazarus Database Desktop (and change the SQL generation to use
the abstract syntax tree)
- Add the ability to reliably alter queries at runtime.
(adding fields, filters and whatnot).