public String getFullyQualifiedSourceTableName() { return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName, sourceTableName); }
public String getFullyQualifiedTargetTableName() { return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName, sourceTableName); }
public String getFullyQualifiedSourceTableName() { return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName, sourceTableName); }
public String getFullyQualifiedSourceTableName() { return Table.getFullyQualifiedTableName(sourceCatalogName, sourceSchemaName, sourceTableName, null); }
public String toQualifiedTableName() { if (StringUtils.isNotBlank(targetTableName)) { return Table.getFullyQualifiedTableName(targetCatalogName, targetSchemaName, targetTableName); } else { return null; } }
@Override public boolean start(Table table) { activeTransforms = transformsBySourceTable.get(table.getFullyQualifiedTableName()); if (activeTransforms != null && activeTransforms.size() > 0) { this.sourceTable = table; return true; } else { this.sourceTable = null; return super.start(table); } }
@Override public void allowInsertIntoAutoIncrementColumns(boolean allow, Table table, String quote) { if (table != null && table.getAutoIncrementColumns().length > 0) { if (allow) { execute(String.format("SET IDENTITY_INSERT %s ON", table.getFullyQualifiedTableName(quote))); } else { execute(String.format("SET IDENTITY_INSERT %s OFF", table.getFullyQualifiedTableName(quote))); } } }
@Override public void allowInsertIntoAutoIncrementColumns(boolean allow, Table table, String quote) { if (table != null && table.getAutoIncrementColumns().length > 0) { if (allow) { execute(String.format("SET IDENTITY_INSERT %s ON", table.getFullyQualifiedTableName(quote))); } else { execute(String.format("SET IDENTITY_INSERT %s OFF", table.getFullyQualifiedTableName(quote))); } } }
public TableExtractDataReaderSource(IDatabasePlatform platform, String catalogName, String schemaName, String tableName, String whereClause, boolean streamLobs, String sourceNodeId, String targetNodeId) { this.platform = platform; this.table = platform.getTableFromCache(catalogName, schemaName, tableName, true); if (table == null) { throw new IllegalStateException(String.format("Could not find table %s", Table.getFullyQualifiedTableName(catalogName, schemaName, tableName))); } this.whereClause = whereClause; this.streamLobs = streamLobs; this.batch = new Batch(BatchType.EXTRACT, -1, "default", BinaryEncoding.BASE64, sourceNodeId, targetNodeId, false); }
protected void println(String... data) { FileInfo fileInfo = fileInfoByTable.get(table.getFullyQualifiedTableName()); if (fileInfo != null) { try { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < data.length; i++) { if (i != 0) { buffer.append(","); } buffer.append(data[i]); } buffer.append("\n"); fileInfo.outputFileWriter.write(buffer.toString()); long byteCount = buffer.length(); statistics.get(batch).increment(DataWriterStatisticConstants.BYTECOUNT, byteCount); } catch (IOException e) { throw new IoException(e); } } }
protected void createFile(Table table, Batch batch) { FileInfo fileInfo = fileInfoByTable.get(table.getFullyQualifiedTableName()); if (fileInfo == null) { try { fileInfo = new FileInfo(); fileInfo.outputFile = new File(stagingDir, batch.getBatchId() + "-" + table.getFullyQualifiedTableName() + "." + format.name().toLowerCase()); fileInfo.outputFile.getParentFile().mkdirs(); fileInfo.outputFileWriter = new BufferedWriter(new FileWriter(fileInfo.outputFile)); fileInfoByTable.put(table.getFullyQualifiedTableName(), fileInfo); if (format == Format.CSV) { printCsvTableHeader(); } } catch (IOException e) { throw new IoException(e); } } }
private String createCopyMgrSql() { StringBuilder sql = new StringBuilder("COPY "); String quote = platform.getDatabaseInfo().getDelimiterToken(); sql.append(targetTable.getFullyQualifiedTableName(quote)); sql.append("("); Column[] columns = targetTable.getColumns(); for (Column column : columns) { String columnName = column.getName(); if (StringUtils.isNotBlank(columnName)) { sql.append(quote); sql.append(columnName); sql.append(quote); sql.append(","); } } sql.replace(sql.length() - 1, sql.length(), ")"); sql.append("FROM STDIN with delimiter ',' csv quote ''''"); return sql.toString(); }
public boolean start(Table table) { if (table != null) { processInfo.setCurrentTableName(table.getFullyQualifiedTableName()); } return super.start(table); }
protected String buildSelect(Table table, Column lobColumn, Column[] pkColumns) { StringBuilder sql = new StringBuilder("select "); String quote = platform.getDdlBuilder().isDelimitedIdentifierModeOn() ? platform .getDatabaseInfo().getDelimiterToken() : ""; sql.append(quote); sql.append(lobColumn.getName()); sql.append(quote); sql.append(","); sql.delete(sql.length() - 1, sql.length()); sql.append(" from "); sql.append(table.getFullyQualifiedTableName(quote)); sql.append(" where "); for (Column col : pkColumns) { sql.append(quote); sql.append(col.getName()); sql.append(quote); sql.append("=? and "); } sql.delete(sql.length() - 5, sql.length()); return sql.toString(); }
protected void startNewCursor() { String sql = String.format("select * from %s %s", table.getFullyQualifiedTableName(platform .getDatabaseInfo().getDelimiterToken()), StringUtils.isNotBlank(whereClause) ? " where " + whereClause : ""); this.cursor = platform.getSqlTemplate().queryForCursor(sql, new ISqlRowMapper<CsvData>() { public CsvData mapRow(Row row) { return new CsvData(DataEventType.INSERT, toStringData(row, table.getPrimaryKeyColumns()), toStringData(row, table.getColumns())); } }); }
public boolean handlesMissingTable(DataContext context, Table table) { if (engine!=null && engine.getParameterService()!=null && engine.getParameterService().is(ParameterConstants.BSH_LOAD_FILTER_HANDLES_MISSING_TABLES)) { return true; } else { String tableName = table.getFullyQualifiedTableName(); if (isIgnoreCase()) { tableName = tableName.toUpperCase(); } return loadFilters.containsKey(tableName); } }
protected void logConflictHappened(Conflict conflict, CsvData data, DatabaseWriter writer, ResolvedData resolvedData, long lineNumber) { if (log.isDebugEnabled()) { log.debug("Conflict detected: {} in batch {} at line {} for table {}", new Object[] { conflict.getConflictId() == null ? "default" : conflict.getConflictId(), writer.getBatch().getBatchId(), lineNumber, writer.getTargetTable().getFullyQualifiedTableName() }); String csvData = data.getCsvData(CsvData.ROW_DATA); if (StringUtils.isNotBlank(csvData)) { log.debug("Row data: {}", csvData); } csvData = data.getCsvData(CsvData.OLD_DATA); if (StringUtils.isNotBlank(csvData)) { log.debug("Old data: {}", csvData); } csvData = resolvedData != null ? resolvedData.getResolvedData() : null; if (StringUtils.isNotBlank(csvData)) { log.debug("Resolve data: {}", csvData); } } }
protected static String message(CsvData data, Table table, boolean fallbackOperationFailed) { Map<String, String> pks = data.toColumnNameValuePairs(table.getPrimaryKeyColumnNames(), CsvData.PK_DATA); if (pks == null || pks.size() == 0) { pks = data.toColumnNameValuePairs(table.getPrimaryKeyColumnNames(), CsvData.OLD_DATA); } if (pks == null || pks.size() == 0) { pks = data.toColumnNameValuePairs(table.getPrimaryKeyColumnNames(), CsvData.ROW_DATA); } return String.format( "Detected conflict while executing %s on %s. The primary key data was: %s. %s", data.getDataEventType().toString(), table.getFullyQualifiedTableName(), pks, fallbackOperationFailed ? "Failed to fallback." : ""); }
public void syncTriggers(Table table, boolean force) { boolean ignoreCase = this.parameterService.is(ParameterConstants.DB_METADATA_IGNORE_CASE); /* Re-lookup just in case the table was just altered */ platform.resetCachedTableModel(); table = platform.getTableFromCache(table.getCatalog(), table.getSchema(), table.getName(), true); List<Trigger> triggersForCurrentNode = getTriggersForCurrentNode(); for (Trigger trigger : triggersForCurrentNode) { if (trigger.matches(table, platform.getDefaultCatalog(), platform.getDefaultSchema(), ignoreCase)) { log.info("Synchronizing triggers for {}", table.getFullyQualifiedTableName()); updateOrCreateDatabaseTriggers(trigger, table, null, force, true); log.info("Done synchronizing triggers for {}", table.getFullyQualifiedTableName()); } } }
public boolean start(Table table) { if (!batch.isIgnored()) { this.table = table; if (!backwardsCompatible) { String catalogName = table.getCatalog(); println(CsvConstants.CATALOG, StringUtils.isNotBlank(catalogName) ? catalogName : ""); String schemaName = table.getSchema(); println(CsvConstants.SCHEMA, StringUtils.isNotBlank(schemaName) ? schemaName : ""); } String tableKey = table.getTableKey(); String fullyQualifiedTableName = table.getFullyQualifiedTableName(); String previousTableKey = processedTables.get(fullyQualifiedTableName); println(CsvConstants.TABLE, table.getName()); if (!tableKey.equals(previousTableKey)) { println(CsvConstants.KEYS, table.getPrimaryKeyColumns()); println(CsvConstants.COLUMNS, table.getColumns()); this.processedTables.put(fullyQualifiedTableName, tableKey); } return true; } else { return false; } }