@c -*-texinfo-*-
@chapter Status Report

@ifset TEXT-ONLY
@include version.texi
@end ifset

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

@example
@url{http://www.gnustep.org/Documentation/gnustep-db/gnustep-db_toc.html}
@end example

Please send corrections to @email{scottc@@net-community.com}.

@emph{Key:}

@table @strong
@item [10]
Complete and tested.
@item [8]
Missing a few non-core methods, definitely usable.
@item [6]
Missing several methods, but core is there, usable.
@item [4]
Begun, but missing core functionality, not usable.
@item [2]
Skeleton.
@item [0]
Nothing there.
@item [?]
Unknown status.
@end table

@section Access Layer Classes

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

@table @strong

@item EOAdaptor:: [10]

@item EOAdaptorChannel:: [10]

@item EOAdaptorContext:: [10]

@item EOAttribute:: [10]

@item EOAttributeOrdering:: [10]

@item EODatabase:: [10]

@item EODatabaseChannel:: [10]

@item EODatabaseContext:: [10]

@item EODatabaseDataSource:: [10]

@item EODetailDatabaseDataSource:: [10]

@item EOEntity:: [10]

@item EOExpressionArray:: [10]

@item EOFault:: [10]

@item EOFormatExpression:: [0]

@item EOGenericRecord:: [10]

@item EOJoin:: [10]

@item EOKeySortOrdering:: [10]

@item EOModel:: [10]

@item EONull:: [10]

@item EOQualifier:: [10]

@code{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.

@item EOQuotedExpression:: [10]

@item EORelationship:: [10]

@item 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

@end table

@section Access Layer Protocols

@table @strong

@item EODataSources:: [10]

@item EOExpressionContext:: [10]

@item EOMasterDataSources:: [10]

@item EOQualifiableDataSources:: [10]

@item EORollbackDataSources:: [10]

@end table

@section Access Layer Informal Protocols

@table @strong

@item EOClassMapping:: [0]

@item EOCustomValues:: [10]

@item EODatabaseChannelNotification:: [10]

@item EODatabaseCustomValues:: [10]

@item EOExpression:: [10]

@item EOKeyValueCoding:: [10]

@item EOKeyValueCodingEONull:: [10]

@item EOUnableToFaultToOne:: [10]

@end table

@section 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.

@table @strong

@item EOActionCellAssociation:: [0]

@item EOAssociation:: [8]

@item EOBrowserAssociation:: [0]

@item EOButtonAssociation:: [0]

@item EOColumnAssociation:: [0]

@item EOControlAssociation:: [0]

@item EOController:: [8]

@item EOImageAssociation:: [0]

@item EOMatrixAssociation:: [0]

@item EOPopUp Association:: [0]

@item EOQualifiedAssociation:: [0]

@item EOTextAssociation:: [0]

@end table

@section Interface Layer Protocols

@table @strong

@item EOAssociationNotification:: [9]

@item EOObjectValidation:: [9]

@end table

@section Inteface Layer Informal Protocols

@table @strong

@item EOAssociationClasses:: [9]

@end table

@section Sybase Adaptor

@table @strong

@item SybaseAdaptor:: [10]

@item SybaseChannel:: [10]

@item SybaseContext:: [10]

@item SybaseSQLExpression:: [9]
Needs support for stored procedures and computed rows.

@end table

@section 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.

@table @strong

@item SQLServerAdaptor:: [10]

@item SQLServerChannel:: [10]

@item SQLServerContext:: [10]

@item SQLServerSQLExpression:: [9]

@end table

@section PostgreSQL Adaptor

@table @strong

@item Postgres95Adaptor:: [10]

@item Postgres95Channel:: [10]

@item Postgres95Context:: [10]

@item Postgres95SQLExpression:: [8]
ORDER BY does not accept aliases for field names.  HOLDLOCK was not
implemented in the most recent PostgreSQL release.

@end table
