An addon to PCLT package: enchance PCLT catalog with PostgreSQL powers.
"PCLT" is an abbreviation for "Parametric Composable Localizable Templates" - in fact it should also hold Detalizable. Term "Detailizable content (message)" in this package has a following meaning: some content, representing which it is possible to regulate, in how much details it is represented.
Conceptually, this package is a powerful extension to the well known Show class, that (extension) is thought to be embeded in any Haskell program, which requires multilanguage support, and/or where messages should be detailizable.
For more information about PCLT, read in it's description in it's own Cabal file.
_________
By the base package (PCLT http://hackage.haskell.org/package/PCLT) the templates are provided to be stored statically in module declarations using Text.PCLT.HasStaticRawPCLTs.HasStaticRawPCLTs
class instaniations.
The PCST-DB package adds a possibility to store templates in DB (under PostgreSQL v8.4. (not less)). ER diagram: http://i1.fastpic.ru/big/2009/1212/f0/5b9845716e5a6984e9bc9d62a61928f0.png
The following units are storable in DB:
localizable templates
localized templates
languages
collections of localizable templates
collections (of localizable templates) compositions
catalogs
configurations of PCLT catalogs
localizable templates detalization policies
For each catalog in DB there is stored a special flag "catalog data or config changed". The flag gets raised by an army of triggers, that watches every table, and is thought to get dropped by a program, which uses DB catalog. Drop the flag right before catalog update from DB.
Unfortunately, the current implementation of this flagging system constraints the number of agents that update their catalogs from DB by only one (because, when agent updates it's catalog, it drops the flag, and other agents don't know that flag was risen, so they can't know if version of catalog in their operative memory is older then in DB or not).
But this limitation removal is planned as a first ToDo in the next version of PCLT-DB.