}
return null;
}
// find table best row identifier object
BestRowIdentifier brId = table.findBestRowIdentifierByScopeType(scopeType);
// check if null
if (brId == null) {
// create
brId = factory.createBestRowIdentifier();
}
// set scope type
brId.setScopeType(scopeType);
// determine if current record shows pseudo column
boolean isPseudoColumn = ((getColumnPseudoType(pseudoColumn) != null) && (getColumnPseudoType(pseudoColumn) == ColumnPseudoType.PSEUDO));
TableColumn column = null;
if (isPseudoColumn) {
// create
column = factory.createTableColumn();
// ***************************************
// *** DatabaseNamedObject properties ***
// ***************************************
// name
column.setName(columnName);
// remarks
// column.setRemarks (remarks); // N/A
// TODO set extra properties
// column.addExtraProperty (String key, Object value);
// ***************
// *** Column ***
// ***************
// owner
column.setOwner(table);
// SQL type
column.setSqlType(getSqlType(dataType));
// type name
column.setTypeName(typeName);
// precision
column.setPrecision(precision);
// size
column.setSize(precision);
// scale
column.setRadix(scale);
// pseudo type
column.setPseudoType(getColumnPseudoType(pseudoColumn));
// add to the table
table.addColumn(column);
} else {
// trying to find column
column = table.findColumnByName(columnName);
// if column exists
if (column != null) {
// pseudo type
column.setPseudoType(getColumnPseudoType(pseudoColumn));
}
}
// if column exists
if (column != null) {
// add to the best row identifier
brId.addColumn(column);
}
// add best row identifier to the table
table.addBestRowIdentifier(brId);
// get scope type string
String scopeName = (brId.getScopeType() == null) ? null : brId.getScopeType().getName();
// log
if (traceLog.isDebugEnabled()) {
traceLog.debug(String.format("[Database %s] The table '%s' (schema %s, catalog %s) best row identifier with scope %s has been added.",
database.getName(),