{
// Third case: slice-project-order
Op subSubOp = ((Op1)subOp).getSubOp() ;
if ( subSubOp instanceof OpOrder )
{
OpProject opProject = (OpProject)subOp ;
OpOrder opOrder = (OpOrder)subSubOp ;
// NB leave project over topN, unlike the distinct case where distinct goes under topN.
OpTopN opTopN = new OpTopN( opOrder.getSubOp(), (int)(offset+opSlice.getLength()), opOrder.getConditions() ) ;
Op proj = new OpProject(opTopN, opProject.getVars()) ;
if ( offset == 0 ) {
return proj ;
} else {
return new OpSlice( proj, offset, Query.NOLIMIT ) ;
}