$CASE/gen/ver_10log/aareadme - Rev. 971217, 980220, 990307, 990804 - RJL Rev. 021210 and 030922 - RJL ----------------- gen/ver_10log was merged with genv11 in the $CASE/99s523/genmerge project by Karner and Spinney. The result was $CASE/gen/ver_11_link. gen/ver_11_link was updated to gen/ver_12 by S Jaganathan in 02s. ver_12 generates pr_log.c which is compatible with bdeReplay.cc There is no user manual for ver_11_link or ver_12 - just a report with updates to the prior version. $CASE/gen/ver_10log/doc/genv10log_manual.* is the last complete chgen User Manual - it is in LaTex format (.tex/.dvi/.ps) and not compatible with MSWord docs. Rev. Note 990307 - RJL: ------------------------ Latest revs to the genlog project are in $CASE/98f/genreplay/rrassman/*. Rassman added replay capability for pr_set commands after ctwang added logging for pr_set commands to this genlog project. TBD: check genlog into cvs over ver_10[.2?] then check in genreplay as a later revision. -------------------------------------------------------- 971217 rev (rev. 990804) --------- Later upgrades will improve the efficiency of genreplay which now searches TT and TA metatables inefficently. In particular, these features are important: (1) have chgen map the pkey's ttabrev code to a corresponding TT-table row number by a 1:1 const int array (perhaps the identity map) known at chgen run time); i.e. make the two or three TT_numbering schemes one and the same. (2) eliminate the TA-name search or the associative map from TA-field name to TA-table index which (I presume) Rassman uses as a case switch for the field offset (XXcurr->fieldname-XXcurr) added to XXcurr. Chgen can define this offset as an extra field of the TA table. NB: metaschema changes affect past-future table format compatibility. (3) reduce the frequency of searching table XX for the pkey of the instance to be changed. The search implementation can avoid redundant searches by treating the XXcurr pointer as a cache: check whether the current table row pointer XXcurr already points to the row to be matched, before entering a search loop. [In DBDE, there must be a private copy for each dbde client.] Redundant earches are avoided because XXcurr will not change when multiple fields of the same XX-row are changed sequentially [by the same bde client, in DBDE's multi-user context.] Item (3) has highest priority because it can be used INSIDE the macro [pr_?]find_pkey and is useful anywhere else the application needs to find a pkey value (e.g., in pr_load). End of 971217 and 990804 revs - RJL -------------- I move this dir'y to/usr/proj3/case/gen/ver_10log from 96s523/gen/mmurphy/chgen10_Log on 96/5/23 - RJL. It needs cvs and rcs id lines before importing. TBD: merge 97f522/genlog/CTWang's pr_set logging contributions - see $CASE/97f522/toolProjects980927/genlog/ctwang/ver_10log/aareadme ------------------------------------------------------ This directory contains the results of the Chgen log project undertaken in the spring of 1996 by Denise Nelson, Bill Rideout, and Mike Murphy. The directories are Test) Contains the version of the schooldb code modified to demonstrate the new log routines. docs) Contains the final report in MS Word, text, and postcript format, and the user manual in LaTeX and compressed postscript format. (I moved docs to doc) executables) Contains an executable chgen10 compiled on the OSF/AXP machine jupiter.cs.uml.edu in the alpha subdirectory. src) Contains the modified source code for chgen10 with logging. total 6 drwxrwxr-x 3 wrideout gen 1024 May 10 19:35 Test drwxrwxr-x 2 wrideout gen 512 May 13 15:44 docs drwxrwxr-x 3 mmurphy gen 512 May 10 18:32 executables drwxrwxr-x 2 mmurphy gen 2560 May 10 19:20 src ================================================================== Update 97/12/17 re: object life cycle maintenance by gen/ver_10log: TBD1: integrate PARSE and RFLAG flags (as TBD conditions on pr_set logging) with other (change and delete) actions as life cycle states of any object. The 97s522/genlog project (ctwang) tested jacosta's hand-coded pr_set macros with logging, as a prelude to autogenerating this logging action in gen/ver_10log's versio of pr_util. $CASE/gen/ver_10log/{doc src}/* files do NOT contain these flags. They must be in bdelog or jp2bde because jacosta's pr_set* macros with logging check these to verify that pr_set* logging is only done if the row has already been pr_added, after pr_load or pr_create. These two flags discriminate 3 states of a new individual record. Therefore they are part of that record/object's life cycle, corresponding to its birth (pr_create), resurrection (within pr_load), and incremental change (pr_add after pr_add). Therefore, before logging pr_set* events it is necessary to convert these flags to a single OLC state equivalent. This OLC State is a generic property of any object instance or table row and can be maintained entirely by pr_util functions. With extensions, this state model could also distnguish records that have been modified after pr_loading from those that have NOT changed, and mark records that hve been 'deleted' (pr_delete has been called), to aid in managing incremental version control. ----Added 98/2/20 - RJL: CAUTION: The OLC state from state-event behavior modeling differs from this because OLC states persist between CRUD (create/read/update/delete) transactins, while RFLAG bits are modified DURING a chgen- managed (long, multi-step) transaction. I recommend two bytes of state: <= one byte to track internal long-transaction internals, and >= one byte for external persistent state codes. Merging these bytes would be complicated. Read S&M/ProjText.com's OOAD96 .pdf report first - they changed their state event coding from the OLC text. ----end of rev. --------------------------------------------------- TBD2: Integrate vindoliy's default values insertion from new table TA - see $CASE/96su523/gendfltrows/vindoliy/src/aareadme. (The gendfltrows project is NOT 96f523/gendflt, which tried to provide pr_util code to generete superclass ancestors of a row betwween its pr_create event and its pr_add event. Genmerge project merged gendflt into the cvs repository for chgen, but as a separate branch parallel with gen/ver_10log. TBD: also merge gendflt as a parallel branch, then try to integrate these side branches intothe main gen/ver_10 release. --------------------------------------------