1) Generally this doesn't sound like something you would want to use delegation for. Getting at a translator specific implementation detail doesn't seem appropriate for a delegation pattern.
2) Do you mean the JDBC ResultSetMetaData or just want is expected to be projected by the source command? The latter can just be obtained from QueryExpression.getProjectedQuery().getDerivedColumns and the associated types/metadata.
2) Yes I meant JDBC ResultSetMetaData in case of JDBCQueryExecution and customResultSetMetadata in case of CustomQueryExecution.
So that would mean to provide an api say getResultSetMetadata() in the ResultSetExecution interface which each translator would override to provide the metadata of their resultset.
Just to be clear from the perspective of Teiid, the source command itself conveys the result metadata (types, column names, additional metadata through the metadata objects, etc.). To specifically need the JDBC ResultSetMetaData seems like something you'd need to address with a JDBC translator extension and not something that we would modify the api for to address with a delegation pattern.
Thanks a lot Steve.
The implementation has just started becomming clearer to me after using the getProjectedQuery().getDerivedColumns.:)