Search in sources :

Example 61 with Column

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;
}
Also used : Column(org.jumpmind.db.model.Column) Row(org.jumpmind.db.sql.Row)

Example 62 with Column

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;
}
Also used : Column(org.jumpmind.db.model.Column) Row(org.jumpmind.db.sql.Row)

Example 63 with Column

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);
}
Also used : Table(org.jumpmind.db.model.Table) Column(org.jumpmind.db.model.Column)

Example 64 with Column

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);
}
Also used : Table(org.jumpmind.db.model.Table) Column(org.jumpmind.db.model.Column)

Example 65 with Column

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;
}
Also used : Column(org.jumpmind.db.model.Column)

Aggregations

Column (org.jumpmind.db.model.Column)179 Table (org.jumpmind.db.model.Table)78 ArrayList (java.util.ArrayList)34 IndexColumn (org.jumpmind.db.model.IndexColumn)23 PlatformColumn (org.jumpmind.db.model.PlatformColumn)21 Test (org.junit.Test)16 Row (org.jumpmind.db.sql.Row)15 LinkedHashMap (java.util.LinkedHashMap)12 ResultSet (java.sql.ResultSet)11 DmlStatement (org.jumpmind.db.sql.DmlStatement)10 SqlException (org.jumpmind.db.sql.SqlException)10 InvocationTargetException (java.lang.reflect.InvocationTargetException)9 IIndex (org.jumpmind.db.model.IIndex)9 HashMap (java.util.HashMap)8 ForeignKey (org.jumpmind.db.model.ForeignKey)8 CsvData (org.jumpmind.symmetric.io.data.CsvData)8 PreparedStatement (java.sql.PreparedStatement)7 IOException (java.io.IOException)6 SQLException (java.sql.SQLException)6 Reference (org.jumpmind.db.model.Reference)6