diff --git a/symmetric-client-clib/src/core/JobManager.c b/symmetric-client-clib/src/core/JobManager.c index 5caa83d944..3d3845eb7c 100644 --- a/symmetric-client-clib/src/core/JobManager.c +++ b/symmetric-client-clib/src/core/JobManager.c @@ -47,44 +47,44 @@ void SymJobManager_invoke(SymJobManager *this) { this->engine->syncTriggers(this->engine); time(&this->lastSyncTriggersTime); } - if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_ROUTE_JOB, SYM_PARAMETER_ROUTE_PERIOD_MS, this->lastRouteTime)) { - SymLog_info("ROUTE ============================)"); - this->engine->route(this->engine); - time(&this->lastRouteTime); - } - if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PUSH_JOB, SYM_PARAMETER_PUSH_PERIOD_MS, this->lastPushTime)) { - SymRemoteNodeStatuses *pushStatus = this->engine->push(this->engine); - if (pushStatus->wasBatchProcessed(pushStatus) - || pushStatus->wasDataProcessed(pushStatus)) { - // Only run heartbeat after a successful push to avoid queueing up lots of offline heartbeats. - if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_HEARTBEAT_JOB, SYM_PARAMETER_HEARTBEAT_JOB_PERIOD_MS, this->lastHeartbeatTime)) { - SymLog_info("HEARTBEAT ============================)"); - this->engine->heartbeat(this->engine, 0); - time(&this->lastHeartbeatTime); - } - } - time(&this->lastPushTime); - } - if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PULL_JOB, SYM_PARAMETER_PULL_PERIOD_MS, this->lastPullTime)) { - SymLog_info("PULL ============================)"); - this->engine->pull(this->engine); - time(&this->lastPullTime); - } - if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PURGE_JOB, SYM_PARAMETER_PURGE_PERIOD_MS, this->lastPurgeTime)) { - SymLog_info("PURGE ============================)"); - this->engine->purge(this->engine); - time(&this->lastPurgeTime); - } - if (1) { // TODO. - SymLog_info("OFFLINE PUSH ============================)"); - this->engine->offlinePushService->pushData(this->engine->offlinePushService); - //time(&this->lastPurgeTime); - } - if (1) { // TODO. - SymLog_info("OFFLINE PULL ============================)"); - this->engine->offlinePullService->pullData(this->engine->offlinePullService); - //time(&this->lastPurgeTime); - } +// if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_ROUTE_JOB, SYM_PARAMETER_ROUTE_PERIOD_MS, this->lastRouteTime)) { +// SymLog_info("ROUTE ============================)"); +// this->engine->route(this->engine); +// time(&this->lastRouteTime); +// } +// if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PUSH_JOB, SYM_PARAMETER_PUSH_PERIOD_MS, this->lastPushTime)) { +// SymRemoteNodeStatuses *pushStatus = this->engine->push(this->engine); +// if (pushStatus->wasBatchProcessed(pushStatus) +// || pushStatus->wasDataProcessed(pushStatus)) { +// // Only run heartbeat after a successful push to avoid queueing up lots of offline heartbeats. +// if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_HEARTBEAT_JOB, SYM_PARAMETER_HEARTBEAT_JOB_PERIOD_MS, this->lastHeartbeatTime)) { +// SymLog_info("HEARTBEAT ============================)"); +// this->engine->heartbeat(this->engine, 0); +// time(&this->lastHeartbeatTime); +// } +// } +// time(&this->lastPushTime); +// } +// if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PULL_JOB, SYM_PARAMETER_PULL_PERIOD_MS, this->lastPullTime)) { +// SymLog_info("PULL ============================)"); +// this->engine->pull(this->engine); +// time(&this->lastPullTime); +// } +// if (SymJobManager_shouldRun(this, SYM_PARAMETER_START_PURGE_JOB, SYM_PARAMETER_PURGE_PERIOD_MS, this->lastPurgeTime)) { +// SymLog_info("PURGE ============================)"); +// this->engine->purge(this->engine); +// time(&this->lastPurgeTime); +// } +// if (1) { // TODO. +// SymLog_info("OFFLINE PUSH ============================)"); +// this->engine->offlinePushService->pushData(this->engine->offlinePushService); +// //time(&this->lastPurgeTime); +// } +// if (1) { // TODO. +// SymLog_info("OFFLINE PULL ============================)"); +// this->engine->offlinePullService->pullData(this->engine->offlinePullService); +// //time(&this->lastPurgeTime); +// } } void SymJobManager_startJobs(SymJobManager *this) { diff --git a/symmetric-client-clib/src/db/platform/sqlite/SqliteTriggerTemplate.c b/symmetric-client-clib/src/db/platform/sqlite/SqliteTriggerTemplate.c index 43ad0397c5..631751e288 100644 --- a/symmetric-client-clib/src/db/platform/sqlite/SqliteTriggerTemplate.c +++ b/symmetric-client-clib/src/db/platform/sqlite/SqliteTriggerTemplate.c @@ -31,23 +31,31 @@ char * SymSqliteTriggerTemplate_fillOutColumnTemplate(SymSqliteTriggerTemplate * char *templateToUse; switch (column->sqlType) { + case SYM_SQL_TYPE_BOOLEAN: case SYM_SQL_TYPE_TINYINT: case SYM_SQL_TYPE_SMALLINT: case SYM_SQL_TYPE_INTEGER: case SYM_SQL_TYPE_BIGINT: case SYM_SQL_TYPE_FLOAT: - case SYM_SQL_TYPE_REAL: case SYM_SQL_TYPE_DOUBLE: case SYM_SQL_TYPE_NUMERIC: case SYM_SQL_TYPE_DECIMAL: + case SYM_SQL_TYPE_REAL: templateToUse = "case when %s.%s is null then '' else ('\"' || cast(%s.%s as varchar) || '\"') end"; break; case SYM_SQL_TYPE_CHAR: case SYM_SQL_TYPE_NCHAR: case SYM_SQL_TYPE_VARCHAR: case SYM_SQL_TYPE_NVARCHAR: + case SYM_SQL_TYPE_CLOB: + case SYM_SQL_TYPE_LONGVARCHAR: + case SYM_SQL_TYPE_LONGNVARCHAR: templateToUse = "case when %s.%s is null then '' else '\"' || replace(replace(%s.%s,'\\','\\\\'),'\"','\\\"') || '\"' end"; break; + case SYM_SQL_TYPE_BLOB: + case SYM_SQL_TYPE_LONGVARBINARY: + templateToUse = "case when %s.%s is null then '' else '\"' || replace(replace(hex(%s.%s),'\\','\\\\'),'\"','\\\"') || '\"' end "; + break; default: templateToUse = NULL; SymLog_error("Unknown sqlType %d", column->sqlType);