home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-28 | 5.9 KB | 173 lines | [TEXT/ttxt] |
- Status as at 95/09/28 - beta 1.04
-
- VALIDATION SUITE
- In-house Compilers:
- BC = Borland C++ for Windows 4.5p3
- CW = CodeWarrior (Mac) 7 (c++68K 1.3)
- GS = g++ 2.6.3 under SunOS 4.1.3
-
- All 12 tests have been passed by the above 3 compilers, except as noted below.
-
- ooftest3 (multi-reader, single writer)
- - CW ok if start "writer" first, fails with error if start "readers" first
- - GS ok multiple read/write
- - BC not tested
-
-
- MAJOR FEATURES COMPLETED
- Character-based report-writer
- Creation of database
- Defining fields and tables as Hidden
- Monolithic BLOB fields
- Searches for binary fields equal a value
- Searches for char fields equal a value
- Simple Date fields
- Stream-based export
- Test Data Generator
- zApp integration of editing classes, multi-page edit manager
-
- b1.01
- Creating records in related tables only 1 relation away
- c-tree multi-user filesharing model backend
- ISAM locking
- OOF_Debug checking of failure to put () on related field expressions
- Relations over key fields as dynamic joins
-
- b1.02
- c-tree DODA schemas created in files (should allow r-tree to access files)
- Cross-platform file compatability (tested between Mac, SunOS & PC)
- dbFixedLenBinary subclass of dbField - for user-implemented data types.
- Relating join fields automatically updated for part relations
- Searches for ranges and other relational operators
-
- b1.04
- Combinatorial Searches
- Compound fields
- Deleting records
- Deleting records in related tables only 1 relation away
- Import tables from streams (partial)
- Iteration backwards through a range
- Minor iteration additions (check if at start or end of range)
- PowerPlant GUI framework (Mac)
-
-
- MAJOR FEATURES TO ADD TO VERSION ONE
- Ad-Hoc Query engine
- Collection type fields
- Creating records in related tables multiple relations away
- Deleting records in related tables multiple relations away
- Functors for applying operations to a selection
- GUI dependency support
- Import via dbView with Add Record, Merge by Key or Replace by Key
- Indexing on portions of fields
- Interval, Date & Timestamp field types to ODMG-93 standard
- Keyword indexes per field
- Keyword index searching for "pooled" keywords per record
- Object "Soup" file for storing resources, schema etc.
- Object-level validation for editing
- OID fields
- Opening multiple databases at one time
- Opening of unknown database & loading schema dynamically
- Part related tables as separate tables
- Record cache - more control of unloading (currently when load new or explicit)
- Relations over key fields as stored links
- Relations over OIDs as dynamic joins
- Relations over OIDs as stored links
- Schema included in database
- Sort by non-indexed fields
- Sort selections of records after generation
- Subclasses based on always adding a table
- Temporary tables, using local storage
- User-defined derived fields
- Views made more abstract, not assuming they contain lists of dbField*
-
-
- PLANNED GUI INTEGRATIONS (we are willing to sub-licence your ports)
- Cross-Platform
- zApp GUI integration list classes (zTable & zListBox)
- DOS ???
- TurboVision
- zApp for DOS Graphics
- MS Windows:
- MFC
- OWL 2
- Mac
- PowerPlant
- TCL 1.1.3
- TCL 2
-
-
- MAJOR FEATURES FOR NEAR FUTURE
- Blob field partial reads with random access & stream interfaces inside blob
- Borland Database Toolkit backend
- c-tree multi-user client/server model backend
- Database recovery tools
- External data browser application
- Mac external interface - 4D
- Mac external interface - XCMD
- Part related tables stored in blobs
- Phonetic keyword indexes
- Platform-independent file handling (for people writing document mgmt)
- Query construction refactored into mixin class, to make it easier to build your own.
- Sparse field types - not taking storage for every record
- Stream-like query build: dbQuery << field << equal << value
- Subclasses without declaring additional tables (possibly using Sparse fields)
- Transactions
- User-defined query operators
- User-defined relations
-
-
- MAJOR FEATURES UNDER CONSIDERATION
- Dynamic addition of fields (probably related to Sparse field implementation)
- Mac external interface - Prograph CPX
- Mac external interface - SmalltalkAgents
- Platform-independent image handling
- Rules attached to fields and records
- Versioning objects - multiple versions of data for same identity
- Versioning Schema
-
-
- KNOWN BUGS
- KB1994/12/20-1 Failure to check for empty selection
- A field access expression such as
- cout << People[People.Salary==2000].LastName << endl;
- Can change the current selection to empty but the field access doesn't check and
- assumes there is a valid record buffer.
-
- KB1995/01/03-1 union_with destroys sort order
-
-
- KB1995/01/20-1 OOF_tableBackend copy constructor mOIDfield wrong
- The mOIDfield will end up pointing to the original field, not the copied field,
- due to the order of copying. (not a problem as this member not used yet)
-
-
- KB1995/01/31-1 PageWise reports don't break to new pages.
- PageWise reports don't appear to reliably break to new pages. This may only be
- the case if the report page is less than one page long.
-
-
- FIXED IN b1.04
- KB1995/02/15-1 Iteration through selection of all recs ignores cache
- When calling start, next on a selection of all records, the direct ctree
- FirstRecord, NextRecord are used instead of LoadRecordAtOffset. This bypasses
- the normal test to see if a dirty record is cached. However, given the use of
- caching dirty records is typically for embedded tables of related records, it is
- highly unlikely for this situation to arise.
-
-
- KB1995/03/12-1 sort order not observed for selections < all records
- sortBy is ignored when traversing selections of other than all records, as the
- record pointers are not sorted in memory.
-
-
- FIXED IN b1.04
- KB1995/08/27-1 OOF_tableBackend_ctree::next() goes off end of records
- when traversing a selection with next, no error checking is performed to prevent
- you going past the end of the selection, or All Records. Results are undefined.
-
-
- POSSIBLE MEMORY LEAKS
- - dbRelationships and dbFields/dbTables created on the heap - we should be
- differentiating them in their owning dbConnect/dbTable and cleaning them up
-