Status Report
*************

Last updated March 1997.  The most up-to-date version of this status
report is available at:

     `http://www.gnustep.org/Documentation/gnustep-db/gnustep-db_toc.html'

   Please send corrections to <scottc@net-community.com>.

   *Key:*

*[10]*
     Complete and tested.

*[8]*
     Missing a few non-core methods, definitely usable.

*[6]*
     Missing several methods, but core is there, usable.

*[4]*
     Begun, but missing core functionality, not usable.

*[2]*
     Skeleton.

*[0]*
     Nothing there.

*[?]*
     Unknown status.

Access Layer Classes
====================

   The Access Layer is considered to be complete; many if not all of the
classes have been thoroughly tested.

*EOAdaptor:: [10]*
*EOAdaptorChannel:: [10]*
*EOAdaptorContext:: [10]*
*EOAttribute:: [10]*
*EOAttributeOrdering:: [10]*
*EODatabase:: [10]*
*EODatabaseChannel:: [10]*
*EODatabaseContext:: [10]*
*EODatabaseDataSource:: [10]*
*EODetailDatabaseDataSource:: [10]*
*EOEntity:: [10]*
*EOExpressionArray:: [10]*
*EOFault:: [10]*
*EOFormatExpression:: [0]*
*EOGenericRecord:: [10]*
*EOJoin:: [10]*
*EOKeySortOrdering:: [10]*
*EOModel:: [10]*
*EONull:: [10]*
*EOQualifier:: [10]*
     `isValidQualifierType' from EOAdaptor is not used now. This method
     is supposed to verify, when a qualifier is constructed, if an
     attribute can appear inside an expression.

     Make the relationshipPaths of type GCMutableSet.

*EOQuotedExpression:: [10]*
*EORelationship:: [10]*
*EOSQLExpresion:: [9]*
     There is no support now for specifying properties for the tables
     that appear in the FROM clause; I am thinking specifically at the
     OUTER specifier required by some servers when you use outer joins.

     Optimize the generated WHERE clause when the same relationship
     appears more than one time in the entity.

     The external query from EOEntity is not used when a fetch
     operation is unrestricted, i.e. it fetches all the records from
     the table

Access Layer Protocols
======================

*EODataSources:: [10]*
*EOExpressionContext:: [10]*
*EOMasterDataSources:: [10]*
*EOQualifiableDataSources:: [10]*
*EORollbackDataSources:: [10]*
Access Layer Informal Protocols
===============================

*EOClassMapping:: [0]*
*EOCustomValues:: [10]*
*EODatabaseChannelNotification:: [10]*
*EODatabaseCustomValues:: [10]*
*EOExpression:: [10]*
*EOKeyValueCoding:: [10]*
*EOKeyValueCodingEONull:: [10]*
*EOUnableToFaultToOne:: [10]*
Interface Layer Classes
=======================

   The Interface Layer has not been tested to a great degree as it
requires a decent set of working GUI classes as listed in the OpenStep
specification and is being implemented in the GNUstep GUI Library.  It
is also possible to utilize the Interface Layer classes with your own
ObjC GUI classes, so the GNUstep GUI Library is not required.

   The unimplemented EOAssociation subclasses are specific to OpenStep,
so you would want to write subclasses for your own GUI classes.

*EOActionCellAssociation:: [0]*
*EOAssociation:: [8]*
*EOBrowserAssociation:: [0]*
*EOButtonAssociation:: [0]*
*EOColumnAssociation:: [0]*
*EOControlAssociation:: [0]*
*EOController:: [8]*
*EOImageAssociation:: [0]*
*EOMatrixAssociation:: [0]*
*EOPopUp Association:: [0]*
*EOQualifiedAssociation:: [0]*
*EOTextAssociation:: [0]*
Interface Layer Protocols
=========================

*EOAssociationNotification:: [9]*
*EOObjectValidation:: [9]*
Inteface Layer Informal Protocols
=================================

*EOAssociationClasses:: [9]*
Sybase Adaptor
==============

*SybaseAdaptor:: [10]*
*SybaseChannel:: [10]*
*SybaseContext:: [10]*
*SybaseSQLExpression:: [9]*
     Needs support for stored procedures and computed rows.

Microsoft SQL Server Adaptor
============================

   Because SQLServer and Sybase share the almost identical DB-Library
interface; the same restrictions and issues with Sybase generally affect
SQLServer as well.

*SQLServerAdaptor:: [10]*
*SQLServerChannel:: [10]*
*SQLServerContext:: [10]*
*SQLServerSQLExpression:: [9]*
PostgreSQL Adaptor
==================

*Postgres95Adaptor:: [10]*
*Postgres95Channel:: [10]*
*Postgres95Context:: [10]*
*Postgres95SQLExpression:: [8]*
     ORDER BY does not accept aliases for field names.  HOLDLOCK was not
     implemented in the most recent PostgreSQL release.

