úÎYÐS×:      !"#$%&'()*+,-./0123456789-:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef-:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef-:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef0ghi:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefA wrapper around ", added information about type of . read subject and by showing the primary key.  ___________ ,If PCLT is to be used for representation of  G then user must declare an additional localizable template in his PCLT  catalog with ID of form:  " ARFDBE_SDLR." ++ (show $  err) , where the show  will include full modules path K of type. The templete content if not important - leave it empty, but what  is important - is it'2s SDL requirement. This SDL requirement wil be in " effect for the representation of . 2For more information on that, see description for  ShowAsPCSI instance for   - in module Database.ReadableFromDB__. /What kind of errors are possible in the result  of " read from DB" operation  Type aliase for use by . It'9s recommended to use newtypes for subject type variable ("readable"), J when it is composite (like tuple, Either, Map or other). Reason for that  is described near the  ShowAsPCSI instaniation  for . )Read rows from DB and parse each at once  using  class method Class method derived from   and . 3 No need to overload it, if not for special cases. Type aliase for use by . In case of error it wraps it   into . Wrapper around .  Return the j of what can be under Right in Either This is better than row ! field_name, because if an error occurs F (field not found), then it returns in error message this field name. .Uppercase given field name, and apply it with .  WARNING !!! ) HDBC lowercases field names, when using fetchAllRowsMap.   liftInList a = a : []         CThe container for all types of errors that may result, when trying  to update a catalog from DB.  !"#Wrapper around %,  added k , for which " drop flag" operation failed. $%'Errors that may occur, when performing .. &'(,Container for a flag, that is read from DB. 6For each catalog in DB there is stored a special flag " catalog data  or config changed"/. The flag gets raised by an army of triggers, G that watches every table, and is thought to get dropped by a program, B which uses DB catalog. Drop the flag right before catalog update  from DB. BUnfortunately, the current implementation of this flagging system E 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 is it not). CBut this limitation removal is planned as a first ToDo in the next  version of PCLT-DB. )*2Container for PCLT catalog, that is read from DB. +,@Container for data, that is read from DB, that goes on input to  catalog formation routine. -.Drop that flag in DB. /2Checks if catalog is read without a single error. 0An empty form to be filled. 1!There is a one way relation from  lm  to . That'!s because subject operations are  similar it their abstractions. 2Check if the flag "catalog data or config changed" is up in DB. ( If so, drop it and try to read from DB  no  -,  +*  !"#$%&'()*+,-./01p2,-*+()%'&#$. !"/012 !" !"#$$%'&&'())*++,--./012qrqrqrr3Type alias used by 8. 4Type alias used by 8. 5#This type is a special instance of s - it accumulates  all other instances of s! from the whole PCLT-DB package,  and also from PCLT package. DThis instance is best to be used as an intial input for the catalog ! formation in your applications. 67=Input contains current catalog version. If the update failed 6 and returned no new catalog version, or if update isn' t needed, + then current catalog version is returned. AIf there appeared any errors, they get acted with. The action is  specified by user. 8;The first version of catalog, that service forms is always > from nonDB source, but is from specified in the first triple  ;(catalog ID, config and some instance of HasStaticRawPCLTs). 5 That way, even if DB never responds, service always 1 has at least this version of catalog available. EIn the 3rd argument user specifies action, that has a role of errors  processor (reporter). The 4th argument is a Chan!, which this service listens to.  If TrueB comes, service makes iteration (reads catalog from DB if needed, = and writes new version into the MVar), and continues cycle.  If False comes, service stops. CThe returned MVar is created by service itself and is a container, ) where it keeps last version of catalog. 9Wrapper around 8. The service starts from  default config (t) and  default set of templates (65). ( But updates from DB orienting on given k, ? which may be different set of templates and different config. 3456789567438934566789  !"#$%&'()*+,-./01p23456789u       !!""#$%&'())*+,--..//01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijhikhilhmnopqorsorsotuotuvwwoxyotz{ PCLT-DB-0.1Database.ReadableFromDBDatabase.ReadableFromDB__Database.PCLT.InterfaceWithDBDatabase.PCLT.UpdatableCatalogData.MyHelpers_Data.MyHelpersDatabase.PCLT.InterfaceWithDB__ Database.PCLTAddressedReadFromDBErrorarfdbeEntityTypearfdbePK arfdbeErrReadFromDBErrorSubReadError_RFDBERowParseError_RFDBETooManyResultsFoundInDB_RFDBENotFoundInDB_RFDBERecieveError_RFDBEAllowedMaximumOfRowsCountReadableFromDB readFromDB parseDBrow readOneFromDBNoMoreThanOne_shoulditbe FieldNamewrapParseResult_1rowwrapParseResult_NrowsrightType_formReadResOrErrtakeFieldValuetakeUFieldValueuppercaseMapKeys liftInList'PCLTRawCatalog__Database_ReadableFromDBCatalogUpdateFromDBErrorscueDropCNTBUFlag cueARFDBEcueCatReadErrscueCollectionErrs cueCatalogIDcueCatalogRead/AddressedDropFlag_CatalogNeedsToBeUpdated_Error&DropFlag_CatalogNeedsToBeUpdated_ErrorDBError_DFCNTBUENotModified_DFCNTBUECatalogNeedsToBeUpdated_DoesItCatalogReadFromDBResultRawCatalogDataReadFromDBResult dropFlag_CatalogNeedsToBeUpdatedemptyCUE defaultCatalogUpdateFromDBErrors cfhie2cueconsiderCatalogUpdate&MakeIterationAndContinueCycle_shouldwe%DisconnectDBConnWhenFinished_shouldwe.PCLTRawCatalog__Database_PCLT_UpdatableCatalogcatalogUpdatorIterationrunCatalogUpdatorService(runCatalogUpdatorService_wDefaultInitial ErrorMessage<<fst3snd3thrd3 apFor2ple liftTuplelift2plelift3plelift4pleap22pleap22pleMap23pleap23pleMap24pleap24pleM apFrom2ple apFrom3ple apFrom4ple liftEither6 liftEither5 liftEither2isLeftisRightfromLeft fromRight takeFromMap partition_2unionWithKey_2unionWithKey_3unionWithKey_4lookupDeleteFromList from2DList str2Numericcons2'cons3' truncLiterarytruncLiteraryLBSdumpinvDumpwatch watchCondputStrLn_pagedtraceShowPaged traceCondbase Debug.Trace traceShowtrace putTraceMsg Data.TypeableTypeRepPCLT-0.1Text.PCLT.CatalogPCLT_CatalogIDText.PCLT.CatalogFromHSRTCatalogFromHSRTInitErrorsText.PCLT.ConfigPCLT_InnerConfig___always_update-PCLTRawCatalog__Database_PCLT_InterfaceWithDBText.PCLT.HasStaticRawPCLTsHasStaticRawPCLTsdefaultPCLTInnerConfig