Skip to content

Commit

Permalink
Perform trigger router query.
Browse files Browse the repository at this point in the history
  • Loading branch information
mmichalek committed Oct 14, 2015
1 parent d196e8a commit 62472bf
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
20 changes: 19 additions & 1 deletion symmetric-client-clib/inc/model/Router.h
Expand Up @@ -22,10 +22,28 @@
#define INC_MODEL_ROUTER_H_

#include <stdlib.h>

#include "model/NodeGroupLink.h"

typedef struct SymRouter {
char *routerId;
SymNodeGroupLink *nodeGroupLink;
char *routerType;

/**
* Default to routing all data to all nodes.
*/
char *routerExpression;
unsigned short syncOnUpdate;
unsigned short syncOnInsert;
unsigned short syncOnDelete;
char *targetCatalogName;
char *targetSchemaName;
char *targetTableName;
unsigned short useSourceCatalogSchema;
SymDate *createTime;
SymDate *lastUpdateTime;
char *lastUpdateBy;

void (*destroy)(struct SymRouter *this);
} SymRouter;

Expand Down
34 changes: 34 additions & 0 deletions symmetric-client-clib/inc/model/Trigger.h
Expand Up @@ -22,9 +22,43 @@
#define INC_MODEL_TRIGGER_H_

#include <stdlib.h>
#include "util/Date.h"


typedef struct SymTrigger {
char *triggerId;
char *sourceTableName;
char *sourceSchemaName;
char *sourceCatalogName;
char *channelId;
char *reloadChannelId;
unsigned short syncOnUpdate;
unsigned short syncOnDelete;
unsigned short syncOnIncomingBatch;
unsigned short useStreamLogs;
unsigned short useCaptureLogs;
unsigned short useCaptureOldData;
unsigned short *useHandleKeyUpdates;
char *nameForInsertTrigger;
char *nameForUpdateTrigger;
char *nameForDeleteTrigger;
char *syncOnUpdateCondition;
char *syncOnInsertCondition;
char *syncOnDeleteCondition;
char *channelExpression;
char *customOnUpdateText;
char *customOnInsertText;
char *customOnDeleteText;
char *excludedColumnNames;
/**
* This is a SQL expression that creates a unique id which the sync process
* can use to 'group' events together and commit together.
*/
char *txIdExpression;
char *externalSelect;
SymDate *createTime;
SymDate *lastUpdateTime;
char *lastUpdateBy;

void (*destroy)(struct SymTrigger *this);
} SymTrigger;
Expand Down
1 change: 0 additions & 1 deletion symmetric-client-clib/inc/service/TriggerRouterService.h
Expand Up @@ -74,7 +74,6 @@ typedef struct SymTriggerRouterService {
SymParameterService *parameterService;
SymConfigurationService *configurationService;
SymDatabasePlatform *platform;
SymSqlTemplate *sqlTemplate;

unsigned short (*refreshFromDatabase)(struct SymTriggerRouterService *this);
SymList* (*getTriggers)(struct SymTriggerRouterService *this, unsigned short replaceTokens);
Expand Down
3 changes: 2 additions & 1 deletion symmetric-client-clib/src/service/TriggerRouterService.c
Expand Up @@ -348,13 +348,14 @@ SymList * SymTriggerRouterService_getTriggerRouters(SymTriggerRouterService *thi
}

SymList * SymTriggerRouterService_getAllTriggerRoutersForCurrentNode(SymTriggerRouterService *this, char *sourceNodeGroupId) {
SymSqlTemplate *sqlTemplate = this->platform->getSqlTemplate(this->platform);

char *triggerRouterSql = this->getTriggerRouterSql(this, "activeTriggersForSourceNodeGroupSql");

SymStringArray *args = SymStringArray_new(NULL);
args->add(args, sourceNodeGroupId);
int error;
SymList* triggers = this->sqlTemplate->query(this->sqlTemplate, triggerRouterSql, args, NULL, &error, (void *) SymTriggerRouterService_triggerRouterMapper);
SymList* triggers = sqlTemplate->query(sqlTemplate, triggerRouterSql, args, NULL, &error, (void *) SymTriggerRouterService_triggerRouterMapper);
args->destroy(args);

SymList *triggerRouters =
Expand Down

0 comments on commit 62472bf

Please sign in to comment.