Summary: A parser, pretty printer, and type checker for PostgreSQL SQL and PL/pgSQL. BSD licensed. ** Some of the documentation here and in the other files is out of date, will be updated before the first alpha release. Please email me (address below) if you have any questions in the meantime ** The current aims of the project is to provide a parser and type checker for a substantial portion of PostgreSQL SQL and PL/pgSQL, and then hopefully to build on this to make tools and libraries to help developing PL/pgSQL code. Status: it successfully parses and accurately pretty prints the three moderate sized SQL files from another project of mine, but there are lots of missing bits. Coverage of SQL is sort of reasonable - it's possible that your SQL files will parse ok, but it's also possible that they won't parse at all. Please report any sql which doesn't parse. It also has the beginnings of a type checker, which currently can type check a fair bit of the three files mentioned above. You can run the type checker on your SQL in various ways from the command line. Please report any sql which doesn't type check correctly. Coming soon: a command to produce a report on how well this code can parse and type check your sql. It comes with a small test suite. To install, use cabal update then cabal install hssqlppp I think it should work on all GHC 6.10.x and possibly also GHC 6.8.x, YMMV. GHC 6.12.x untested so far. There are more doc files in the docs/ folder, and you can view the haddock docs on hackage (see below for link). Better documentation is coming soon. The main dependencies of this project are: Parsec 3, HUnit, HDBC, UUAGC. You currently need PostgreSQL installed. ================================================================================ Homepage There isn't really a homepage or website yet, but you can view the Launchpad page where the code is hosted, and the HackageDB page. Launchpad: http://launchpad.net/hssqlppp/ HackageDB page: http://hackage.haskell.org/package/hssqlppp You can also browse the limited Haddock documentation online here. You can get the latest development code from Launchpad using Bazaar: bzr branch lp:~jakewheat/hssqlppp/trunk To get a snapshot release, see the downloads on the Launchpad page, or use cabal install. ================================================================================ Contact Let me know if you're using/ interesting in using the library, if you have any problems or suggestions, etc.. All contributions, comments and criticism welcome: jakewheatmail@gmail.com You can also report problems on the bug tracker on Launchpad. ================================================================================ = Some provisional future plans: * use this system to develop a Lint-type checker for PL/pgSQL; * provide support to help developing SQL from an IDE (targeting Emacs mainly) * support type checking simple SQL statements that you'd embed in Haskell code, including with ? placeholders, to support generating type safe wrappers - could integrate with MetaHDBC?; * possibly a lightweight code generation/ simple macro support to help with developing more robust PL/pgSQL code. * documentation generation