Skip to content

Commit d84cc30

Browse files
llalilijjiAbhishek Kumar (MDD)
authored
Sync Repos: Bringing commits for release 161.9135.0 (#89)
* [Security] Update .NET SDK to latest patch version This change updates to the latest patch version for the .NET SDK which contains the latest security fixes. Note that your global.json does configure `rollForward`, however roll forward will allow for the build to pass when using a different SDK. So, if locally you have a newer patch version installed it will pass, without the `rollforward` it will fail. CI in many cases installs exactly what is in the global.json, so making sure that your build requires the latest patch version ensures that CI is compliant with those vulnerabilities. --- For feedback or questions about this PR, please contact the [Gardener team](mailto:[email protected]). --- This change was automatically generated by [1ES Gardener](https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/gardener/1es-gardener) (a [MerlinBot](https://aka.ms/MerlinBot) extension) which is an initiative by the 1ES team to help repos stay up-to-date with latest tools, features, and best practices. * [Security] Update .NET SDK to latest patch version This change updates to the latest patch version for the .NET SDK which contains the latest security fixes. Note that your global.json does configure `rollForward`, however roll forward will allow for the build to pass when using a different SDK. So, if locally you have a newer patch version installed it will pass, without the `rollforward` it will fail. CI in many cases installs exactly what is in the global.json, so making sure that your build requires the latest patch version ensures that CI is compliant with those vulnerabilities. Release notes: * [6.0.32](https://github.com/dotnet/core/blob/main/release-notes/6.0/6.0.32/6.0.32.md) The following CVEs will be addressed by this update: * [CVE-2024-38081](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-38081) * [CVE-2024-38095](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-38095) --- For feedback or questions about this PR, please contact the [Gardener team](mailto:[email protected]). --- This change was automatically generated by [1ES Gardener](https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/gardener/1es-gardener) (a [MerlinBot](https://aka.ms/MerlinBot) extension) which is an initiative by the 1ES team to help repos stay up-to-date with latest tools, features, and best practices. * Merged PR 1417651: Add tests for Json data type in scriptdom This PR adds tests for Json data type in ScriptDom. ##Test added - ALTER TABLE T ADD jsonCol JSON; - ALTER TABLE T ALTER COLUMN col JSON; - Create function with Json data type as parameter; - Create stored procedure with Json data type as parameter; - Convert Char to Json; - Convert NChar to Json; - Convert Varchar to Json; - Convert NVarchar to Json; - Convert Json to Char; - Convert Json to NChar; - Convert Json to Varchar; - Convert Json to NVarchar; - Cast Char to Json; - Cast NChar to Json; - Cast Varchar to Json; - Cast NVarchar to Json; - Cast Json to Char; - Cast Json to NChar; - Cast Json to Varchar; - Cast Json to NVarchar; ---- #### AI description (iteration 1) #### PR Classification New feature: Adding tests for JSON data type in ScriptDOM. #### PR Summary This pull request introduces tests for the JSON data type in ScriptDOM, ensuring proper handling and conversion of JSON data. - Added JSON conversion and casting tests in `Test/SqlDom/TestScripts/ExpressionTests160.sql`. - Created baseline for JSON conversion and casting tests in `Test/SqlDom/Baselines160/ExpressionTests160.sql`. - Added tests for JSON data type in function and procedure creation in `Test/SqlDom/TestScripts/CreateFunctionStatementTests160.sql` and `Test/SqlDom/TestScripts/CreateProcedureStatementTests160.sql`. - Included tests for altering tables to add or modify JSON columns in `Test/SqlDom/TestScripts/AlterTableStatementTests160.sql`. - Updated `Only160SyntaxTests.cs` to include new test scripts for JSON data type. Related work items: #2949474 * Merged PR 1415210: Adding forceseek to changetable Adding forceseek to changetable. fixing bug microsoft/DacFx#434 ---- #### AI description (iteration 1) #### PR Classification New feature #### PR Summary This pull request adds support for the `FORCESEEK` hint in `CHANGETABLE` queries. - `/SqlScriptDom/Parser/TSql/TSql140.g`, `/SqlScriptDom/Parser/TSql/TSql130.g`, `/SqlScriptDom/Parser/TSql/TSql150.g`, `/SqlScriptDom/Parser/TSql/TSql160.g`: Updated grammar to support `FORCESEEK` in `CHANGETABLE` queries. - `/SqlScriptDom/Parser/TSql/Ast.xml`: Added `ForceSeek` property to `ChangeTableChangesTableReference` and `ChangeTableVersionTableReference` classes. - `/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.ChangeTableTableSource.cs`: Implemented code generation for `FORCESEEK` hint. - `/Test/SqlDom/Baselines150/FromClauseTests150.sql`, `/Test/SqlDom/TestScripts/FromClauseTests150.sql`: Added test cases for `FORCESEEK` in `CHANGETABLE` queries. - `/Test/SqlDom/Only150SyntaxTests.cs`: Updated test expectations to include new `FORCESEEK` test cases. * Merged PR 1420062: Added test script for vector native data type Added test script for expression, ereate table, stored procedure, functions tests with vector native type ---- #### AI description (iteration 1) #### PR Classification New feature: Added test script for vector native data type. #### PR Summary This pull request introduces test scripts and updates to support the vector native data type in SQL. - Added test cases for casting and converting between `vector` and other data types in `/Test/SqlDom/TestScripts/ExpressionTests160.sql` and `/Test/SqlDom/Baselines160/ExpressionTests160.sql`. - Created stored procedures and functions utilizing the `vector` data type in `/Test/SqlDom/TestScripts/CreateProcedureStatementTests160.sql`, `/Test/SqlDom/Baselines160/CreateProcedureStatementTests160.sql`, `/Test/SqlDom/TestScripts/CreateFunctionStatementTests160.sql`, and `/Test/SqlDom/Baselines160/CreateFunctionStatementTests160.sql`. - Updated `SqlDataTypeOption` and related parser files to include the `vector` data type in `/SqlScriptDom/Parser/TSql/SqlDataTypeOption.cs`, `/SqlScriptDom/Parser/TSql/TSql80ParserBaseInternal.cs`, `/SqlScriptDom/Parser/TSql/TSql160ParserBaseInternal.cs`, `/SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs`, and `/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.SqlDataType.cs`. - Added a new table with a `vector` column in `/Test/SqlDom/TestScripts/CreateTableTests160.sql` and `/Test/SqlDom/Baselines160/CreateTableTests160.sql`. * Merged PR 1433433: Adding release notes for 161.9135 Adding release notes for 161.9135 ---- #### AI description (iteration 1) #### PR Classification Documentation update for release notes. #### PR Summary This pull request adds release notes for version 161.9135.0 of `Microsoft.SqlServer.TransactSql.ScriptDom`, detailing new features, fixed issues, and target platform support. - `release-notes/161.91/161.9135.0.md`: Added release notes including new support for native Vector type and FORCESEEK hint in CHANGETABLE function. --------- Co-authored-by: MerlinBot <MerlinBot> Co-authored-by: Lijun Ji <[email protected]> Co-authored-by: Abhishek Kumar (MDD) <[email protected]>
1 parent aa13f7e commit d84cc30

27 files changed

+371
-10
lines changed

SqlScriptDom/Parser/TSql/Ast.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3552,12 +3552,14 @@
35523552
<InheritedClass Name="TableReferenceWithAliasAndColumns" />
35533553
<Member Name="Target" Type="SchemaObjectName" Summary="Table on which to obtain tracked changes."/>
35543554
<Member Name="SinceVersion" Type="ValueExpression" Summary="Specifies the point from which changes are required."/>
3555+
<Member Name="ForceSeek" Type="bool" Summary="Optional parameter that forces a seek operation to be used to access the table_name"/>
35553556
</Class>
35563557
<Class Name="ChangeTableVersionTableReference" Base="TableReferenceWithAliasAndColumns" Summary="CHANGETABLE clause with VERSION option.">
35573558
<InheritedClass Name="TableReferenceWithAliasAndColumns" />
35583559
<Member Name="Target" Type="SchemaObjectName" Summary="Table on which to obtain tracked changes."/>
35593560
<Member Name="PrimaryKeyColumns" Type="Identifier" Collection="true" Summary="Primary key column names."/>
35603561
<Member Name="PrimaryKeyValues" Type="ScalarExpression" Collection="true" Summary="Values for primary key columns."/>
3562+
<Member Name="ForceSeek" Type="bool" Summary="Optional parameter that forces a seek operation to be used to access the table_name"/>
35613563
</Class>
35623564
<Class Name="BooleanTernaryExpression" Base="BooleanExpression" Summary="A boolean expression that has three expressions as children.">
35633565
<Member Name="TernaryExpressionType" Type="BooleanTernaryExpressionType" GenerateUpdatePositionInfoCall="false" Summary="The type of the expression."/>

SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,6 +1065,7 @@ internal static class CodeGenerationSupporter
10651065
internal const string VardecimalStorageFormat = "VARDECIMAL_STORAGE_FORMAT";
10661066
internal const string Varp = "VARP";
10671067
internal const string VDevNo = "VDEVNO";
1068+
internal const string Vector = "Vector";
10681069
internal const string Verbose = "VERBOSE";
10691070
internal const string VerboseLogging = "VerboseLogging";
10701071
internal const string VerifyOnly = "VERIFYONLY";

SqlScriptDom/Parser/TSql/SqlDataTypeOption.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ public enum SqlDataTypeOption
250250
/// </summary>
251251
Json = 34,
252252

253+
/// <summary>
254+
/// Vector data type
255+
/// </summary>
256+
Vector = 35,
257+
253258
#endregion
254259

255260
}

SqlScriptDom/Parser/TSql/TSql130.g

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17649,7 +17649,7 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1764917649
ValueExpression vSinceVersion;
1765017650
vResult.Target = vTarget;
1765117651
}
17652-
: vSinceVersion = integerOrVariable
17652+
: (vSinceVersion = integerOrVariable
1765317653
{
1765417654
vResult.SinceVersion = vSinceVersion;
1765517655
}
@@ -17658,6 +17658,13 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1765817658
{
1765917659
vResult.SinceVersion = vSinceVersion;
1766017660
}
17661+
)
17662+
(Comma tHint:Identifier
17663+
{
17664+
Match(tHint, CodeGenerationSupporter.ForceSeek);
17665+
vResult.ForceSeek = true;
17666+
}
17667+
)?
1766117668
;
1766217669

1766317670
versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionTableReference vResult = FragmentFactory.CreateFragment<ChangeTableVersionTableReference>()]
@@ -17671,6 +17678,12 @@ versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionT
1767117678
{
1767217679
UpdateTokenInfo(vResult, tRParen);
1767317680
}
17681+
(Comma tHint:Identifier
17682+
{
17683+
Match(tHint, CodeGenerationSupporter.ForceSeek);
17684+
vResult.ForceSeek = true;
17685+
}
17686+
)?
1767417687
;
1767517688

