package sqlancer.common.gen; import java.util.List; import sqlancer.common.ast.newast.Expression; import sqlancer.common.ast.newast.Join; import sqlancer.common.ast.newast.Select; import sqlancer.common.schema.AbstractTable; import sqlancer.common.schema.AbstractTableColumn; import sqlancer.common.schema.AbstractTables; public interface CERTGenerator, J extends Join, E extends Expression, T extends AbstractTable, C extends AbstractTableColumn> { CERTGenerator setTablesAndColumns(AbstractTables tables); E generateBooleanExpression(); S generateSelect(); List getRandomJoinClauses(); List getTableRefs(); List generateFetchColumns(boolean shouldCreateDummy); String generateExplainQuery(S select); boolean mutate(S select); }