Skip to content

Commit

Permalink
0004034: Create tables based on target table name and column names set
Browse files Browse the repository at this point in the history
by routers and transforms
  • Loading branch information
joshahicks committed Jul 5, 2023
1 parent aac7f6b commit 17b5f89
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
Expand Up @@ -32,7 +32,6 @@
import org.jumpmind.symmetric.db.ISymmetricDialect;
import org.jumpmind.symmetric.model.Node;
import org.jumpmind.symmetric.model.Router;
import org.jumpmind.symmetric.model.Trigger;
import org.jumpmind.symmetric.model.TriggerHistory;
import org.jumpmind.symmetric.service.ITriggerRouterService;
import org.jumpmind.symmetric.util.SymmetricUtils;
Expand Down Expand Up @@ -94,6 +93,7 @@ protected Table lookupAndOrderColumnsAccordingToTriggerHistory(String routerId,
table.setPrimaryKeys(triggerHistory.getParsedPkColumnNames());
}
Router router = triggerRouterService.getRouterById(routerId, false);

if (router != null && setTargetTableName) {
if (router.isUseSourceCatalogSchema()) {
table.setCatalog(catalogName);
Expand All @@ -106,12 +106,21 @@ protected Table lookupAndOrderColumnsAccordingToTriggerHistory(String routerId,
table.setCatalog(null);
} else if (StringUtils.isNotBlank(router.getTargetCatalogName())) {
table.setCatalog(SymmetricUtils.replaceNodeVariables(sourceNode, targetNode, router.getTargetCatalogName()));
table.setCatalog(SymmetricUtils.replaceCatalogSchemaVariables(catalogName,
symmetricDialect.getTargetPlatform().getDefaultCatalog(),
schemaName,
symmetricDialect.getTargetPlatform().getDefaultSchema(),
router.getTargetCatalogName()));
}
if (StringUtils.equals(Constants.NONE_TOKEN, router.getTargetSchemaName())) {
table.setSchema(null);
} else if (StringUtils.isNotBlank(router.getTargetSchemaName())) {
table.setSchema(SymmetricUtils.replaceNodeVariables(sourceNode, targetNode, router.getTargetSchemaName()));
table.setSchema(SymmetricUtils.replaceCatalogSchemaVariables(catalogName, schemaName, router.getTargetSchemaName()));
table.setSchema(SymmetricUtils.replaceCatalogSchemaVariables(catalogName,
symmetricDialect.getTargetPlatform().getDefaultCatalog(),
schemaName,
symmetricDialect.getTargetPlatform().getDefaultSchema(),
router.getTargetSchemaName()));
}
if (StringUtils.isNotBlank(router.getTargetTableName())) {
table.setName(router.getTargetTableName());
Expand Down
Expand Up @@ -164,7 +164,15 @@ public static String replaceNodeVariables(Node sourceNode, Node targetNode, Stri
return str;
}

public static String replaceCatalogSchemaVariables(String catalogName, String schemaName, String str) {
public static String replaceCatalogSchemaVariables(String catalogName, String defaultCatalogName,
String schemaName, String defaultSchemaName, String str) {
if (catalogName == null) {
catalogName = defaultCatalogName;
}
if (schemaName == null) {
schemaName = defaultSchemaName;
}

if (catalogName != null) {
str = FormatUtils.replace("sourceCatalogName", catalogName, str);
}
Expand Down

0 comments on commit 17b5f89

Please sign in to comment.