protected void printCsvTableHeader() { println(table.getColumnNames()); }
protected String[] getRowData(CsvData data, String dataType) { String[] targetValues = new String[targetTable.getColumnCount()]; String[] targetColumnNames = targetTable.getColumnNames(); String[] originalValues = data.getParsedData(dataType); String[] sourceColumnNames = sourceTable.getColumnNames(); if (originalValues != null) { for (int i = 0; i < sourceColumnNames.length && i < originalValues.length; i++) { for (int t = 0; t < targetColumnNames.length; t++) { if (sourceColumnNames[i].equalsIgnoreCase(targetColumnNames[t])) { targetValues[t] = originalValues[i]; break; } } } } return targetValues; }
protected Map<String, String> getLookupDataMap(CsvData data) { Map<String, String> keyData = null; if (data.getDataEventType() == DataEventType.INSERT) { keyData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), CsvData.ROW_DATA); } else { keyData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), CsvData.OLD_DATA); if (keyData == null || keyData.size() == 0) { keyData = data.toColumnNameValuePairs(sourceTable.getPrimaryKeyColumnNames(), CsvData.PK_DATA); } if (keyData == null || keyData.size() == 0) { keyData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), CsvData.ROW_DATA); } } return keyData; }
protected void bind(Interpreter interpreter, DataContext context, Table table, CsvData data, Exception error) throws EvalError { interpreter.set(LOG, log); interpreter.set(ENGINE, this.engine); interpreter.set(CONTEXT, context); interpreter.set(TABLE, table); interpreter.set(DATA, data); interpreter.set(ERROR, error); if (data != null) { Map<String, String> sourceValues = data.toColumnNameValuePairs(table.getColumnNames(), CsvData.ROW_DATA); for (String columnName : sourceValues.keySet()) { interpreter.set(columnName, sourceValues.get(columnName)); interpreter.set(columnName.toUpperCase(), sourceValues.get(columnName)); } Map<String, String> oldValues = data.toColumnNameValuePairs(table.getColumnNames(), CsvData.OLD_DATA); for (String columnName : oldValues.keySet()) { interpreter.set(OLD_ + columnName, sourceValues.get(columnName)); interpreter.set(OLD_ + columnName.toUpperCase(), sourceValues.get(columnName)); } } }
private void recordSyncNeeded(DataContext context, Table table, CsvData data) { if (isSyncTriggersNeeded(table)) { context.put(CTX_KEY_RESYNC_NEEDED, true); } if (data.getDataEventType() == DataEventType.CREATE) { @SuppressWarnings("unchecked") Set<Table> tables = (Set<Table>)context.get(CTX_KEY_RESYNC_TABLE_NEEDED); if (tables == null) { tables = new HashSet<Table>(); context.put(CTX_KEY_RESYNC_TABLE_NEEDED, tables); } tables.add(table); } if (data.getDataEventType() == DataEventType.UPDATE && !engine.getParameterService().is(ParameterConstants.TRIGGER_CREATE_BEFORE_INITIAL_LOAD)) { if (matchesTable(table, TableConstants.SYM_NODE_SECURITY)) { Map<String,String> newData = data.toColumnNameValuePairs(table.getColumnNames(), CsvData.ROW_DATA); String initialLoadEnabled = newData.get("INITIAL_LOAD_ENABLED"); String initialLoadTime = newData.get("INITIAL_LOAD_TIME"); if (StringUtils.isNotBlank(initialLoadTime) && "0".equals(initialLoadEnabled)) { log.info("Requesting syncTriggers because {} is false and sym_node_security changed to indicate that an initial load has completed", ParameterConstants.TRIGGER_CREATE_BEFORE_INITIAL_LOAD); context.put(CTX_KEY_RESYNC_NEEDED, true); } } } }
if (eventType == DataEventType.INSERT || eventType == DataEventType.UPDATE) { Map<String, String> columnData = data.toColumnNameValuePairs( snapshotTable.getColumnNames(), CsvData.ROW_DATA); Map<String, String> oldColumnData = data.toColumnNameValuePairs( snapshotTable.getColumnNames(), CsvData.OLD_DATA);
String sql = stmt.getColumnsSql(new Column[] { column }); Map<String, String> newData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), CsvData.ROW_DATA); String loadingStr = newData.get(columnName);
Map<String, String> sourceValues = data.toColumnNameValuePairs(this.sourceTable.getColumnNames(), CsvData.ROW_DATA); Map<String, String> oldSourceValues = data.toColumnNameValuePairs(this.sourceTable.getColumnNames(), CsvData.OLD_DATA); Map<String, String> sourceKeyValues = null;
csvWriter.writeRecord(table.getColumnNames()); } else if (!noData && format == Format.XML) { write("<table_data name=\"", table.getName(), "\">\n");
sourceTable.getName(), false); if (table != null) { table = table.copyAndFilterColumns(sourceTable.getColumnNames(), sourceTable.getPrimaryKeyColumnNames(), this.writerSettings.isUsePrimaryKeysFromSource());
List<Column> lobColumns = platform.getLobColumns(table); if (lobColumns.size() > 0) { String[] columnNames = table.getColumnNames(); String[] rowData = data.getParsedData(CsvData.ROW_DATA); Column[] orderedColumns = table.getColumns();
protected boolean isVersionNewer(Conflict conflict, DatabaseWriter writer, CsvData data) { String columnName = conflict.getDetectExpression(); Table targetTable = writer.getTargetTable(); Table sourceTable = writer.getSourceTable(); String[] pkData = data.getPkData(targetTable); Object[] objectValues = writer.getPlatform().getObjectValues( writer.getBatch().getBinaryEncoding(), pkData, targetTable.getPrimaryKeyColumns()); DmlStatement stmt = writer.getPlatform().createDmlStatement(DmlType.FROM, targetTable); String sql = stmt.getColumnsSql(new Column[] { targetTable.getColumnWithName(columnName) }); Long existingVersion = writer.getTransaction() .queryForObject(sql, Long.class, objectValues); if (existingVersion == null) { return true; } else { Map<String, String> newData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), CsvData.ROW_DATA); Long loadingVersion = Long.valueOf(newData.get(columnName)); return loadingVersion > existingVersion; } }
public boolean start(Table table) { /* * in the case when the target schema or catalog is set then we need to * use the previous schema or catalog to look up the table locally. */ this.currentTable = platform.getTableFromCache(table.getOldCatalog(), table.getOldSchema(), table.getName(), false); this.currentTable = currentTable.copyAndFilterColumns(table.getColumnNames(), table.getPrimaryKeyColumnNames(), true); /* * restore the schema and catalog from the passed in table because they * might have not been originally set, but were set when looking up the table locally */ this.currentTable.setSchema(table.getSchema()); this.currentTable.setCatalog(table.getCatalog()); this.currentTable.setName(table.getName()); return true; }