Skip to content

Commit 8a4e3ce

Browse files
committed
Normalize and deduplicate trace flags in Add-SqlDscTraceFlag for improved comparison logic
1 parent ab5ef85 commit 8a4e3ce

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

source/Public/Add-SqlDscTraceFlag.ps1

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,32 @@ function Add-SqlDscTraceFlag
112112

113113
$ErrorActionPreference = $originalErrorActionPreference
114114

115+
# Normalize current trace flags: ensure array, remove nulls, cast to UInt32, sort uniquely
116+
$normalizedCurrentTraceFlags = @($currentTraceFlags) |
117+
Where-Object -FilterScript { $null -ne $_ } |
118+
ForEach-Object -Process { [System.UInt32] $_ } |
119+
Sort-Object -Unique
120+
121+
# Normalize input trace flags: ensure array, remove nulls, cast to UInt32, sort uniquely
122+
$normalizedInputTraceFlags = @($TraceFlag) |
123+
Where-Object -FilterScript { $null -ne $_ } |
124+
ForEach-Object -Process { [System.UInt32] $_ } |
125+
Sort-Object -Unique
126+
127+
# Combine normalized current and input trace flags to get the desired state
115128
$desiredTraceFlags = @(
116-
$currentTraceFlags
117-
$TraceFlag
129+
$normalizedCurrentTraceFlags
130+
$normalizedInputTraceFlags
118131
) |
119-
ForEach-Object { [System.UInt32] $_ } |
120132
Sort-Object -Unique
121133
$desiredTraceFlags = [System.UInt32[]] $desiredTraceFlags
122134

123-
# Compare current and desired trace flags to determine if there's an effective change
124-
$compareResult = Compare-Object -ReferenceObject @($currentTraceFlags) -DifferenceObject $desiredTraceFlags
135+
# Compare normalized current and desired trace flags to determine if there's an effective change
136+
$compareResult = Compare-Object -ReferenceObject @($normalizedCurrentTraceFlags) -DifferenceObject $desiredTraceFlags
125137

126138
if ($compareResult)
127139
{
128-
$verboseDescriptionMessage = $script:localizedData.TraceFlag_Add_ShouldProcessVerboseDescription -f $InstanceName, ($TraceFlag -join ', ')
140+
$verboseDescriptionMessage = $script:localizedData.TraceFlag_Add_ShouldProcessVerboseDescription -f $InstanceName, ($desiredTraceFlags -join ', ')
129141
$verboseWarningMessage = $script:localizedData.TraceFlag_Add_ShouldProcessVerboseWarning -f $InstanceName
130142
$captionMessage = $script:localizedData.TraceFlag_Add_ShouldProcessCaption
131143

0 commit comments

Comments
 (0)