Skip to content

Commit

Permalink
Merge branch '3.7' of https://github.com/JumpMind/symmetric-ds.git in…
Browse files Browse the repository at this point in the history
…to 3.7
  • Loading branch information
chenson42 committed Jun 30, 2016
2 parents c7b523a + c444e49 commit 6d4e72a
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 45 deletions.
Expand Up @@ -71,12 +71,22 @@ public void write(CsvData data) {
statistics.get(batch).increment(DataWriterStatisticConstants.LINENUMBER);
statistics.get(batch).startTimer(DataWriterStatisticConstants.DATABASEMILLIS);

if (targetTable != null) {
DataEventType dataEventType = data.getDataEventType();

DataEventType dataEventType = data.getDataEventType();

if (targetTable != null || dataEventType.equals(DataEventType.CREATE)) {
needsBinaryConversion = false;
if (!batch.getBinaryEncoding().equals(BinaryEncoding.NONE) && targetTable != null) {
for (Column column : targetTable.getColumns()) {
if (column.isOfBinaryType()) {
needsBinaryConversion = true;
break;
}
}
}

switch (dataEventType) {
case INSERT:
startCopy();
startCopy();
try {
String[] parsedData = data.getParsedData(CsvData.ROW_DATA);
if (needsBinaryConversion) {
Expand Down Expand Up @@ -105,14 +115,13 @@ public void write(CsvData data) {
endCopy();
super.write(data);
break;
}
}

if (loadedRows >= maxRowsBeforeFlush) {
flush();
loadedRows = 0;
}
}

}
statistics.get(batch).stopTimer(DataWriterStatisticConstants.DATABASEMILLIS);
}

Expand Down Expand Up @@ -174,32 +183,7 @@ protected void endCopy() {

@Override
public boolean start(Table table) {
if (super.start(table)) {
if (targetTable != null) {
needsBinaryConversion = false;
if (!batch.getBinaryEncoding().equals(BinaryEncoding.NONE)) {
for (Column column : targetTable.getColumns()) {
if (column.isOfBinaryType()) {
needsBinaryConversion = true;
break;
}
}
}
} else if (sourceTable != null) {
String qualifiedName = sourceTable.getFullyQualifiedTableName();
if (writerSettings.isIgnoreMissingTables()) {
if (!missingTables.contains(qualifiedName)) {
log.warn("Did not find the {} table in the target database", qualifiedName);
missingTables.add(qualifiedName);
}
} else {
throw new RuntimeException("Missing table in target database: " + qualifiedName);
}
}
return true;
} else {
return false;
}
return super.start(table);
}

@Override
Expand Down
Expand Up @@ -336,7 +336,7 @@ public void saveRegistrationRequest(RegistrationRequest request) {
request.getLastUpdateTime(), request.getRegisteredNodeId(),
request.getStatus().name(), request.getErrorMessage(), nodeGroupId,
externalId, request.getIpAddress(), request.getHostName() }, new int[] {
Types.NUMERIC, Types.VARCHAR, Types.DATE, Types.VARCHAR, Types.VARCHAR,
Types.NUMERIC, Types.VARCHAR, Types.TIMESTAMP, Types.VARCHAR, Types.VARCHAR,
Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,
Types.VARCHAR });
}
Expand All @@ -347,7 +347,7 @@ public void saveRegistrationRequest(RegistrationRequest request) {
new Object[] { request.getLastUpdateBy(), request.getLastUpdateTime(),
request.getRegisteredNodeId(), request.getStatus().name(), nodeGroupId,
externalId, request.getIpAddress(), request.getHostName(),
request.getErrorMessage() }, new int[] { Types.VARCHAR, Types.DATE,
request.getErrorMessage() }, new int[] { Types.VARCHAR, Types.TIMESTAMP,
Types.VARCHAR, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,
Types.VARCHAR, Types.VARCHAR, Types.VARCHAR });
}
Expand Down
Expand Up @@ -900,7 +900,7 @@ protected List<TriggerRouter> getTriggerRoutersForData(Data data) {
triggerRouters = engine.getTriggerRouterService()
.getTriggerRoutersForCurrentNode(false)
.get((data.getTriggerHistory().getTriggerId()));
if (triggerRouters == null && data.getTriggerHistory().getTriggerId().equals(AbstractFileParsingRouter.TRIGGER_ID_FILE_PARSER)) {
if (triggerRouters == null && data.getTriggerHistory().getTriggerId() != null && data.getTriggerHistory().getTriggerId().equals(AbstractFileParsingRouter.TRIGGER_ID_FILE_PARSER)) {
TriggerRouter dynamicTriggerRouter = new TriggerRouter();
dynamicTriggerRouter.setRouter(engine.getTriggerRouterService().getRouterById(data.getExternalData()));
dynamicTriggerRouter.setTrigger(new Trigger());
Expand Down
Expand Up @@ -96,6 +96,9 @@ public TriggerRouterServiceSqlMap(IDatabasePlatform platform,

putSql("activeTriggerHistSql", "" + "where inactive_time is null ");

putSql("activeTriggerHistSqlByTriggerId", ""
+ "where trigger_id=? and inactive_time is null ");

putSql("allTriggerHistSql",
""
+ "select trigger_hist_id,trigger_id,source_table_name,table_hash,create_time,pk_column_names,column_names,last_trigger_build_reason,name_for_delete_trigger,name_for_insert_trigger,name_for_update_trigger,source_schema_name,source_catalog_name,trigger_row_hash,trigger_template_hash,error_message "
Expand Down
Expand Up @@ -91,7 +91,7 @@ public String getDefaultSchema() {

@Override
public String getDefaultCatalog() {
return null;
return "";
}

@Override
Expand Down
Expand Up @@ -24,4 +24,7 @@ public String getDefaultCatalog() {
return "";
}

public String getDefaultSchema() {
return "";
}
}
6 changes: 3 additions & 3 deletions symmetric-jdbc/src/test/resources/db-test.properties
Expand Up @@ -92,9 +92,9 @@ sqlserver.client.db.url=jdbc:sqlserver://win2008dev.loc;databasename=SymmetricCl
firebird.db.driver=org.firebirdsql.jdbc.FBDriver
firebird.db.user=sysdba
firebird.db.password=masterkey
firebird.root.db.url=jdbc:firebirdsql://dbdev1.loc:3070//var/lib/firebird/data/SymmetricRoot
firebird.server.db.url=jdbc:firebirdsql://dbdev1.loc:3070//var/lib/firebird/data/SymmetricRoot
firebird.client.db.url=jdbc:firebirdsql://dbdev1.loc:3070//var/lib/firebird/data/SymmetricClient
firebird.root.db.url=jdbc:firebirdsql://dbdev1.loc//var/lib/firebird/data/SymmetricRoot
firebird.server.db.url=jdbc:firebirdsql://dbdev1.loc//var/lib/firebird/data/SymmetricRoot
firebird.client.db.url=jdbc:firebirdsql://dbdev1.loc//var/lib/firebird/data/SymmetricClient

interbase.db.driver=interbase.interclient.Driver
interbase.db.user=sysdba
Expand Down
Expand Up @@ -324,8 +324,8 @@ public final void getSnapshot(HttpServletResponse resp) {
@RequestMapping(value = "engine/querynode", method = {RequestMethod.GET, RequestMethod.POST})
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public final QueryResults getQueryNode(@RequestParam(value = "query") String sql) {
return queryNodeImpl(getSymmetricEngine(), sql);
public final QueryResults getQueryNode(@RequestParam(value = "query") String sql, @RequestParam(value = "isquery", defaultValue = "true") boolean isQuery) {
return queryNodeImpl(getSymmetricEngine(), sql, isQuery);
}

/**
Expand All @@ -336,8 +336,8 @@ public final QueryResults getQueryNode(@RequestParam(value = "query") String sql
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public final QueryResults getQueryNode(@PathVariable("engine") String engineName,
@RequestParam(value = "query") String sql) {
return queryNodeImpl(getSymmetricEngine(engineName), sql);
@RequestParam(value = "query") String sql, @RequestParam(value = "isquery", defaultValue = "true") boolean isQuery) {
return queryNodeImpl(getSymmetricEngine(engineName), sql, isQuery);
}

/**
Expand Down Expand Up @@ -1640,14 +1640,20 @@ private Set<ChannelStatus> channelStatusImpl(ISymmetricEngine engine) {
return channelStatus;
}

private QueryResults queryNodeImpl(ISymmetricEngine engine, String sql) {
private QueryResults queryNodeImpl(ISymmetricEngine engine, String sql, boolean isQuery) {

QueryResults results = new QueryResults();
org.jumpmind.symmetric.web.rest.model.Row xmlRow = null;
org.jumpmind.symmetric.web.rest.model.Column xmlColumn = null;

ISqlTemplate sqlTemplate = engine.getSqlTemplate();
try {
if(!isQuery){
int updates = sqlTemplate.update(sql);
results.setNbrResults(updates);
return results;
}

List<Row> rows = sqlTemplate.query(sql);
int nbrRows = 0;
for (Row row : rows) {
Expand Down

0 comments on commit 6d4e72a

Please sign in to comment.