@Override
public void serialize(QueryMetadata metadata, boolean forCountRow, SQLSerializer context) {
if (!forCountRow && metadata.getModifiers().isRestricting() && metadata.getOrderBy().isEmpty()
&& !metadata.getJoins().isEmpty()) {
QueryModifiers mod = metadata.getModifiers();
// use top if order by is empty
if (mod.getOffset() == null) {
// select top ...
metadata = metadata.clone();
metadata.addFlag(new QueryFlag(QueryFlag.Position.AFTER_SELECT,
Expressions.template(Integer.class, topTemplate, mod.getLimit())));
context.serializeForQuery(metadata, forCountRow);
} else {
throw new IllegalStateException("offset not supported without order by");
}
} else {