fix(etl): address Codex MCP review findings for Phase 2
- Filter MERGE SQL columns to only include columns that exist in destination (allColumns and updateColumns were using unfiltered source columns) - Fix schema-qualified table names to use proper [schema].[table] format instead of wrapping entire name in single brackets - Add empty column mapping validation to throw early if no columns intersect - Add JdeDateTransformer output column collision detection in OnInitialize - Add TODO comment for WithCommandTimeout (stored but not yet passed to destinations) - Add tests for FormatQualifiedTableName and output column collision
This commit is contained in:
@@ -98,4 +98,20 @@ public class CommonScriptsTests
|
||||
Assert.Equal("TimeoutScript", runner.ScriptName);
|
||||
Assert.NotNull(runner);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("WorkOrder", "[dbo].[WorkOrder]")]
|
||||
[InlineData("dbo.WorkOrder", "[dbo].[WorkOrder]")]
|
||||
[InlineData("[dbo].[WorkOrder]", "[dbo].[WorkOrder]")]
|
||||
[InlineData("Config.Settings", "[Config].[Settings]")]
|
||||
[InlineData("[Config].[Settings]", "[Config].[Settings]")]
|
||||
[InlineData("myschema.MyTable", "[myschema].[MyTable]")]
|
||||
public void FormatQualifiedTableName_VariousFormats_FormatsCorrectly(string input, string expected)
|
||||
{
|
||||
// Act
|
||||
var result = CommonScripts.FormatQualifiedTableName(input);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, result);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user