home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Demos / OOFILE / docs / status.txt < prev    next >
Encoding:
Text File  |  1995-09-28  |  5.9 KB  |  173 lines  |  [TEXT/ttxt]

  1. Status as at 95/09/28 - beta 1.04
  2.  
  3. VALIDATION SUITE
  4. In-house Compilers:
  5. BC = Borland C++ for Windows 4.5p3
  6. CW = CodeWarrior (Mac) 7 (c++68K 1.3)
  7. GS = g++ 2.6.3 under SunOS 4.1.3
  8.  
  9. All 12 tests have been passed by the above 3 compilers, except as noted below.
  10.  
  11. ooftest3 (multi-reader, single writer)
  12. - CW ok if start "writer" first, fails with error if start "readers" first
  13. - GS ok multiple read/write
  14. - BC not tested
  15.  
  16.  
  17. MAJOR FEATURES COMPLETED
  18. Character-based report-writer
  19. Creation of database
  20. Defining fields and tables as Hidden
  21. Monolithic BLOB fields
  22. Searches for binary fields equal a value
  23. Searches for char fields equal a value
  24. Simple Date fields
  25. Stream-based export
  26. Test Data Generator
  27. zApp integration of editing classes, multi-page edit manager
  28.  
  29. b1.01 
  30.     Creating records in related tables only 1 relation away
  31.     c-tree multi-user filesharing model backend
  32.     ISAM locking 
  33.     OOF_Debug checking of failure to put () on related field expressions
  34.     Relations over key fields as dynamic joins
  35.  
  36. b1.02
  37.     c-tree DODA schemas created in files (should allow r-tree to access files)
  38.     Cross-platform file compatability (tested between Mac, SunOS & PC)
  39.     dbFixedLenBinary subclass of dbField - for user-implemented data types.
  40.     Relating join fields automatically updated for part relations
  41.     Searches for ranges and other relational operators
  42.  
  43. b1.04
  44.     Combinatorial Searches
  45.     Compound fields
  46.     Deleting records
  47.     Deleting records in related tables only 1 relation away
  48.     Import tables from streams (partial)
  49.     Iteration backwards through a range
  50.     Minor iteration additions (check if at start or end of range)
  51.     PowerPlant GUI framework (Mac) 
  52.     
  53.  
  54. MAJOR FEATURES TO ADD TO VERSION ONE
  55. Ad-Hoc Query engine
  56. Collection type fields
  57. Creating records in related tables multiple relations away
  58. Deleting records in related tables multiple relations away
  59. Functors for applying operations to a selection
  60. GUI dependency support
  61. Import via dbView with Add Record, Merge by Key or Replace by Key
  62. Indexing on portions of fields
  63. Interval, Date & Timestamp field types to ODMG-93 standard
  64. Keyword indexes per field
  65. Keyword index searching for "pooled" keywords per record
  66. Object "Soup" file for storing resources, schema etc.
  67. Object-level validation for editing
  68. OID fields
  69. Opening multiple databases at one time
  70. Opening of unknown database & loading schema dynamically
  71. Part related tables as separate tables
  72. Record cache - more control of unloading (currently when load new or explicit)
  73. Relations over key fields as stored links
  74. Relations over OIDs as dynamic joins
  75. Relations over OIDs as stored links
  76. Schema included in database
  77. Sort by non-indexed fields
  78. Sort selections of records after generation
  79. Subclasses based on always adding a table
  80. Temporary tables, using local storage
  81. User-defined derived fields
  82. Views made more abstract, not assuming they contain lists of dbField*
  83.  
  84.  
  85. PLANNED GUI INTEGRATIONS (we are willing to sub-licence your ports)
  86. Cross-Platform
  87.     zApp GUI integration list classes (zTable & zListBox)
  88. DOS ???
  89.   TurboVision
  90.   zApp for DOS Graphics
  91. MS Windows:
  92.   MFC
  93.   OWL 2
  94. Mac
  95.   PowerPlant
  96.   TCL 1.1.3
  97.   TCL 2
  98.  
  99.  
  100. MAJOR FEATURES FOR NEAR FUTURE
  101. Blob field partial reads with random access & stream interfaces inside blob
  102. Borland Database Toolkit backend
  103. c-tree multi-user client/server model backend
  104. Database recovery tools
  105. External data browser application
  106. Mac external interface - 4D
  107. Mac external interface - XCMD
  108. Part related tables stored in blobs
  109. Phonetic keyword indexes
  110. Platform-independent file handling (for people writing document mgmt)
  111. Query construction refactored into mixin class, to make it easier to build your own.
  112. Sparse field types - not taking storage for every record
  113. Stream-like query build: dbQuery << field << equal << value
  114. Subclasses without declaring additional tables (possibly using Sparse fields)
  115. Transactions
  116. User-defined query operators
  117. User-defined relations
  118.  
  119.  
  120. MAJOR FEATURES UNDER CONSIDERATION
  121. Dynamic addition of fields (probably related to Sparse field implementation)
  122. Mac external interface - Prograph CPX
  123. Mac external interface - SmalltalkAgents
  124. Platform-independent image handling
  125. Rules attached to fields and records
  126. Versioning objects - multiple versions of data for same identity
  127. Versioning Schema
  128.  
  129.  
  130. KNOWN BUGS
  131. KB1994/12/20-1  Failure to check for empty selection
  132. A field access expression such as 
  133.     cout << People[People.Salary==2000].LastName << endl;
  134. Can change the current selection to empty but the field access doesn't check and
  135. assumes there is a valid record buffer.
  136.  
  137. KB1995/01/03-1 union_with destroys sort order
  138.  
  139.  
  140. KB1995/01/20-1 OOF_tableBackend copy constructor mOIDfield wrong
  141. The mOIDfield will end up pointing to the original field, not the copied field,
  142. due to the order of copying. (not a problem as this member not used yet)
  143.  
  144.  
  145. KB1995/01/31-1 PageWise reports don't break to new pages.
  146. PageWise reports don't appear to reliably break to new pages. This may only be
  147. the case if the report page is less than one page long.
  148.  
  149.  
  150. FIXED IN b1.04 
  151. KB1995/02/15-1 Iteration through selection of all recs ignores cache
  152. When calling start, next on a selection of all records, the direct ctree
  153. FirstRecord, NextRecord are used instead of LoadRecordAtOffset. This bypasses
  154. the normal test to see if a dirty record is cached. However, given the use of
  155. caching dirty records is typically for embedded tables of related records, it is
  156. highly unlikely for this situation to arise.
  157.  
  158.  
  159. KB1995/03/12-1 sort order not observed for selections < all records
  160. sortBy is ignored when traversing selections of other than all records, as the
  161. record pointers are not sorted in memory.
  162.  
  163.  
  164. FIXED IN b1.04 
  165. KB1995/08/27-1 OOF_tableBackend_ctree::next() goes off end of records
  166. when traversing a selection with next, no error checking is performed to prevent
  167. you going past the end of the selection, or All Records. Results are undefined.
  168.  
  169.  
  170. POSSIBLE MEMORY LEAKS
  171. - dbRelationships and dbFields/dbTables created on the heap - we should be
  172.   differentiating them in their owning dbConnect/dbTable and cleaning them up
  173.