1767617689
subDmlTableReference [SubDmlFlags subDmlFlags] returns [DataModificationTableReference vResult = FragmentFactory.CreateFragment<DataModificationTableReference>()]

SqlScriptDom/Parser/TSql/TSql140.g

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18323,7 +18323,7 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1832318323
ValueExpression vSinceVersion;
1832418324
vResult.Target = vTarget;
1832518325
}
18326-
: vSinceVersion = integerOrVariable
18326+
: (vSinceVersion = integerOrVariable
1832718327
{
1832818328
vResult.SinceVersion = vSinceVersion;
1832918329
}
@@ -18332,6 +18332,13 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1833218332
{
1833318333
vResult.SinceVersion = vSinceVersion;
1833418334
}
18335+
)
18336+
(Comma tHint:Identifier
18337+
{
18338+
Match(tHint, CodeGenerationSupporter.ForceSeek);
18339+
vResult.ForceSeek = true;
18340+
}
18341+
)?
1833518342
;
1833618343

1833718344
versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionTableReference vResult = FragmentFactory.CreateFragment<ChangeTableVersionTableReference>()]
@@ -18345,8 +18352,14 @@ versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionT
1834518352
{
1834618353
UpdateTokenInfo(vResult, tRParen);
1834718354
}
18355+
(Comma tHint:Identifier
18356+
{
18357+
Match(tHint, CodeGenerationSupporter.ForceSeek);
18358+
vResult.ForceSeek = true;
18359+
}
18360+
)?
1834818361
;
18349-
18362+
1835018363
subDmlTableReference [SubDmlFlags subDmlFlags] returns [DataModificationTableReference vResult = FragmentFactory.CreateFragment<DataModificationTableReference>()]
1835118364
{
1835218365
DataModificationSpecification vSpec;

SqlScriptDom/Parser/TSql/TSql150.g

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19025,7 +19025,7 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1902519025
ValueExpression vSinceVersion;
1902619026
vResult.Target = vTarget;
1902719027
}
19028-
: vSinceVersion = integerOrVariable
19028+
: (vSinceVersion = integerOrVariable
1902919029
{
1903019030
vResult.SinceVersion = vSinceVersion;
1903119031
}
@@ -19034,6 +19034,13 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1903419034
{
1903519035
vResult.SinceVersion = vSinceVersion;
1903619036
}
19037+
)
19038+
(Comma tHint:Identifier
19039+
{
19040+
Match(tHint, CodeGenerationSupporter.ForceSeek);
19041+
vResult.ForceSeek = true;
19042+
}
19043+
)?
1903719044
;
1903819045

