The remaining callSelect function statements, listed in Fig 11-6 above, demonstrate calls to the underlying domain communications layer which perform the actual data retrieval and necessary result conversions. Here we find Hermes invoking an Ingres session with beginIngres, ensuring a fresh Ingres answer file with isIngresRelation, invoking the data selection through selectIngresRelation, generating a standard Hermes answer file via convertIngresRelationToHermesFile, destroying the scratch Ingres answer file through destroyIngresRelation, and finally terminating the Ingres session with a call to endIngres.