Browse Source

* 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 -
reiniero 11 years ago
parent
commit
7275f30360
2 changed files with 17 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 16 0
      packages/fcl-db/src/sql/README.txt

+ 1 - 0
.gitattributes

@@ -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

+ 16 - 0
packages/fcl-db/src/sql/README.txt

@@ -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).