1903919046
versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionTableReference vResult = FragmentFactory.CreateFragment<ChangeTableVersionTableReference>()]
@@ -19047,6 +19054,12 @@ versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionT
1904719054
{
1904819055
UpdateTokenInfo(vResult, tRParen);
1904919056
}
19057+
(Comma tHint:Identifier
19058+
{
19059+
Match(tHint, CodeGenerationSupporter.ForceSeek);
19060+
vResult.ForceSeek = true;
19061+
}
19062+
)?
1905019063
;
1905119064

1905219065
subDmlTableReference [SubDmlFlags subDmlFlags] returns [DataModificationTableReference vResult = FragmentFactory.CreateFragment<DataModificationTableReference>()]

SqlScriptDom/Parser/TSql/TSql160.g

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19135,7 +19135,7 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1913519135
ValueExpression vSinceVersion;
1913619136
vResult.Target = vTarget;
1913719137
}
19138-
: vSinceVersion = integerOrVariable
19138+
: (vSinceVersion = integerOrVariable
1913919139
{
1914019140
vResult.SinceVersion = vSinceVersion;
1914119141
}
@@ -19144,6 +19144,13 @@ changesChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableChangesT
1914419144
{
1914519145
vResult.SinceVersion = vSinceVersion;
1914619146
}
19147+
)
19148+
(Comma tHint:Identifier
19149+
{
19150+
Match(tHint, CodeGenerationSupporter.ForceSeek);
19151+
vResult.ForceSeek = true;
19152+
}
19153+
)?
1914719154
;
1914819155

