package liquibase.sqlgenerator.core;
import liquibase.database.Database;
import liquibase.database.core.InformixDatabase;
import liquibase.exception.ValidationErrors;
import liquibase.sql.Sql;
import liquibase.sql.UnparsedSql;
import liquibase.sqlgenerator.SqlGenerator;
import liquibase.sqlgenerator.SqlGeneratorChain;
import liquibase.statement.core.SelectSequencesStatement;
public class SelectSequencesGeneratorInformix extends AbstractSqlGenerator<SelectSequencesStatement> {
@Override
public int getPriority() {
return PRIORITY_DATABASE;
}
@Override
public boolean supports(SelectSequencesStatement statement, Database database) {
return database instanceof InformixDatabase;
}
public ValidationErrors validate(SelectSequencesStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
return new ValidationErrors();
}
public Sql[] generateSql(SelectSequencesStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
StringBuilder sb = new StringBuilder("SELECT tabname FROM systables t, syssequences s WHERE s.tabid = t.tabid");
String schemaName = statement.getSchemaName();
if (schemaName != null) {
sb.append(" AND t.owner = ").append("'").append(schemaName).append("'");
}
return new Sql[]{
new UnparsedSql(sb.toString())
};
}
}