use of org.jumpmind.db.model.Column in project symmetric-ds by JumpMind.
the class DbFill method createRandomInsertValues.
private Row createRandomInsertValues(DmlStatement updStatement, Table table) {
Column[] columns = updStatement.getMetaData();
Row row = new Row(columns.length);
for (int i = 0; i < columns.length; i++) {
row.put(columns[i].getName(), generateRandomValueForColumn(columns[i]));
}
return row;
}
use of org.jumpmind.db.model.Column in project symmetric-ds by JumpMind.
the class DbFill method createRandomUpdateValues.
private Row createRandomUpdateValues(DmlStatement updStatement, Table table) {
Row row = selectRandomRow(table);
if (row == null) {
log.warn("Unable to update a random record in empty table '" + table.getName() + "'.");
return null;
}
Column[] columns = updStatement.getMetaData();
// Get list of local fk reference columns
List<String> localFkRefColumns = getLocalFkRefColumns(table);
for (int i = 0; i < columns.length; i++) {
if (!(columns[i].isPrimaryKey() || localFkRefColumns.contains(columns[i].getName()))) {
row.put(columns[i].getName(), generateRandomValueForColumn(columns[i]));
}
}
return row;
}
use of org.jumpmind.db.model.Column in project symmetric-ds by JumpMind.
the class FirebirdDdlBuilder method processChange.
/*
* Processes the addition of a column to a table.
*/
protected void processChange(Database currentModel, Database desiredModel, AddColumnChange change, StringBuilder ddl) {
ddl.append("ALTER TABLE ");
ddl.append(getFullyQualifiedTableNameShorten(change.getChangedTable()));
printIndent(ddl);
ddl.append("ADD ");
writeColumn(change.getChangedTable(), change.getNewColumn(), ddl);
printEndOfStatement(ddl);
Table curTable = currentModel.findTable(change.getChangedTable().getName(), delimitedIdentifierModeOn);
if (!change.isAtEnd()) {
Column prevColumn = change.getPreviousColumn();
if (prevColumn != null) {
// we need the corresponding column object from the current
// table
prevColumn = curTable.findColumn(prevColumn.getName(), delimitedIdentifierModeOn);
}
// Even though Firebird can only add columns, we can move them later
// on
ddl.append("ALTER TABLE ");
ddl.append(getFullyQualifiedTableNameShorten(change.getChangedTable()));
printIndent(ddl);
ddl.append("ALTER ");
printIdentifier(getColumnName(change.getNewColumn()), ddl);
ddl.append(" POSITION ");
// column positions start at 1 in Firebird
ddl.append(prevColumn == null ? "1" : String.valueOf(curTable.getColumnIndex(prevColumn) + 2));
printEndOfStatement(ddl);
}
if (change.getNewColumn().isAutoIncrement()) {
writeAutoIncrementCreateStmts(curTable, change.getNewColumn(), ddl, false);
}
change.apply(currentModel, delimitedIdentifierModeOn);
}
use of org.jumpmind.db.model.Column in project symmetric-ds by JumpMind.
the class InterbaseDdlBuilder method processChange.
/*
* Processes the addition of a column to a table.
*/
protected void processChange(Database currentModel, Database desiredModel, AddColumnChange change, StringBuilder ddl) {
ddl.append("ALTER TABLE ");
ddl.append(getFullyQualifiedTableNameShorten(change.getChangedTable()));
printIndent(ddl);
ddl.append("ADD ");
writeColumn(change.getChangedTable(), change.getNewColumn(), ddl);
printEndOfStatement(ddl);
Table curTable = currentModel.findTable(change.getChangedTable().getName(), delimitedIdentifierModeOn);
if (!change.isAtEnd()) {
Column prevColumn = change.getPreviousColumn();
if (prevColumn != null) {
// we need the corresponding column object from the current
// table
prevColumn = curTable.findColumn(prevColumn.getName(), delimitedIdentifierModeOn);
}
// Even though Interbase can only add columns, we can move them
// later on
ddl.append("ALTER TABLE ");
ddl.append(getFullyQualifiedTableNameShorten(change.getChangedTable()));
printIndent(ddl);
ddl.append("ALTER ");
printIdentifier(getColumnName(change.getNewColumn()), ddl);
ddl.append(" POSITION ");
// column positions start at 1 in Interbase
ddl.append(prevColumn == null ? "1" : String.valueOf(curTable.getColumnIndex(prevColumn) + 1));
printEndOfStatement(ddl);
}
if (change.getNewColumn().isAutoIncrement()) {
writeAutoIncrementCreateStmts(curTable, change.getNewColumn(), ddl);
}
change.apply(currentModel, delimitedIdentifierModeOn);
}
use of org.jumpmind.db.model.Column in project symmetric-ds by JumpMind.
the class DmlStatement method getLookupKeyData.
public String[] getLookupKeyData(Map<String, String> lookupDataMap) {
Column[] lookupColumns = getKeys();
if (lookupColumns != null && lookupColumns.length > 0) {
if (lookupDataMap != null && lookupDataMap.size() > 0) {
String[] keyDataAsArray = new String[lookupColumns.length];
int index = 0;
for (Column keyColumn : lookupColumns) {
keyDataAsArray[index++] = lookupDataMap.get(keyColumn.getName());
}
return keyDataAsArray;
}
}
return null;
}
Aggregations