use of com.google.gwtorm.schema.sql.SqlDialect in project gerrit by GerritCodeReview.
the class Schema_145 method migrateData.
@Override
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException, SQLException {
JdbcSchema schema = (JdbcSchema) db;
SqlDialect dialect = schema.getDialect();
try (StatementExecutor e = newExecutor(db)) {
try {
dialect.dropIndex(e, "account_external_ids", "account_external_ids_byEmail");
} catch (OrmException ex) {
// Ignore. The index did not exist.
}
e.execute("CREATE INDEX account_external_ids_byEmail" + " ON account_external_ids" + " (email_address)");
}
}
use of com.google.gwtorm.schema.sql.SqlDialect in project gerrit by GerritCodeReview.
the class Schema_89 method migrateData.
@Override
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException, SQLException {
SqlDialect dialect = ((JdbcSchema) db).getDialect();
try (StatementExecutor e = newExecutor(db)) {
dialect.dropIndex(e, "patch_set_approvals", "patch_set_approvals_openByUser");
dialect.dropIndex(e, "patch_set_approvals", "patch_set_approvals_closedByU");
}
}
use of com.google.gwtorm.schema.sql.SqlDialect in project gerrit by GerritCodeReview.
the class ScriptRunner method run.
void run(final ReviewDb db) throws OrmException {
try {
final JdbcSchema schema = (JdbcSchema) db;
final Connection c = schema.getConnection();
final SqlDialect dialect = schema.getDialect();
try (Statement stmt = c.createStatement()) {
for (String sql : commands) {
try {
if (!dialect.isStatementDelimiterSupported()) {
sql = CharMatcher.is(';').trimTrailingFrom(sql);
}
stmt.execute(sql);
} catch (SQLException e) {
throw new OrmException("Error in " + name + ":\n" + sql, e);
}
}
}
} catch (SQLException e) {
throw new OrmException("Cannot run statements for " + name, e);
}
}
use of com.google.gwtorm.schema.sql.SqlDialect in project gerrit by GerritCodeReview.
the class Schema_102 method migrateData.
@Override
protected void migrateData(ReviewDb db, UpdateUI ui) throws OrmException, SQLException {
JdbcSchema schema = (JdbcSchema) db;
SqlDialect dialect = schema.getDialect();
try (StatementExecutor e = newExecutor(db)) {
// Drop left over indexes that were missed to be removed in schema 84.
// See "Delete SQL index support" commit for more details:
// d4ae3a16d5e1464574bd04f429a63eb9c02b3b43
Pattern pattern = Pattern.compile("^changes_(allOpen|allClosed|byBranchClosed)$", Pattern.CASE_INSENSITIVE);
String table = "changes";
Set<String> listIndexes = dialect.listIndexes(schema.getConnection(), table);
for (String index : listIndexes) {
if (pattern.matcher(index).matches()) {
dialect.dropIndex(e, table, index);
}
}
dialect.dropIndex(e, table, "changes_byProjectOpen");
if (dialect instanceof DialectPostgreSQL) {
e.execute("CREATE INDEX changes_byProjectOpen" + " ON " + table + " (dest_project_name, last_updated_on)" + " WHERE open = 'Y'");
} else {
e.execute("CREATE INDEX changes_byProjectOpen" + " ON " + table + " (open, dest_project_name, last_updated_on)");
}
}
}
use of com.google.gwtorm.schema.sql.SqlDialect in project gerrit by GerritCodeReview.
the class Schema_105 method migrateData.
@Override
protected void migrateData(ReviewDb db, UpdateUI ui) throws SQLException, OrmException {
JdbcSchema schema = (JdbcSchema) db;
SqlDialect dialect = schema.getDialect();
Map<String, OrmException> errors = new HashMap<>();
try (StatementExecutor e = newExecutor(db)) {
for (String index : listChangesIndexes(schema)) {
ui.message("Dropping index " + index + " on table " + TABLE);
try {
dialect.dropIndex(e, TABLE, index);
} catch (OrmException err) {
errors.put(index, err);
}
}
}
for (String index : listChangesIndexes(schema)) {
String msg = "Failed to drop index " + index;
OrmException err = errors.get(index);
if (err != null) {
msg += ": " + err.getMessage();
}
ui.message(msg);
}
}
Aggregations