A colleague of mine alerted me that some of my fixlets that hadn’t been changed in a while had started failing. I looked into it and it appears that the handling of semicolons / ini comments broke in version 9.5.5.193.
In the Fixlet Debugger for version 9.5.4.38, a semicolon in the value does not cause any issue:
q: lines of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: [OrderHistory]
A: Headers=False
A: Sql=set nocount on;select count (*) from [mydb].[orderHistory]
A: Sql2=set nocount on select count (*) from [mydb].[orderHistory]
A: ;Sql3=some commented out value
T: 1.211 ms
I: plural file line
q: key "Sql" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: set nocount on;select count (*) from [mydb].[orderHistory]
T: 0.999 ms
I: singular string
q: key "Sql2" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: set nocount on select count (*) from [mydb].[orderHistory]
T: 1.413 ms
I: singular string
q: key "Sql3" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
E: Singular expression refers to nonexistent object.
q: key ";Sql3" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
E: Singular expression refers to nonexistent object.
However in version 9.5.5.193 (and later), it returns these results:
q: lines of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: [OrderHistory]
A: Headers=False
A: Sql=set nocount on;select count (*) from [mydb].[orderHistory]
A: Sql2=set nocount on select count (*) from [mydb].[orderHistory]
A: ;Sql3=some commented out value
T: 0.982 ms
I: plural file line
q: key "Sql" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: set nocount o
T: 1.959 ms
I: singular string
q: key "Sql2" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: set nocount on select count (*) from [mydb].[orderHistory]
T: 1.283 ms
I: singular string
q: key "Sql3" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
E: Singular expression refers to nonexistent object.
q: key ";Sql3" of section "OrderHistory" of file "P:\Packages\Sql Query Job\Testing\KeySectionTest.ini"
A: some commented out value
T: 6.674 ms
I: singular string
@AlanM or @Aram could you verify this please? I’m also not sure that a commented out key value pair like the “;Sql3=some commented out value” line should be considered a real “key”, I guess that’s up for debate.