1914919156
versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionTableReference vResult = FragmentFactory.CreateFragment<ChangeTableVersionTableReference>()]
@@ -19157,6 +19164,12 @@ versionChangeTableParams [SchemaObjectName vTarget] returns [ChangeTableVersionT
1915719164
{
1915819165
UpdateTokenInfo(vResult, tRParen);
1915919166
}
19167+
(Comma tHint:Identifier
19168+
{
19169+
Match(tHint, CodeGenerationSupporter.ForceSeek);
19170+
vResult.ForceSeek = true;
19171+
}
19172+
)?
1916019173
;
1916119174

1916219175
subDmlTableReference [SubDmlFlags subDmlFlags] returns [DataModificationTableReference vResult = FragmentFactory.CreateFragment<DataModificationTableReference>()]

SqlScriptDom/Parser/TSql/TSql160ParserBaseInternal.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ protected static SqlDataTypeOption ParseDataType160(string token)
6262
{
6363
case "JSON":
6464
return SqlDataTypeOption.Json;
65+
case "VECTOR":
66+
return SqlDataTypeOption.Vector;
6567
default:
6668
return ParseDataType100(token);
6769
}

SqlScriptDom/Parser/TSql/TSql80ParserBaseInternal.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,8 @@ internal abstract class TSql80ParserBaseInternal : antlr.LLkParser
186186
SqlDataTypeOption.Char, SqlDataTypeOption.VarChar, SqlDataTypeOption.NChar,
187187
SqlDataTypeOption.NVarChar, SqlDataTypeOption.Decimal, SqlDataTypeOption.Float,
188188
SqlDataTypeOption.Numeric, SqlDataTypeOption.Binary, SqlDataTypeOption.VarBinary,
189-
SqlDataTypeOption.Time, SqlDataTypeOption.DateTime2, SqlDataTypeOption.DateTimeOffset
189+
SqlDataTypeOption.Time, SqlDataTypeOption.DateTime2, SqlDataTypeOption.DateTimeOffset,
190+
SqlDataTypeOption.Vector
190191
};
191192

192193
#region Constructors

SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.ChangeTableTableSource.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ public override void ExplicitVisit(ChangeTableChangesTableReference node)
2121
{
2222
GenerateChangeTablePrefix(node.Target, CodeGenerationSupporter.Changes);
2323
GenerateFragmentIfNotNull(node.SinceVersion);
24-
24+
if (node.ForceSeek)
25+
{
26+
GenerateSymbolAndSpace(TSqlTokenType.Comma);
27+
GenerateIdentifier(CodeGenerationSupporter.ForceSeek);
28+
}
2529
GenerateSymbol(TSqlTokenType.RightParenthesis);
2630
GenerateTableAndColumnAliases(node);
2731
}
@@ -32,7 +36,11 @@ public override void ExplicitVisit(ChangeTableVersionTableReference node)
3236
GenerateParenthesisedCommaSeparatedList(node.PrimaryKeyColumns);
3337
GenerateSymbolAndSpace(TSqlTokenType.Comma);
3438
GenerateParenthesisedCommaSeparatedList(node.PrimaryKeyValues);
35-
39+
if (node.ForceSeek)
40+
{
41+
GenerateSymbolAndSpace(TSqlTokenType.Comma);
42+
GenerateIdentifier(CodeGenerationSupporter.ForceSeek);
43+
}
3644
GenerateSymbol(TSqlTokenType.RightParenthesis);
3745
GenerateTableAndColumnAliases(node);
3846
}

0 commit comments

Comments
 (0)