This paper describes the design and implementation of a query engine t
hat provides extended SQL-based access to the data managed by an objec
t-oriented database system. This query engine allows extended SQL quer
ies to be embedded in C++ programs or issued interactively from a comm
and line interface. The language supported by the engine is the comple
te SQL-92 select statement plus object extensions for navigating along
paths and embedded structures, querying nested sets, and invoking mem
ber functions. In addition, an object-oriented SQL view facility is pr
ovided. Using this view facility, one can define object-oriented views
; one can also define views that flatten complex OODB schemas, allowin
g direct access by existing tools designed to provide remote access to
relational databases. The view facility also supports the definition
of views that include reference and set-valued columns based on other
views, thus allowing entire ''view schemas'' to be created. This paper
describes the SQL-92 query and view extensions and discusses a number
of issues that arose on the way to the implementation that is current
ly running on top of the ObjectStore OODB system.