Skip to content

Commit

Permalink
post process table after reading it in from the database.
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Oct 31, 2011
1 parent 180d9fe commit c718c98
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 36 deletions.
Expand Up @@ -693,26 +693,23 @@ public void syncTriggers() {
}

public void syncTriggers(StringBuilder sqlBuffer, boolean gen_always) {
if (dbDialect.getPlatform().getPlatformInfo().isTriggersSupported()) {
if (clusterService.lock(ClusterConstants.SYNCTRIGGERS)) {
synchronized (this) {
try {
log.info("TriggersSynchronizing");
// make sure channels are read from the database
configurationService.reloadChannels();
List<Trigger> triggersForCurrentNode = getTriggersForCurrentNode();
inactivateTriggers(triggersForCurrentNode, sqlBuffer);
updateOrCreateDatabaseTriggers(triggersForCurrentNode, sqlBuffer,
gen_always);
resetTriggerRouterCacheByNodeGroupId();
} finally {
clusterService.unlock(ClusterConstants.SYNCTRIGGERS);
log.info("TriggersSynchronized");
}
if (clusterService.lock(ClusterConstants.SYNCTRIGGERS)) {
synchronized (this) {
try {
log.info("TriggersSynchronizing");
// make sure channels are read from the database
configurationService.reloadChannels();
List<Trigger> triggersForCurrentNode = getTriggersForCurrentNode();
inactivateTriggers(triggersForCurrentNode, sqlBuffer);
updateOrCreateDatabaseTriggers(triggersForCurrentNode, sqlBuffer, gen_always);
resetTriggerRouterCacheByNodeGroupId();
} finally {
clusterService.unlock(ClusterConstants.SYNCTRIGGERS);
log.info("TriggersSynchronized");
}
} else {
log.info("TriggersSynchronizingFailedLock");
}
} else {
log.info("TriggersSynchronizingFailedLock");
}
}

Expand Down Expand Up @@ -825,19 +822,21 @@ protected void updateOrCreateDatabaseTriggers(List<Trigger> triggers, StringBuil
} else if (gen_always) {
reason = TriggerReBuildReason.FORCED;
forceRebuildOfTriggers = true;
}
}

boolean supportsTriggers = dbDialect.getPlatform().getPlatformInfo().isTriggersSupported();

newestHistory = rebuildTriggerIfNecessary(sqlBuffer,
forceRebuildOfTriggers, trigger, DataEventType.INSERT, reason,
latestHistoryBeforeRebuild, null, trigger.isSyncOnInsert(), table);
latestHistoryBeforeRebuild, null, trigger.isSyncOnInsert() && supportsTriggers, table);

newestHistory = rebuildTriggerIfNecessary(sqlBuffer, forceRebuildOfTriggers,
trigger, DataEventType.UPDATE, reason, latestHistoryBeforeRebuild,
newestHistory, trigger.isSyncOnUpdate(), table);
newestHistory, trigger.isSyncOnUpdate() && supportsTriggers, table);

newestHistory = rebuildTriggerIfNecessary(sqlBuffer, forceRebuildOfTriggers,
trigger, DataEventType.DELETE, reason, latestHistoryBeforeRebuild,
newestHistory, trigger.isSyncOnDelete(), table);
newestHistory, trigger.isSyncOnDelete() && supportsTriggers, table);

if (latestHistoryBeforeRebuild != null && newestHistory != null) {
inactivateTriggerHistory(latestHistoryBeforeRebuild);
Expand Down
Expand Up @@ -925,7 +925,7 @@ public Database readModelFromDatabase(Connection connection, String name, String

public Table readTableFromDatabase(Connection connection, String catalogName,
String schemaName, String tablename) throws SQLException {
return _modelReader.readTable(connection, catalogName, schemaName, tablename);
return postprocessTableFromDatabase(_modelReader.readTable(connection, catalogName, schemaName, tablename));
}

/*
Expand All @@ -939,26 +939,29 @@ protected void postprocessModelFromDatabase(Database model)
// around them which we'll remove now
for (int tableIdx = 0; tableIdx < model.getTableCount(); tableIdx++)
{
Table table = model.getTable(tableIdx);
postprocessTableFromDatabase(model.getTable(tableIdx));
}
}

protected Table postprocessTableFromDatabase(Table table) {
for (int columnIdx = 0; columnIdx < table.getColumnCount(); columnIdx++)
{
Column column = table.getColumn(columnIdx);

for (int columnIdx = 0; columnIdx < table.getColumnCount(); columnIdx++)
if (TypeMap.isTextType(column.getTypeCode()) ||
TypeMap.isDateTimeType(column.getTypeCode()))
{
Column column = table.getColumn(columnIdx);
String defaultValue = column.getDefaultValue();

if (TypeMap.isTextType(column.getTypeCode()) ||
TypeMap.isDateTimeType(column.getTypeCode()))
if ((defaultValue != null) && (defaultValue.length() >= 2) &&
defaultValue.startsWith("'") && defaultValue.endsWith("'"))
{
String defaultValue = column.getDefaultValue();

if ((defaultValue != null) && (defaultValue.length() >= 2) &&
defaultValue.startsWith("'") && defaultValue.endsWith("'"))
{
defaultValue = defaultValue.substring(1, defaultValue.length() - 1);
column.setDefaultValue(defaultValue);
}
defaultValue = defaultValue.substring(1, defaultValue.length() - 1);
column.setDefaultValue(defaultValue);
}
}
}
return table;
}

/*
Expand Down

0 comments on commit c718c98

Please sign in to comment.