public DwhTableBuilder(MsSqlDwhBuilder builder, ResilientTable resilientTable, RelationalTable table) { DwhBuilder = builder; ResilientTable = resilientTable; Table = table; HasEtlRunInfo = builder.Configuration.UseEtlRunInfo && !Table.GetEtlRunInfoDisabled(); if (HasEtlRunInfo) { EtlRunInsertColumnNameEscaped = Table[builder.Configuration.EtlRunInsertColumnName].NameEscaped(builder.ConnectionString); EtlRunUpdateColumnNameEscaped = Table[builder.Configuration.EtlRunUpdateColumnName].NameEscaped(builder.ConnectionString); EtlRunFromColumnNameEscaped = Table[builder.Configuration.EtlRunFromColumnName].NameEscaped(builder.ConnectionString); EtlRunToColumnNameEscaped = Table[builder.Configuration.EtlRunToColumnName].NameEscaped(builder.ConnectionString); } ValidFromColumn = Table[builder.Configuration.ValidFromColumnName]; ValidFromColumnNameEscaped = ValidFromColumn?.NameEscaped(builder.ConnectionString); ValidToColumnName = ValidFromColumn != null ? builder.Configuration.ValidToColumnName : null; ValidToColumnNameEscaped = ValidToColumnName != null?builder.ConnectionString.Escape(ValidToColumnName) : null; }
private IMutator CreateTempWriter(ResilientTable table, RelationalTable dwhTable) { var tempColumns = dwhTable.Columns .Where(x => !x.GetUsedByEtlRunInfo()); if (dwhTable.AnyPrimaryKeyColumnIsIdentity) { tempColumns = tempColumns .Where(x => !x.IsPrimaryKey); } return(new MsSqlWriteToTableWithMicroTransactionsMutator(table.Topic, "Writer") { ConnectionString = table.Scope.Configuration.ConnectionString, TableDefinition = new DbTableDefinition() { TableName = table.TempTableName, Columns = tempColumns .Select(c => new DbColumnDefinition(c.Name, c.NameEscaped(DwhBuilder.ConnectionString))) .ToArray(), }, }); }