diff --git a/SqlScriptDom/Parser/TSql/Ast.xml b/SqlScriptDom/Parser/TSql/Ast.xml
index 5c73908..d02bc3b 100644
--- a/SqlScriptDom/Parser/TSql/Ast.xml
+++ b/SqlScriptDom/Parser/TSql/Ast.xml
@@ -1459,6 +1459,10 @@
+
+
+
+
@@ -2674,6 +2678,9 @@
+
+
+
@@ -2706,6 +2713,11 @@
+
+
+
+
+
diff --git a/SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs b/SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs
index f9a8834..daa8b35 100644
--- a/SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs
+++ b/SqlScriptDom/Parser/TSql/CodeGenerationSupporter.cs
@@ -208,6 +208,7 @@ internal static class CodeGenerationSupporter
internal const string Cluster = "CLUSTER";
internal const string Clustered = "CLUSTERED";
internal const string ClearPort = "CLEAR_PORT";
+ internal const string Clone = "CLONE";
internal const string CodePage = "CODEPAGE";
internal const string Collection = "COLLECTION";
internal const string Column = "COLUMN";
diff --git a/SqlScriptDom/Parser/TSql/TSqlFabricDW.g b/SqlScriptDom/Parser/TSql/TSqlFabricDW.g
index 588ff07..0923abc 100644
--- a/SqlScriptDom/Parser/TSql/TSqlFabricDW.g
+++ b/SqlScriptDom/Parser/TSql/TSqlFabricDW.g
@@ -13006,6 +13006,93 @@ functionParameterList[FunctionStatementBody vResult]
)*
;
+scalarFunctionParameter[ProcedureParameter vParent]
+{
+ DataTypeReference vDataType;
+ ScalarExpression vDefault;
+}
+ : vDataType=scalarDataType
+ {
+ vParent.DataType = vDataType;
+ }
+ (
+ EqualsSign
+ (
+ vDefault=possibleNegativeConstantOrIdentifierWithDefault
+ {
+ vParent.Value = vDefault;
+ }
+ )
+ )?
+ (
+ tId2:Identifier
+ {
+ if (TryMatch(tId2, CodeGenerationSupporter.Output) || TryMatch(tId2, CodeGenerationSupporter.Out))
+ {
+ ThrowParseErrorException("SQL46039", tId2, TSqlParserResource.SQL46039Message);
+ }
+ else
+ {
+ ThrowParseErrorException("SQL46026", tId2, TSqlParserResource.SQL46026Message, tId2.getText());
+ }
+ }
+ )?
+ ;
+
+scalarFunctionAttributeNoExecuteAs returns [FunctionOption vResult = FragmentFactory.CreateFragment()]
+ : tOption:Identifier
+ {
+ if (TryMatch(tOption, CodeGenerationSupporter.SchemaBinding))
+ {
+ vResult.OptionKind = FunctionOptionKind.SchemaBinding;
+ }
+ else
+ {
+ ThrowParseErrorException("SQL46026", tOption, TSqlParserResource.SQL46026Message, tOption.getText());
+ }
+ UpdateTokenInfo(vResult, tOption);
+ }
+ | tReturns:Identifier Null On Null tInput:Identifier
+ {
+ Match(tReturns,CodeGenerationSupporter.Returns);
+ Match(tInput,CodeGenerationSupporter.Input);
+ vResult.OptionKind = FunctionOptionKind.ReturnsNullOnNullInput;
+ UpdateTokenInfo(vResult, tInput);
+ }
+ | tCalled:Identifier On Null tInput2:Identifier
+ {
+ Match(tCalled,CodeGenerationSupporter.Called);
+ Match(tInput2,CodeGenerationSupporter.Input);
+ vResult.OptionKind = FunctionOptionKind.CalledOnNullInput;
+ UpdateTokenInfo(vResult, tInput2);
+ }
+ ;
+
+
+scalarFunctionAttribute returns [FunctionOption vResult]
+ : vResult=scalarFunctionAttributeNoExecuteAs
+ | vResult=functionExecuteAsOption
+ ;
+
+scalarFunctionAttributes [FunctionStatementBody vParent]
+{
+ FunctionOption vOption;
+ long encounteredOptions = 0;
+}
+ : With vOption=scalarFunctionAttribute
+ {
+ CheckOptionDuplication(ref encounteredOptions, (int)vOption.OptionKind, vOption);
+ AddAndUpdateTokenInfo(vParent, vParent.Options, vOption);
+ }
+ (
+ Comma vOption=scalarFunctionAttribute
+ {
+ CheckOptionDuplication(ref encounteredOptions, (int)vOption.OptionKind, vOption);
+ AddAndUpdateTokenInfo(vParent, vParent.Options, vOption);
+ }
+ )*
+ ;
+
functionParameter returns[ProcedureParameter vResult = FragmentFactory.CreateFragment()]
{
Identifier vIdentifier;
@@ -13014,7 +13101,7 @@ functionParameter returns[ProcedureParameter vResult = FragmentFactory.CreateFra
{
vResult.VariableName = vIdentifier;
}
- scalarProcedureParameter[vResult, false, true]
+ scalarFunctionParameter[vResult]
;
functionReturnTypeAndBody [FunctionStatementBody vParent, out bool vParseErrorOccurred]
@@ -13034,7 +13121,7 @@ functionReturnTypeAndBody [FunctionStatementBody vParent, out bool vParseErrorOc
vScalarResult.DataType = vDataType;
vParent.ReturnType = vScalarResult;
}
- (functionAttributes[vParent])? (As)?
+ (scalarFunctionAttributes[vParent])? (As)?
(
vCompoundStatement = beginEndBlockStatement
{
@@ -26504,6 +26591,8 @@ createTableStatement returns [CreateTableStatement vResult = this.FragmentFactor
TableDefinition vTableDefinition;
FederationScheme vFederationScheme;
FileGroupOrPartitionScheme vFileGroupOrPartitionScheme;
+ SchemaObjectName vCloneSource;
+ ScalarExpression vCloneTime;
}
: tCreate:Create Table vSchemaObjectName=schemaObjectThreePartName
{
@@ -26534,6 +26623,19 @@ createTableStatement returns [CreateTableStatement vResult = this.FragmentFactor
)
|
ctasCreateTableStatement[vResult]
+ |
+ As tClone:Identifier Of vCloneSource=schemaObjectThreePartName
+ {
+ Match(tClone, CodeGenerationSupporter.Clone);
+ vResult.CloneSource = vCloneSource;
+ }
+ (
+ tAt:Identifier vCloneTime=stringLiteral
+ {
+ Match(tAt, CodeGenerationSupporter.At);
+ vResult.ClonePointInTime = vCloneTime;
+ }
+ )?
|
As tFileTableOrGraphEdge:Identifier
{
@@ -26735,6 +26837,9 @@ createTableOption returns [TableOption vResult]
|
{NextTokenMatches(CodeGenerationSupporter.Distribution)}?
vResult = tableDistributionOption
+ |
+ {NextTokenMatches(CodeGenerationSupporter.Cluster)}?
+ vResult = clusterByTableOption
|
vResult = tableIndexOption
|
@@ -26961,6 +27066,15 @@ tableRoundRobinDistributionPolicy returns [TableRoundRobinDistributionPolicy vRe
}
;
+clusterByTableOption returns [ClusterByTableOption vResult = this.FragmentFactory.CreateFragment()]
+ : tCluster:Identifier By
+ {
+ Match(tCluster, CodeGenerationSupporter.Cluster);
+ UpdateTokenInfo(vResult, tCluster);
+ }
+ identifierColumnList[vResult, vResult.Columns]
+ ;
+
tableIndexOption returns [TableIndexOption vResult = FragmentFactory.CreateFragment()]
{
TableIndexType vTableIndexType;
@@ -27898,6 +28012,7 @@ alterTableStatement returns [AlterTableStatement vResult = null]
{NextTokenMatches(CodeGenerationSupporter.FileTableNamespace, 2)}?
vResult=alterTableFileTableNamespaceStatement
| vResult=alterTableSetStatement
+ | vResult=alterTableAddClusterByStatement
)
{
// Update position later, because instantiation is lazy
@@ -28040,6 +28155,21 @@ alterTableSetStatement returns [AlterTableSetStatement vResult = FragmentFactory
}
;
+alterTableAddClusterByStatement returns [AlterTableAddClusterByStatement vResult = FragmentFactory.CreateFragment()]
+{
+ ClusterByTableOption vClusterByOption;
+}
+ : tAdd:Add LeftParenthesis vClusterByOption = clusterByTableOption
+ {
+ vResult.ClusterByOption = vClusterByOption;
+ UpdateTokenInfo(vResult, tAdd);
+ }
+ tRParen:RightParenthesis
+ {
+ UpdateTokenInfo(vResult, tRParen);
+ }
+ ;
+
tableOption returns [TableOption vResult = null]
:
{NextTokenMatches(CodeGenerationSupporter.LockEscalation)}?
diff --git a/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.AlterTableAddClusterByStatement.cs b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.AlterTableAddClusterByStatement.cs
new file mode 100644
index 0000000..b335635
--- /dev/null
+++ b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.AlterTableAddClusterByStatement.cs
@@ -0,0 +1,33 @@
+//------------------------------------------------------------------------------
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//------------------------------------------------------------------------------
+using Microsoft.SqlServer.TransactSql.ScriptDom;
+
+namespace Microsoft.SqlServer.TransactSql.ScriptDom.ScriptGenerator
+{
+ partial class SqlScriptGeneratorVisitor
+ {
+ public override void ExplicitVisit(AlterTableAddClusterByStatement node)
+ {
+ AlignmentPoint start = new AlignmentPoint();
+ MarkAndPushAlignmentPoint(start);
+
+ GenerateAlterTableHead(node);
+
+ NewLineAndIndent();
+
+ GenerateKeyword(TSqlTokenType.Add);
+ GenerateSpace();
+ if (node.ClusterByOption != null)
+ {
+ GenerateSymbol(TSqlTokenType.LeftParenthesis);
+ GenerateFragmentIfNotNull(node.ClusterByOption);
+ GenerateSymbol(TSqlTokenType.RightParenthesis);
+ }
+
+ PopAlignmentPoint();
+ }
+ }
+}
diff --git a/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.ClusterByTableOption.cs b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.ClusterByTableOption.cs
new file mode 100644
index 0000000..059ec08
--- /dev/null
+++ b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.ClusterByTableOption.cs
@@ -0,0 +1,20 @@
+//------------------------------------------------------------------------------
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//------------------------------------------------------------------------------
+using Microsoft.SqlServer.TransactSql.ScriptDom;
+
+namespace Microsoft.SqlServer.TransactSql.ScriptDom.ScriptGenerator
+{
+ partial class SqlScriptGeneratorVisitor
+ {
+ public override void ExplicitVisit(ClusterByTableOption node)
+ {
+ GenerateIdentifier(CodeGenerationSupporter.Cluster);
+ GenerateSpaceAndKeyword(TSqlTokenType.By);
+ GenerateSpace();
+ GenerateParenthesisedCommaSeparatedList(node.Columns);
+ }
+ }
+}
diff --git a/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.CreateTableStatement.cs b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.CreateTableStatement.cs
index 514b512..3f96d44 100644
--- a/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.CreateTableStatement.cs
+++ b/SqlScriptDom/ScriptDom/SqlServer/ScriptGenerator/SqlScriptGeneratorVisitor.CreateTableStatement.cs
@@ -20,6 +20,20 @@ public override void ExplicitVisit(CreateTableStatement node)
GenerateSpaceAndFragmentIfNotNull(node.SchemaObjectName);
+ if (node.CloneSource != null)
+ {
+ GenerateSpaceAndKeyword(TSqlTokenType.As);
+ GenerateSpaceAndIdentifier(CodeGenerationSupporter.Clone);
+ GenerateSpaceAndKeyword(TSqlTokenType.Of);
+ GenerateSpaceAndFragmentIfNotNull(node.CloneSource);
+
+ if (node.ClonePointInTime != null)
+ {
+ GenerateSpaceAndIdentifier(CodeGenerationSupporter.At);
+ GenerateSpaceAndFragmentIfNotNull(node.ClonePointInTime);
+ }
+ }
+
if (node.Definition != null)
{
List columnsAndConstraintsAndIndexesAndPeriods = new List();
diff --git a/Test/SqlDom/BaselinesFabricDW/CloneTableTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/CloneTableTestsFabricDW.sql
new file mode 100644
index 0000000..32c3106
--- /dev/null
+++ b/Test/SqlDom/BaselinesFabricDW/CloneTableTestsFabricDW.sql
@@ -0,0 +1,7 @@
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA;
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA AT '2023-05-23T14:24:10.325';
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA AT '2023-05-23T14:24:10';
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/CreateAlterTableClusterByTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/CreateAlterTableClusterByTestsFabricDW.sql
new file mode 100644
index 0000000..05f8e02
--- /dev/null
+++ b/Test/SqlDom/BaselinesFabricDW/CreateAlterTableClusterByTestsFabricDW.sql
@@ -0,0 +1,38 @@
+CREATE TABLE Customers (
+ CustomerID INT ,
+ Name NVARCHAR (100)
+)
+WITH (CLUSTER BY (CustomerID));
+
+
+GO
+CREATE TABLE sales.Orders (
+ OrderID INT ,
+ CustomerID INT ,
+ OrderDate DATE
+)
+WITH (CLUSTER BY (CustomerID, OrderDate), DISTRIBUTION = HASH(CustomerID));
+
+
+GO
+CREATE TABLE Inventory (
+ ProductID INT ,
+ ProductName VARCHAR (255),
+ InStock BIT
+)
+WITH (CLUSTER BY (ProductID));
+
+
+GO
+ALTER TABLE Customers
+ ADD (CLUSTER BY (CustomerID));
+
+
+GO
+ALTER TABLE sales.Orders
+ ADD (CLUSTER BY (CustomerID, OrderDate));
+
+
+GO
+ALTER TABLE Inventory
+ ADD (CLUSTER BY (ProductID));
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/CreateExternalTableStatementTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/CreateExternalTableStatementTestsFabricDW.sql
new file mode 100644
index 0000000..e2459a0
--- /dev/null
+++ b/Test/SqlDom/BaselinesFabricDW/CreateExternalTableStatementTestsFabricDW.sql
@@ -0,0 +1,51 @@
+CREATE EXTERNAL TABLE t1 (
+ c1 INT,
+ c2 CHAR (16) COLLATE Latin1_General_BIN2 NOT NULL,
+ c3 DATE,
+ c4 DECIMAL (5, 2) NULL,
+ c5 VARCHAR (50) COLLATE Latin1_General_BIN2 NULL
+)
+ WITH (
+ DATA_SOURCE = eds1,
+ LOCATION = '/test/test.txt',
+ FILE_FORMAT = eff1,
+ TABLE_OPTIONS = N'{"READ_OPTIONS":
+["ALLOW_INCONSISTENT_READS"]
+}'
+ );
+
+CREATE EXTERNAL TABLE t2 (
+ c1 INT,
+ c2 CHAR (16) COLLATE Latin1_General_BIN2 NOT NULL,
+ c3 DATE,
+ c4 DECIMAL (5, 2) NULL,
+ c5 VARCHAR (50) COLLATE Latin1_General_BIN2 NULL
+)
+ WITH (
+ DATA_SOURCE = eds1,
+ LOCATION = '/test/test.txt',
+ FILE_FORMAT = eff1,
+ TABLE_OPTIONS = N'randomstring��?Ƕ�'
+ );
+
+CREATE EXTERNAL TABLE finance.Transactions2024 (
+ TransactionID BIGINT,
+ AccountNumber VARCHAR (20),
+ TransactionDate DATE,
+ Amount FLOAT
+)
+ WITH (
+ LOCATION = 'https://storage.blob.core.windows.net/data/transactions2024/',
+ FILE_FORMAT = AvroFormat
+ );
+
+CREATE EXTERNAL TABLE analytics.WebEvents (
+ EventID INT,
+ UserID INT,
+ EventTime DATETIME,
+ EventType NVARCHAR (50)
+)
+ WITH (
+ LOCATION = '/logs/web/events/',
+ FILE_FORMAT = JsonFormat
+ );
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/CreateProcedureCloneTableTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/CreateProcedureCloneTableTestsFabricDW.sql
new file mode 100644
index 0000000..a6cf794
--- /dev/null
+++ b/Test/SqlDom/BaselinesFabricDW/CreateProcedureCloneTableTestsFabricDW.sql
@@ -0,0 +1,21 @@
+CREATE PROCEDURE CloneEmployeeLocal
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;
+
+
+GO
+CREATE PROCEDURE CloneEmployeeFromDbo1
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA;
+
+
+GO
+CREATE PROCEDURE CloneEmployeeAtTimestamp
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA AT '2023-05-23T14:24:10.325';
+
+
+GO
+CREATE PROCEDURE CloneEmployeeFromDbo1AtTimestamp
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA AT '2023-05-23T14:24:10';
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/ScalarFunctionIntTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/ScalarFunctionIntTestsFabricDW.sql
deleted file mode 100644
index d348a7e..0000000
--- a/Test/SqlDom/BaselinesFabricDW/ScalarFunctionIntTestsFabricDW.sql
+++ /dev/null
@@ -1,11 +0,0 @@
-CREATE FUNCTION dbo.ConvertInput
-(@MyValueIn INT)
-RETURNS DECIMAL (10, 2)
-AS
-BEGIN
- DECLARE @MyValueOut AS INT;
- SET @MyValueOut = CAST (@MyValueIn AS DECIMAL (10, 2));
- RETURN (@MyValueOut);
-END
-GO
-SELECT dbo.ConvertInput(15) AS 'ConvertedValue';
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/ScalarFunctionTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/ScalarFunctionTestsFabricDW.sql
new file mode 100644
index 0000000..fed9aef
--- /dev/null
+++ b/Test/SqlDom/BaselinesFabricDW/ScalarFunctionTestsFabricDW.sql
@@ -0,0 +1,53 @@
+CREATE OR ALTER FUNCTION dbo.GetFullName
+(@firstName NVARCHAR (50)='John', @lastName NVARCHAR (50))
+RETURNS NVARCHAR (101)
+WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
+AS
+BEGIN
+ RETURN @firstName + ' ' + @lastName;
+END
+
+
+GO
+CREATE OR ALTER FUNCTION dbo.CalculateTotal
+(@price DECIMAL (10, 2), @quantity INT=1)
+RETURNS DECIMAL (10, 2)
+WITH EXECUTE AS SELF, CALLED ON NULL INPUT
+AS
+BEGIN
+ RETURN @price * @quantity;
+END
+
+
+GO
+CREATE OR ALTER FUNCTION sales.ComputeDiscount
+(@amount FLOAT, @discount FLOAT)
+RETURNS FLOAT
+WITH RETURNS NULL ON NULL INPUT
+AS
+BEGIN
+ RETURN @amount - (@amount * @discount / 100);
+END
+
+
+GO
+CREATE FUNCTION dbo.GetFullName
+(@FirstName VARCHAR (50), @LastName VARCHAR (50))
+RETURNS VARCHAR (101)
+AS
+BEGIN
+ RETURN @FirstName + ' ' + @LastName;
+END
+
+GO
+CREATE FUNCTION dbo.ConvertInput
+(@MyValueIn INT)
+RETURNS DECIMAL (10, 2)
+AS
+BEGIN
+ DECLARE @MyValueOut AS INT;
+ SET @MyValueOut = CAST (@MyValueIn AS DECIMAL (10, 2));
+ RETURN (@MyValueOut);
+END
+GO
+SELECT dbo.ConvertInput(15) AS 'ConvertedValue';
\ No newline at end of file
diff --git a/Test/SqlDom/BaselinesFabricDW/ScalarFunctionVarCharTestsFabricDW.sql b/Test/SqlDom/BaselinesFabricDW/ScalarFunctionVarCharTestsFabricDW.sql
deleted file mode 100644
index 6c492a3..0000000
--- a/Test/SqlDom/BaselinesFabricDW/ScalarFunctionVarCharTestsFabricDW.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE FUNCTION dbo.GetFullName
-(@FirstName VARCHAR (50), @LastName VARCHAR (50))
-RETURNS VARCHAR (101)
-AS
-BEGIN
- RETURN @FirstName + ' ' + @LastName;
-END
\ No newline at end of file
diff --git a/Test/SqlDom/OnlyFabricDWSyntaxTests.cs b/Test/SqlDom/OnlyFabricDWSyntaxTests.cs
index 7ae7fc2..58537c4 100644
--- a/Test/SqlDom/OnlyFabricDWSyntaxTests.cs
+++ b/Test/SqlDom/OnlyFabricDWSyntaxTests.cs
@@ -9,8 +9,11 @@ public partial class SqlDomTests
// Note: These filenames are case sensitive, make sure they match the checked-in file exactly
private static readonly ParserTest[] OnlyFabricDWTestInfos =
{
- new ParserTestFabricDW("ScalarFunctionIntTestsFabricDW.sql", nErrors80: 0, nErrors90: 0, nErrors100: 0, nErrors110: 0, nErrors120: 0, nErrors130: 0, nErrors140: 0, nErrors150: 0, nErrors160: 0, nErrors170: 0),
- new ParserTestFabricDW("ScalarFunctionVarCharTestsFabricDW.sql", nErrors80: 0, nErrors90: 0, nErrors100: 0, nErrors110: 0, nErrors120: 0, nErrors130: 0, nErrors140: 0, nErrors150: 0, nErrors160: 0, nErrors170: 0)
+ new ParserTestFabricDW("CloneTableTestsFabricDW.sql", nErrors80: 4, nErrors90: 4, nErrors100: 4, nErrors110: 4, nErrors120: 4, nErrors130: 4, nErrors140: 4, nErrors150: 4, nErrors160: 4, nErrors170: 4),
+ new ParserTestFabricDW("CreateProcedureCloneTableTestsFabricDW.sql", nErrors80: 4, nErrors90: 4, nErrors100: 4, nErrors110: 4, nErrors120: 4, nErrors130: 4, nErrors140: 4, nErrors150: 4, nErrors160: 4, nErrors170: 4),
+ new ParserTestFabricDW("ScalarFunctionTestsFabricDW.sql", nErrors80: 3, nErrors90: 2, nErrors100: 2, nErrors110: 2, nErrors120: 2, nErrors130: 0, nErrors140: 0, nErrors150: 0, nErrors160: 0, nErrors170: 0),
+ new ParserTestFabricDW("CreateAlterTableClusterByTestsFabricDW.sql", nErrors80: 6, nErrors90: 6, nErrors100: 6, nErrors110: 6, nErrors120: 6, nErrors130: 6, nErrors140: 6, nErrors150: 6, nErrors160: 6, nErrors170: 6),
+ new ParserTestFabricDW("CreateExternalTableStatementTestsFabricDW.sql", nErrors80: 2, nErrors90: 2, nErrors100: 2, nErrors110: 2, nErrors120: 2, nErrors130: 2, nErrors140: 2, nErrors150: 2, nErrors160: 0, nErrors170: 0),
};
[TestMethod]
@@ -25,13 +28,201 @@ public void TSqlFabricDWSyntaxParserTest()
ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._resultFabricDW);
}
- parser = new TSqlFabricDWParser(true, SqlEngineType.All);
- scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.SqlFabricDW);
scriptGen.Options.SqlEngineType = SqlEngineType.All;
foreach (ParserTest ti in OnlyFabricDWTestInfos)
{
ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._resultFabricDW);
}
}
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn80ParserTest()
+ {
+ TSql80Parser parser = new TSql80Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql80);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result80);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result80);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn90ParserTest()
+ {
+ TSql90Parser parser = new TSql90Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql90);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result90);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result90);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn100ParserTest()
+ {
+ TSql100Parser parser = new TSql100Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql100);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result100);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result100);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn110ParserTest()
+ {
+ TSql110Parser parser = new TSql110Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql110);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result110);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result110);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn120ParserTest()
+ {
+ TSql120Parser parser = new TSql120Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql120);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result120);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result120);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn130ParserTest()
+ {
+ TSql130Parser parser = new TSql130Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql130);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result130);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result130);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn140ParserTest()
+ {
+ TSql140Parser parser = new TSql140Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql140);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result140);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result140);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn150ParserTest()
+ {
+ TSql150Parser parser = new TSql150Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql150);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result150);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result150);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn160ParserTest()
+ {
+ TSql160Parser parser = new TSql160Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql160);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result160);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result160);
+ }
+ }
+
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void TSqlFabricDWSyntaxIn170ParserTest()
+ {
+ TSql170Parser parser = new TSql170Parser(true);
+ SqlScriptGenerator scriptGen = ParserTestUtils.CreateScriptGen(SqlVersion.Sql170);
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result170);
+ }
+
+ scriptGen.Options.SqlEngineType = SqlEngineType.All;
+ foreach (ParserTest ti in OnlyFabricDWTestInfos)
+ {
+ ParserTest.ParseAndVerify(parser, scriptGen, ti._scriptFilename, ti._result170);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Test/SqlDom/ParserErrorsTests.cs b/Test/SqlDom/ParserErrorsTests.cs
index ac99d5e..7474efd 100644
--- a/Test/SqlDom/ParserErrorsTests.cs
+++ b/Test/SqlDom/ParserErrorsTests.cs
@@ -19,8 +19,8 @@ public partial class SqlDomTests
/// as user id/name start/end columns
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTableGeneratedAlwaysNegativeTest()
{
// Generated always as UserId start column must be unique
@@ -255,11 +255,11 @@ [Data1] NVARCHAR (32) HIDDEN MASKED WITH (FUNCTION = 'default()') DEFAULT 'a' N
[Data2] NVARCHAR (32) MASKED WITH (FUNCTION = 'default()') DEFAULT 'b' NOT NULL,
CONSTRAINT [constr1] PRIMARY KEY ([PK]));";
ParserTestUtils.ErrorTest140(hiddenMaskedSyntax,
- new ParserErrorInfo(hiddenMaskedSyntax.IndexOf("HIDDEN MASKED")+7, "SQL46010", "MASKED"));
+ new ParserErrorInfo(hiddenMaskedSyntax.IndexOf("HIDDEN MASKED") + 7, "SQL46010", "MASKED"));
}
- ///
+ ///
/// Negative tests for BULK INSERT command
///
[TestMethod]
@@ -282,8 +282,8 @@ public void BulkInsertNegativeTestCases()
/// as user id/name start/end columns
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterTableAddGeneratedAlwaysNegativeTest()
{
// Generated always as UserId start column must be unique
@@ -311,8 +311,8 @@ public void AlterTableAddGeneratedAlwaysNegativeTest()
/// Negative tests for alter column with generated always
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterColumnAddGeneratedAlwaysNegativeTest()
{
ParserTestUtils.ErrorTest130("ALTER TABLE T ALTER COLUMN C GENERATED ALWAYS AS SUSER_SID START",
@@ -348,8 +348,8 @@ public void AlterColumnAddGeneratedAlwaysNegativeTest()
/// for temporal generated always columns
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AddDropHiddenNegativeTests()
{
ParserTestUtils.ErrorTest130("ALTER TABLE T1 ALTER COLUMN C1 ADD DROP HIDDEN",
@@ -376,8 +376,8 @@ public void AddDropHiddenNegativeTests()
/// for ALTER TABLE
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AddSplitMergeNegativeTests()
{
ParserTestUtils.ErrorTest130("ALTER TABLE T SPLI RANGE ('2004-01-01')",
@@ -400,8 +400,8 @@ public void AddSplitMergeNegativeTests()
/// Negative tests for OPENJSON syntax.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void OpenJsonNegativeTest()
{
ParserTestUtils.ErrorTest130("select * from openjson()",
@@ -507,8 +507,8 @@ public void JsonArraySyntaxNegativeTest()
/// Negative tests for Data Masking Alter Column syntax.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DataMaskingAlterColumnSyntaxNegativeTest()
{
// Add data masking: missing WITH keyword
@@ -601,8 +601,8 @@ public void DataMaskingAlterColumnSyntaxNegativeTest()
/// Negative tests for Data Masking Column Definition syntax.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DataMaskingColumnDefinitionSyntaxNegativeTest()
{
// Missing WITH keyword
@@ -655,8 +655,8 @@ public void DataMaskingColumnDefinitionSyntaxNegativeTest()
/// Only ON and OFF options are allowed for ALTER INDEX REORGANIZE's COMPRESS_ALL_ROW_GROUPS option.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterIndexReorganizeCompressAllRowGroupsOptionNegativeTest()
{
ParserTestUtils.ErrorTest130("ALTER INDEX cci ON cciTable REORGANIZE WITH (COMPRESS_ALL_ROW_GROUPS = ONN);",
@@ -690,8 +690,8 @@ public void AlterIndexReorganizeCompressAllRowGroupsOptionNegativeTest()
/// Only columnstore indexes should accept compression delay on inline index create.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTableWithInlineIndexWithCompressionDelayNegativeTests()
{
ParserTestUtils.ErrorTest130("CREATE TABLE t (col0 INT, INDEX ind (col0) WITH (COMPRESSION_DELAY = 2));",
@@ -704,8 +704,8 @@ public void CreateTableWithInlineIndexWithCompressionDelayNegativeTests()
/// Only columnstore indexes should accept compression delay on index create.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateIndexWithCompressionDelayNegativeTests()
{
ParserTestUtils.ErrorTest130("CREATE INDEX ind ON table1 (col0) WITH (COMPRESSION_DELAY = 2));",
@@ -716,8 +716,8 @@ public void CreateIndexWithCompressionDelayNegativeTests()
/// ALTER INDEX [indexName] ON [tableName] SET (COMPRESSION_DELAY = value MINUTES) accepts AUTO and numbers in [0, maxint].
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterIndexSetCompressionDelayOptionNegativeTest()
{
ParserTestUtils.ErrorTest130("ALTER INDEX cci ON cciTable SET(COMPRESSION_DELAY = ON);",
@@ -754,72 +754,72 @@ public void AlterIndexSetCompressionDelayOptionNegativeTest()
}
- ///
- /// Within a create statement, SUPPRESS_MESSAGES can only be set when IGNORE_DUP_KEY is ON, and it must be a suboption of IGNORE_DUP_KEY.
- ///
+ ///
+ /// Within a create statement, SUPPRESS_MESSAGES can only be set when IGNORE_DUP_KEY is ON, and it must be a suboption of IGNORE_DUP_KEY.
+ ///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
- public void CreateTableWithInlineIndexWithSuppressMessagesNegativeTests()
- {
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (SUPPRESS_MESSAGES = ON);",
- new ParserErrorInfo(59, "SQL46010", "SUPPRESS_MESSAGES"));
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void CreateTableWithInlineIndexWithSuppressMessagesNegativeTests()
+ {
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (SUPPRESS_MESSAGES = ON);",
+ new ParserErrorInfo(59, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (SUPPRESS_MESSAGES = OFF);",
- new ParserErrorInfo(59, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (SUPPRESS_MESSAGES = OFF);",
+ new ParserErrorInfo(59, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = ON));",
- new ParserErrorInfo(80, "SQL46010", "("));
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = ON));",
+ new ParserErrorInfo(80, "SQL46010", "("));
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = OFF));",
- new ParserErrorInfo(80, "SQL46010", "("));
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = OFF));",
+ new ParserErrorInfo(80, "SQL46010", "("));
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = ON));",
- new ParserErrorInfo(80, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = ON));",
+ new ParserErrorInfo(80, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = OFF));",
- new ParserErrorInfo(80, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("CREATE UNIQUE NONCLUSTERED INDEX nci ON table1(col1) WITH (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = OFF));",
+ new ParserErrorInfo(80, "SQL46010", "SUPPRESS_MESSAGES"));
- }
+ }
- ///
- /// Within an ALTER statement, SUPPRESS_MESSAGES is a suboption of IGNORE_DUP_KEY only when IGNORE_DUP_KEY is ON.
- ///
+ ///
+ /// Within an ALTER statement, SUPPRESS_MESSAGES is a suboption of IGNORE_DUP_KEY only when IGNORE_DUP_KEY is ON.
+ ///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
- public void AlterIndexSetSuppressMessagesOptionNegativeTest()
- {
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (SUPPRESS_MESSAGES = ON);",
- new ParserErrorInfo(31, "SQL46010", "SUPPRESS_MESSAGES"));
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void AlterIndexSetSuppressMessagesOptionNegativeTest()
+ {
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (SUPPRESS_MESSAGES = ON);",
+ new ParserErrorInfo(31, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (SUPPRESS_MESSAGES = OFF);",
- new ParserErrorInfo(31, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (SUPPRESS_MESSAGES = OFF);",
+ new ParserErrorInfo(31, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = ON));",
- new ParserErrorInfo(52, "SQL46010", "("));
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = ON));",
+ new ParserErrorInfo(52, "SQL46010", "("));
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = OFF));",
- new ParserErrorInfo(52, "SQL46010", "("));
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = OFF (SUPPRESS_MESSAGES = OFF));",
+ new ParserErrorInfo(52, "SQL46010", "("));
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = ON);",
- new ParserErrorInfo(52, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = ON);",
+ new ParserErrorInfo(52, "SQL46010", "SUPPRESS_MESSAGES"));
- ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = OFF);",
- new ParserErrorInfo(52, "SQL46010", "SUPPRESS_MESSAGES"));
+ ParserTestUtils.ErrorTest140("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON, SUPPRESS_MESSAGES = OFF);",
+ new ParserErrorInfo(52, "SQL46010", "SUPPRESS_MESSAGES"));
- // Check that parsers below 140 don't recognize SUPPRESS_MESSAGES as valid.
- //
- ParserTestUtils.ErrorTest130("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON (SUPPRESS_MESSAGES = ON));",
- new ParserErrorInfo(51, "SQL46010", "("));
- }
+ // Check that parsers below 140 don't recognize SUPPRESS_MESSAGES as valid.
+ //
+ ParserTestUtils.ErrorTest130("ALTER INDEX ci ON ciTable SET (IGNORE_DUP_KEY = ON (SUPPRESS_MESSAGES = ON));",
+ new ParserErrorInfo(51, "SQL46010", "("));
+ }
///
/// Column level and table level filtered indexes on hekaton tables are not allowed.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void HekatonTableInlineFilteredIndex()
{
ParserTestUtils.ErrorTest130("CREATE TABLE T1 (C1 INT NOT NULL PRIMARY KEY NONCLUSTERED, C2 INT NOT NULL INDEX idx NONCLUSTERED WHERE C2 > 10) WITH (MEMORY_OPTIMIZED=on);",
@@ -833,8 +833,8 @@ public void HekatonTableInlineFilteredIndex()
/// Nonclustered columnstore indexes are not allowed on hekaton tables.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void HekatonTableNonClusteredColumnStoreIndex()
{
ParserTestUtils.ErrorTest130("CREATE TABLE T1 (C1 INT NOT NULL PRIMARY KEY NONCLUSTERED, C2 INT NOT NULL, INDEX idx NONCLUSTERED COLUMNSTORE (C2)) WITH (MEMORY_OPTIMIZED=ON);",
@@ -845,8 +845,8 @@ public void HekatonTableNonClusteredColumnStoreIndex()
/// Negative tests for FOR JSON syntax.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void JsonForClauseNegativeTest()
{
ParserTestUtils.ErrorTest130("select * from t1 for json",
@@ -893,8 +893,8 @@ public void JsonForClauseNegativeTest()
/// Negative tests for Temporal syntax.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void TemporalSyntaxNegativeTest()
{
// Issuing select statement using temporal clause and an expression as source.
@@ -958,7 +958,7 @@ PERIOD FOR SYSTEM_TIME (SYS_START, SYS_END)
)
WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.t_history, DATA_CONSISTENCY_CHECK = ON, , HISTORY_RETENTION_PERIOD = 5 DAYS))";
ParserTestUtils.ErrorTest140(query4,
- new ParserErrorInfo(query4.IndexOf(", ,")+2, "SQL46010", ","));
+ new ParserErrorInfo(query4.IndexOf(", ,") + 2, "SQL46010", ","));
string query5 = @"CREATE TABLE tab_with_retention (
COL0 INT ,
@@ -1156,7 +1156,7 @@ PERIOD FOR SYSTEM_TIME (SYS_START, SYS_END)
)
WITH (SYSTEM_VERSIONING = ON ())";
ParserTestUtils.ErrorTest130(query18,
- new ParserErrorInfo(query18.IndexOf("())")+1, "SQL46010", ")"));
+ new ParserErrorInfo(query18.IndexOf("())") + 1, "SQL46010", ")"));
string query19 = @"CREATE TABLE tab_with_retention (
COL0 INT ,
@@ -1205,8 +1205,8 @@ PERIOD FOR SYSTEM_TIME (SYS_START, SYS_END)
/// Negative tests for inline COLUMNSTORE indexes
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ColumnStoreInlineIndexNegativeTest()
{
// Columns in CCI
@@ -1244,8 +1244,8 @@ public void ColumnStoreInlineIndexNegativeTest()
/// Negative tests for DROP IF EXISTS statements
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DropIfExistsNegativeTest()
{
// DROP DATABASE
@@ -1410,8 +1410,8 @@ public void DropIfExistsNegativeTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTableInlineFilteredIndexNegativeTests()
{
// Table level inline clustered index with filter
@@ -1428,8 +1428,8 @@ public void CreateTableInlineFilteredIndexNegativeTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void FederationStatementErrorTest()
{
//Two and Three-Part name
@@ -1463,7 +1463,7 @@ public void FederationStatementErrorTest()
// This is a limitation of SQLDOM parser. There are a number of instances where this happens, and an UNDONE to allow errors to take into account multiple options. So here can't say expected HIGH or LOW
// SQL46005: Expected HIGH but encountered K1 instead.
//
- ParserTestUtils.ErrorTest110("ALTER FEDERATION FED DROP AT (K1 = 10)", new ParserErrorInfo(30, "SQL46005", new string[]{"HIGH","K1"}));
+ ParserTestUtils.ErrorTest110("ALTER FEDERATION FED DROP AT (K1 = 10)", new ParserErrorInfo(30, "SQL46005", new string[] { "HIGH", "K1" }));
ParserTestUtils.ErrorTest110("ALTER FEDERATION FED DROP AT (low K1 10)", new ParserErrorInfo(37, "SQL46010", "10"));
// USE
@@ -1481,8 +1481,8 @@ public void FederationStatementErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTableDanglingCommaTest()
{
// One dangling comma is ok - but only in create table
@@ -1520,11 +1520,11 @@ private void TestErrorRecoverySingleErrorTest(TSqlParser parser, string fileName
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTriggerStatementErrorTests()
{
- ParserTestUtils.ExecuteTestForAllParsers(delegate(TSqlParser parser)
+ ParserTestUtils.ExecuteTestForAllParsers(delegate (TSqlParser parser)
{
TestErrorRecoverySingleErrorTest(parser, "CreateTriggerStatementErrorTests.sql",
new ParserErrorInfo(141, "SQL46010", ";"));
@@ -1549,11 +1549,11 @@ public void CreateTriggerStatementErrorTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateSchemaStatementErrorTests()
{
- ParserTestUtils.ExecuteTestForAllParsers(delegate(TSqlParser parser)
+ ParserTestUtils.ExecuteTestForAllParsers(delegate (TSqlParser parser)
{
TestErrorRecoverySingleErrorTest(parser, "CreateSchemaStatementErrorTests.sql",
new ParserErrorInfo(102, "SQL46010", "on"));
@@ -1561,8 +1561,8 @@ public void CreateSchemaStatementErrorTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void MultipleErrorTests()
{
ParserTestUtils.ExecuteTestForAllParsers(MultipleErrorTestImpl, true);
@@ -1594,8 +1594,8 @@ public void MultipleErrorTestImpl(TSqlParser parser)
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ViewOptionRepeatErrorTest()
{
const string source = "CREATE View v1 WITH encryption, schemabinding, encryption as select 10;";
@@ -1605,8 +1605,8 @@ public void ViewOptionRepeatErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void QueryOptimizerHintErrorTest()
{
const string source = "SELECT * FROM t1 OPTION (SOME_HINT_NEVER_EXISTS);";
@@ -1620,8 +1620,8 @@ public void QueryOptimizerHintErrorTest()
/// Tests the USE HINT query hint mechanism
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void QueryOptimizerUseHintClauseErrorTest()
{
// SQL DOM doesn't check for valid/invalid strings, so this should only fail on parsers
@@ -1665,7 +1665,7 @@ public void QueryOptimizerUseHintClauseErrorTest()
ParserTestUtils.ErrorTest100(sourceNoHintKeyword, new ParserErrorInfo(29, "SQL46010", "("));
ParserTestUtils.ErrorTest110(sourceNoHintKeyword, new ParserErrorInfo(29, "SQL46010", "("));
ParserTestUtils.ErrorTest120(sourceNoHintKeyword, new ParserErrorInfo(29, "SQL46010", "("));
- ParserTestUtils.ErrorTest130(sourceNoHintKeyword, new ParserErrorInfo(25, "SQL46010", "USE"));
+ ParserTestUtils.ErrorTest130(sourceNoHintKeyword, new ParserErrorInfo(25, "SQL46010", "USE"));
ParserTestUtils.ErrorTest140(sourceNoHintKeyword, new ParserErrorInfo(25, "SQL46010", "USE"));
// USE keyword is omitted, should fail on all parsers.
@@ -1729,8 +1729,8 @@ CREATE EXTERNAL DATA SOURCE InvalidPushdown_ExternalDataSource
ParserTestUtils.ErrorTest150(externalDataSourceCreateCommand, new ParserErrorInfo(externalDataSourceCreateCommand.IndexOf("TEST"), "SQL46010", "TEST"));
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void BeginEndStatementErrorTests()
{
ParserTestUtils.ExecuteTestForAllParsers(BeginEndStatementErrorTestImpl, true);
@@ -1751,8 +1751,8 @@ public void BeginEndStatementErrorTestImpl(TSqlParser parser)
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void MLPOptionErrorTest()
{
// Syntax errors
@@ -1803,8 +1803,8 @@ public void MLPOptionErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void InlineIndexErrors()
{
// Syntax errors
@@ -1823,8 +1823,8 @@ public void InlineIndexErrors()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterDatabaseSetEqualsOnOfOptionErrors()
{
// Syntax errors
@@ -1837,8 +1837,8 @@ public void AlterDatabaseSetEqualsOnOfOptionErrors()
/// Only Secondary database can accept a PRIMARY value for configuration option
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterDatabaseScopedConfigurationOptionNegativeTests()
{
// Case: Setting invalid values for primary database
@@ -1913,8 +1913,8 @@ public void AlterDatabaseScopedConfigurationOptionNegativeTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void TruncatePartitionsErrorTests()
{
// Syntax errors
@@ -1924,8 +1924,8 @@ public void TruncatePartitionsErrorTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void LexerErrorTest()
{
ParserTestUtils.ErrorTestAllParsers("CREATE TABLE table1 (c1 int) [])",
@@ -1946,7 +1946,7 @@ public void WindowClauseNegativeTest()
//
const string windowInOverClause = "SELECT Sum(c1) OVER Win1 FROM t1 WINDOW Win1 AS (PARTITION BY c1);";
- ParserTestUtils.ErrorTest150(windowInOverClause,new ParserErrorInfo(15, "SQL46010", "OVER"));
+ ParserTestUtils.ErrorTest150(windowInOverClause, new ParserErrorInfo(15, "SQL46010", "OVER"));
ParserTestUtils.ErrorTest140(windowInOverClause, new ParserErrorInfo(15, "SQL46010", "OVER"));
ParserTestUtils.ErrorTest130(windowInOverClause, new ParserErrorInfo(15, "SQL46010", "OVER"));
@@ -2015,8 +2015,8 @@ public void IsNotDistinctFromNegativeTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46002Test()
{
ParserTestUtils.ErrorTestAllParsers("create table t1 (c1 national int varying);",
@@ -2027,8 +2027,8 @@ public void SQL46002Test()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46003Test()
{
string testNumber = "SQL46003";
@@ -2042,8 +2042,8 @@ public void SQL46003Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46004Test()
{
ParserTestUtils.ErrorTestAllParsers("create table t1 (column1 float varying);",
@@ -2055,8 +2055,8 @@ public void SQL46004Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46005Test()
{
string testNumber = "SQL46005";
@@ -2067,8 +2067,8 @@ public void SQL46005Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46006Test()
{
string testNumber = "SQL46006";
@@ -2082,8 +2082,8 @@ CREATE TABLE t1 (int i1)",
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46007Test()
{
string testNumber = "SQL46007";
@@ -2098,8 +2098,8 @@ public void SQL46007Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46008Test()
{
string testNumber = "SQL46008";
@@ -2110,8 +2110,8 @@ public void SQL46008Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46009Test()
{
string testNumber = "SQL46009";
@@ -2122,8 +2122,8 @@ public void SQL46009Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46010Test()
{
string testNumber = "SQL46010";
@@ -2140,15 +2140,15 @@ public void SQL46010Test()
sql46010TestSyntax,
new ParserErrorInfo(16, testNumber, "column1"),
new ParserErrorInfo(sql46010TestSyntax.IndexOf(@"[labelName]"), testNumber, "[labelName]"),
- new ParserErrorInfo(sql46010TestSyntax.IndexOf(@"...t1")+3, testNumber, "t1"),
+ new ParserErrorInfo(sql46010TestSyntax.IndexOf(@"...t1") + 3, testNumber, "t1"),
new ParserErrorInfo(sql46010TestSyntax.IndexOf(@"t1));"), testNumber, "t1")
);
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46011Test()
{
string testScript = "create table t1 (c1 int, c2 as -c1 check (c2 < 10));";
@@ -2161,8 +2161,8 @@ public void SQL46011Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46012Test()
{
string testNumber = "SQL46012";
@@ -2173,8 +2173,8 @@ public void SQL46012Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46013Test()
{
string testNumber = "SQL46013";
@@ -2185,8 +2185,8 @@ public void SQL46013Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46014Test()
{
string testNumber = "SQL46014";
@@ -2197,8 +2197,8 @@ public void SQL46014Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46015Test()
{
string testNumber = "SQL46015";
@@ -2210,8 +2210,8 @@ public void SQL46015Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46016Test()
{
string testNumber = "SQL46016";
@@ -2229,8 +2229,8 @@ public void SQL46016Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ForeignKeyInDeclareTableErrorTest()
{
string testScript =
@@ -2254,12 +2254,12 @@ public void GraphDbEdgeInDeclareTableError()
ParserTestUtils.ErrorTest150(
testScript,
new ParserErrorInfo(27, "SQL46010", "constraint"),
- new ParserErrorInfo(testScript.IndexOf(@"to n2",60), "SQL46010", "to"));
+ new ParserErrorInfo(testScript.IndexOf(@"to n2", 60), "SQL46010", "to"));
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46018Test()
{
string testNumber = "SQL46018";
@@ -2270,8 +2270,8 @@ public void SQL46018Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46019Test()
{
string testNumber = "SQL46019";
@@ -2282,8 +2282,8 @@ public void SQL46019Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46020Test()
{
string testNumber = "SQL46020";
@@ -2294,8 +2294,8 @@ public void SQL46020Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46021Test()
{
string testNumber = "SQL46021";
@@ -2317,16 +2317,16 @@ CREATE PROCEDURE dbName..p1 AS select * from t1
ParserTestUtils.ErrorTestAllParsers(
sql46021TestSyntax,
new ParserErrorInfo(15, testNumber, CodeGenerationSupporter.Default),
- new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"rule dbName")+5, testNumber, CodeGenerationSupporter.Rule),
- new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"trigger dbName")+8, testNumber, CodeGenerationSupporter.Trigger),
- new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"PROCEDURE dbName")+10, testNumber, CodeGenerationSupporter.Procedure)
+ new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"rule dbName") + 5, testNumber, CodeGenerationSupporter.Rule),
+ new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"trigger dbName") + 8, testNumber, CodeGenerationSupporter.Trigger),
+ new ParserErrorInfo(sql46021TestSyntax.IndexOf(@"PROCEDURE dbName") + 10, testNumber, CodeGenerationSupporter.Procedure)
);
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46022Test()
{
string testNumber = "SQL46022";
@@ -2337,8 +2337,8 @@ public void SQL46022Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46023Test()
{
string testNumber = "SQL46023";
@@ -2349,8 +2349,8 @@ public void SQL46023Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46025Test()
{
string testNumber = "SQL46025";
@@ -2363,8 +2363,8 @@ public void SQL46025Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46026Test()
{
string testNumber = "SQL46026";
@@ -2379,8 +2379,8 @@ public void SQL46026Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46027Test()
{
string testNumber = "SQL46027";
@@ -2391,8 +2391,8 @@ public void SQL46027Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46028Test()
{
string testNumber = "SQL46028";
@@ -2418,8 +2418,8 @@ select a.b.c.d.e.*
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46029Test()
{
string testNumber = "SQL46029";
@@ -2430,8 +2430,8 @@ public void SQL46029Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46049Test()
{
//Function Execute AS
@@ -2457,9 +2457,9 @@ FROM SERVICE [//Adventure-Works.com/ExpenseClient]
TO SERVICE '//Adventure-Works.com/Expenses'
ON CONTRACT [//Adventure-Works.com/Expenses/ExpenseSubmission]
WITH LIFETIME=60, ENCRYPTION=ON";
- ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", LIFETIME=10;", new ParserErrorInfo(beginDialogConversation.Length+2, "SQL46049", "LIFETIME"));
- ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", RELATED_CONVERSATION_GROUP = @existing_conversation_handle, RELATED_CONVERSATION = @existing_conversation_handle ;", new ParserErrorInfo(beginDialogConversation.Length+62, "SQL46049", "RELATED_CONVERSATION"));
- ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", ENCRYPTION=OFF;", new ParserErrorInfo(beginDialogConversation.Length+2, "SQL46049", "ENCRYPTION"));
+ ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", LIFETIME=10;", new ParserErrorInfo(beginDialogConversation.Length + 2, "SQL46049", "LIFETIME"));
+ ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", RELATED_CONVERSATION_GROUP = @existing_conversation_handle, RELATED_CONVERSATION = @existing_conversation_handle ;", new ParserErrorInfo(beginDialogConversation.Length + 62, "SQL46049", "RELATED_CONVERSATION"));
+ ParserTestUtils.ErrorTest90AndAbove(beginDialogConversation + ", ENCRYPTION=OFF;", new ParserErrorInfo(beginDialogConversation.Length + 2, "SQL46049", "ENCRYPTION"));
//Create Database
//
@@ -2494,13 +2494,13 @@ ADD FILE
SIZE = 10MB,
FILEGROWTH = 5MB
);";
- ParserTestUtils.ErrorTestAllParsers(alterDatabase, new ParserErrorInfo(alterDatabase.IndexOf("SIZE",205), "SQL46049", "SIZE"));
+ ParserTestUtils.ErrorTestAllParsers(alterDatabase, new ParserErrorInfo(alterDatabase.IndexOf("SIZE", 205), "SQL46049", "SIZE"));
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46035Test()
{
ParserTestUtils.ErrorTestAllParsers("select * from { oj t1 cross join t2 }",
@@ -2509,8 +2509,8 @@ public void SQL46035Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46036Test()
{
ParserTestUtils.ErrorTestAllParsers(@"select * from --(* vendor(microsoft),product(odbc) oj t1 cross join t2 *)--",
@@ -2519,8 +2519,8 @@ public void SQL46036Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46038Test()
{
ParserTestUtils.ErrorTestAllParsers("drop statistics s1",
@@ -2529,8 +2529,8 @@ public void SQL46038Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46039Test()
{
ParserTestUtils.ErrorTestAllParsers("create function f1(@p int output) returns int as begin return 1; end",
@@ -2539,8 +2539,8 @@ public void SQL46039Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46040Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -2551,8 +2551,8 @@ public void SQL46040Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46041Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -2566,8 +2566,8 @@ public void SQL46041Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46042Test()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2577,8 +2577,8 @@ public void SQL46042Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46043Test()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2588,8 +2588,8 @@ public void SQL46043Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46047Test()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2599,8 +2599,8 @@ public void SQL46047Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46048Test()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2610,8 +2610,8 @@ public void SQL46048Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46050Test()
{
ParserTestUtils.ErrorTest100(
@@ -2624,8 +2624,8 @@ public void SQL46050Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46058Test()
{
TSql100Parser parser100 = new TSql100Parser(true);
@@ -2638,8 +2638,8 @@ public void SQL46058Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46059Test()
{
ParserTestUtils.ErrorTest100("CREATE INDEX i1 ON t1(c1) WHERE c1 < CONVERT(int, CONVERT(int, 20))",
@@ -2650,8 +2650,8 @@ public void SQL46059Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46060Test()
{
ParserTestUtils.ErrorTestAllParsers("CREATE TABLE t1(c1 INT PRIMARY KEY WITH FILLFACTOR = 105)",
@@ -2662,8 +2662,8 @@ public void SQL46060Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46061Test()
{
TSql100Parser parser100 = new TSql100Parser(true);
@@ -2703,8 +2703,8 @@ public void SQL46061Test_160()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46062Test()
{
ParserTestUtils.ErrorTestAllParsers("CREATE DATABASE db1 ON (NAME=n1, NEWNAME=n2, FILENAME='zzz')",
@@ -2786,8 +2786,8 @@ public void IndexFilterErrorTests()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void IntoClauseErrorTests()
{
ParserTestUtils.ErrorTestAllParsers("insert t1 select c1 into t2",
@@ -2808,8 +2808,8 @@ public void OnClauseErrorTests()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void UnclosedTokenTest()
{
ParserTestUtils.ErrorTestAllParsers("create table t1(c1 int) 'zz",
@@ -2828,8 +2828,8 @@ public void UnclosedTokenTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void TokenStreamRecognitionExceptionTest()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2839,8 +2839,8 @@ public void TokenStreamRecognitionExceptionTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void IPAddressErrorTest()
{
// T-SQL 80 doesn't have IPs!
@@ -2861,8 +2861,8 @@ public void IPAddressErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void EmptyParserInputTest()
{
ParserTestUtils.ErrorTestAllParsers(string.Empty);
@@ -2870,8 +2870,8 @@ public void EmptyParserInputTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void QuotedIdentifierErrorTest()
{
// Check, that tokens like "aaa" are treated as ascii literals if quoted identifiers are off
@@ -2884,13 +2884,13 @@ public void QuotedIdentifierErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void QuotedIdentfierPerBatchResetTest()
{
string SwitchingOffScript =
"CREATE TABLE \"t1\"(c1 int);\n\r GO SET QUOTED_IDENTIFIER OFF; CREATE TABLE \"t2\"(c1 int);";
- ParserTestUtils.ExecuteTestForAllParsers(delegate(TSqlParser parser)
+ ParserTestUtils.ExecuteTestForAllParsers(delegate (TSqlParser parser)
{
ParserTestUtils.ErrorTest(parser, SwitchingOffScript,
new ParserErrorInfo(72, "SQL46010", "\"t2\""));
@@ -2899,7 +2899,7 @@ public void QuotedIdentfierPerBatchResetTest()
string SwitchingOnScript =
"SET QUOTED_IDENTIFIER ON; CREATE TABLE \"t1\"(c1 int);\n\r GO CREATE TABLE \"t2\"(c1 int)";
- ParserTestUtils.ExecuteTestForAllParsers(delegate(TSqlParser parser)
+ ParserTestUtils.ExecuteTestForAllParsers(delegate (TSqlParser parser)
{
ParserTestUtils.ErrorTest(parser, SwitchingOnScript,
new ParserErrorInfo(71, "SQL46010", "\"t2\""));
@@ -2908,8 +2908,8 @@ public void QuotedIdentfierPerBatchResetTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ProcNameSemiColonErrorTest()
{
ParserTestUtils.ErrorTestAllParsers(
@@ -2920,8 +2920,8 @@ public void ProcNameSemiColonErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void RequiredSemiColonTest()
{
ParserTestUtils.ErrorTest100AndAbove(
@@ -2952,17 +2952,17 @@ WHEN MATCHED
@"ALTER SEARCH PROPERTY LIST foo DROP 'bax'",
new ParserErrorInfo(27, "SQL46097", "Search Property List"));
- ParserTestUtils.ErrorTest110(
+ ParserTestUtils.ErrorTest110(
@"drop search property list list1",
- new ParserErrorInfo(26, "SQL46097", "Search Property List"));
+ new ParserErrorInfo(26, "SQL46097", "Search Property List"));
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateEventNotificationStatementErrorTest()
{
// T-SQL 80 doesn't have CREATE EVENT NOTIFICATION statement
@@ -2983,8 +2983,8 @@ public void CreateEventNotificationStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateLogonTriggerStatementErrorTest()
{
ParserTestUtils.ErrorTest90AndAbove("create trigger trig1 on database for logon as Create Table t1 (int i1);",
@@ -2993,8 +2993,8 @@ public void CreateLogonTriggerStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateTriggerStatementWithUnkownEventsErrorTest()
{
ParserTestUtils.ErrorTest90AndAbove("create trigger trig1 on database for blah_blah as Create Table t1 (int i1);",
@@ -3003,8 +3003,8 @@ public void CreateTriggerStatementWithUnkownEventsErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateResourcePoolStatementErrorTest()
{
ParserTestUtils.ErrorTest100("create resource pool res_pool with (MIN_CPU_PERCENT = 105);",
@@ -3044,7 +3044,7 @@ public void CreateResourcePoolStatementErrorTest()
[TestMethod]
- [Priority(0)]
+ [Priority(0)]
public void CreateExternalResourcePoolStatementErrorTest()
{
ParserTestUtils.ErrorTest130("create external resource pool res_pool with (MAX_MEMORY_PERCENT = 0);",
@@ -3113,8 +3113,8 @@ public void CreateExternalResourcePoolStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterExternalResourcePoolStatementErrorTest()
{
ParserTestUtils.ErrorTest130("alter external resource pool res_pool with (MAX_MEMORY_PERCENT = 0);",
@@ -3183,8 +3183,8 @@ public void AlterExternalResourcePoolStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateWorkloadGroupStatementErrorTest()
{
ParserTestUtils.ErrorTest100("create workload group wg1 with (IMPORTANC = HIGH);",
@@ -3256,7 +3256,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
IMPORTANCE = HIGH
)";
ParserTestUtils.ErrorTest130(query1,
- new ParserErrorInfo(query1.IndexOf("START_TIME")+13, "SQL46134", "START_TIME"));
+ new ParserErrorInfo(query1.IndexOf("START_TIME") + 13, "SQL46134", "START_TIME"));
string query2 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
@@ -3269,7 +3269,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
IMPORTANCE = HIGH
)";
ParserTestUtils.ErrorTest130(query2,
- new ParserErrorInfo(query2.IndexOf("END_TIME")+11, "SQL46134", "END_TIME"));
+ new ParserErrorInfo(query2.IndexOf("END_TIME") + 11, "SQL46134", "END_TIME"));
string query3 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
@@ -3298,7 +3298,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
)";
ParserTestUtils.ErrorTest130(query4,
new ParserErrorInfo(query4.IndexOf("MEMBERNAME", 300), "SQL46049", "MEMBERNAME"));
-
+
string query5 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
WORKLOAD_GROUP = 'wgDefaultParams',
@@ -3311,8 +3311,8 @@ public void CreateWorkloadClassifierStatementErrorTest()
IMPORTANCE = HIGH
)";
ParserTestUtils.ErrorTest130(query5,
- new ParserErrorInfo(query5.IndexOf("WLM_CONTEXT",400), "SQL46049", "WLM_CONTEXT"));
-
+ new ParserErrorInfo(query5.IndexOf("WLM_CONTEXT", 400), "SQL46049", "WLM_CONTEXT"));
+
string query6 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
WORKLOAD_GROUP = 'wgDefaultParams',
@@ -3326,7 +3326,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
)";
ParserTestUtils.ErrorTest130(query6,
new ParserErrorInfo(query6.IndexOf("WLM_LABEL", 500), "SQL46049", "WLM_LABEL"));
-
+
string query7 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
WORKLOAD_GROUP = 'wgDefaultParams',
@@ -3340,7 +3340,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
)";
ParserTestUtils.ErrorTest130(query7,
new ParserErrorInfo(query7.IndexOf("IMPORTANCE", 550), "SQL46049", "IMPORTANCE"));
-
+
string query8 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
WORKLOAD_GROUP = 'wgDefaultParams',
@@ -3354,7 +3354,7 @@ public void CreateWorkloadClassifierStatementErrorTest()
)";
ParserTestUtils.ErrorTest130(query8,
new ParserErrorInfo(query8.IndexOf("START_TIME", 430), "SQL46049", "START_TIME"));
-
+
string query9 = @"CREATE WORKLOAD CLASSIFIER wcAllOptions
WITH(
WORKLOAD_GROUP = 'wgDefaultParams',
@@ -3386,8 +3386,8 @@ public void PredictErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateBrokerPriorityStatementErrorTest()
{
ParserTestUtils.ErrorTest100("create broker priority bp1 for conversatio;",
@@ -3412,8 +3412,8 @@ public void CreateBrokerPriorityStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterTableAlterIndexElementStatementErrorTest()
{
ParserTestUtils.ErrorTest130("ALTER TABLE t1 ALTER INDEX i1 REBUILD WITH (BUCKET_COUNT = 1, BUCKET_COUNT = 1);",
@@ -3424,8 +3424,8 @@ public void AlterTableAlterIndexElementStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterTableChangeTrackingDisableWithOptionsErrorTest()
{
ParserTestUtils.ErrorTest100("ALTER TABLE t1 DISABLE CHANGE_TRACKING WITH (TRACK_COLUMNS_UPDATED = ON)",
@@ -3434,8 +3434,8 @@ public void AlterTableChangeTrackingDisableWithOptionsErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void MultipleForClauseTest()
{
ParserTestUtils.ErrorTest100("select 1 for browse for xml",
@@ -3459,8 +3459,8 @@ public void MultipleForClauseTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ColumnDefinitionStorageAttributesErrorTest()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -3503,8 +3503,8 @@ public void ColumnDefinitionStorageAttributesErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void NotForReplicationNotAllowedInTableVariablesFunctionsTypesErrorTest()
{
// Column check constraint
@@ -3534,8 +3534,8 @@ public void NotForReplicationNotAllowedInTableVariablesFunctionsTypesErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void NoConstraintNamesInTableVariablesFunctionsTypesErrorTest()
{
// Named column constraints
@@ -3559,8 +3559,8 @@ public void NoConstraintNamesInTableVariablesFunctionsTypesErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void ServerAuditStatementsErrorTest()
{
TSql100Parser parser100 = new TSql100Parser(true);
@@ -3591,8 +3591,8 @@ public void ServerAuditStatementsErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SecurityStatementsErrorTest()
{
//Columns cannot be specified on both the permission and the object in grant/deny/revoke
@@ -3607,8 +3607,8 @@ public void SecurityStatementsErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void EventSessionStatementErrorTest()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -3649,8 +3649,8 @@ public void EventSessionStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void When_session_scope_is_other_than_database_or_server_CREATE_EVENT_SESSION_fails_for_130()
{
var tSql130Parser = new TSql130Parser(true);
@@ -3670,8 +3670,8 @@ public void When_session_scope_is_other_than_database_or_server_CREATE_EVENT_SES
// Test the key option duplication is not allowed
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void KeyOptionDuplicationErrorTest()
{
ParserTestUtils.ErrorTest90AndAbove(
@@ -3697,8 +3697,8 @@ public void KeyOptionDuplicationErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46069Test()
{
ParserTestUtils.ErrorTest90AndAbove("create queue q1 with status = on, Activation(status = on, procedure_name = dbo..p1, execute as self), retention = off;",
@@ -3713,8 +3713,8 @@ public void SQL46069Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void MaxParameterInDataTypesErrorTest()
{
ParserTestUtils.ErrorTest90AndAbove("CREATE TABLE t1(c1 CHAR(max))",
@@ -3727,8 +3727,8 @@ public void MaxParameterInDataTypesErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateSpatialIndexStatementErrorTest()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -3809,8 +3809,8 @@ public void SequenceStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void OffsetErrorTest()
{
//Offset no order by
@@ -3820,8 +3820,8 @@ public void OffsetErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CommitTransactionErrorTest()
{
ParserTestUtils.ErrorTest120("COMMIT TRANSACTION WITH (DELAYED_DURABILITY = ONN)", new ParserErrorInfo(46, "SQL46010", "ONN"));
@@ -3834,8 +3834,8 @@ public void CommitTransactionErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterDatabaseErrorTest()
{
ParserTestUtils.ErrorTest120("ALTER DATABASE testdb SET DELAYED_DURABILITY = ALLOWEDD)", new ParserErrorInfo(47, "SQL46010", "ALLOWEDD"));
@@ -3903,8 +3903,8 @@ public void CtasStatementErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterDatabaseModifyFilegroupErrorTest()
{
ParserTestUtils.ErrorTest130("ALTER DATABASE testdb MODIFY FILEGROUP [PRIMARY] READ ONLY)", new ParserErrorInfo(49, "SQL46010", "READ"));
@@ -3915,8 +3915,8 @@ public void AlterDatabaseModifyFilegroupErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void IncrementalStatisticsErrorTest()
{
ParserTestUtils.ErrorTest120("ALTER DATABASE testdb SET AUTO_CREATE_STATISTICS ON (INCREMENTAL)", new ParserErrorInfo(64, "SQL46010", ")"));
@@ -3937,8 +3937,8 @@ public void IncrementalStatisticsErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void Dev10Bug462552()
{
ParserTestUtils.ErrorTestAllParsers("CREATE PROCEDURE Proc1 @CurrencyCursor CURSOR AS SET @CurrencyCursor = CURSOR FORWARD_ONLY STATIC FOR SELECT column_1 FROM Table1;",
@@ -3954,8 +3954,8 @@ public void Dev10Bug462552()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46070Test()
{
// Tests for checking that duplication of options in DROP INDEX STATEMENT is not allowed
@@ -3976,8 +3976,8 @@ public void SQL46070Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46071Test()
{
ParserTestUtils.ErrorTestAllParsers("CREATE STATISTICS [stat] ON t1 (c1, c2) WITH FULLSCAN, NORECOMPUTE, SAMPLE 12 ROWS;",
@@ -3990,8 +3990,8 @@ public void SQL46071Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46072Test()
{
ParserTestUtils.ErrorTest100("WITH change_tracking_context (0xff),DIRREPS(C1,c2) as (SELECT c1 FROM t1) select c1 from t1",
@@ -4002,8 +4002,8 @@ public void SQL46072Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46074Test()
{
ParserTestUtils.ErrorTestAllParsers("INSERT INTO pi WITH (INDEX (i1)) DEFAULT VALUES",
@@ -4031,8 +4031,8 @@ OUTPUT c1"
/// Currently, only INSERT allows sub-DMLs
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46075Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4059,8 +4059,8 @@ public void SQL46075Test()
/// Checks, that sub-DML are not allowed in SELECT which is not source for insert
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46076Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4093,8 +4093,8 @@ public void SQL46076Test()
/// Checks, that sub-DMLs are not allowed in UPDATE or DELETE FROM clauses
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46077Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4119,8 +4119,8 @@ public void SQL46077Test()
/// Checks, that sub-DMLs are not allowed in USING clause of MERGE statement
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46078Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4141,8 +4141,8 @@ public void SQL46078Test()
/// Checks, that sub-DMLs have OUTPUT clause
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46079Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4170,8 +4170,8 @@ public void SQL46079Test()
/// Checks, that WHERE CURRENT OF is not allowed in sub-dmls
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46083Test()
{
TSql100Parser parser = new TSql100Parser(true);
@@ -4190,8 +4190,8 @@ public void SQL46083Test()
/// Checks that OPENROWSETBULK has at SINGLE_BLOB, SINGLE_CLOB, SINGLE_NCLOB or FORMATFILE option
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46082Test()
{
ParserTestUtils.ErrorTest90andAboveUntil150(
@@ -4203,8 +4203,8 @@ public void SQL46082Test()
/// Checks that CUBE, ROLLUP and GROUPING SETS are not allowed in GROUP BY ALL clause
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46084Test()
{
ParserTestUtils.ErrorTestAllParsers("SELECT c1 FROM t1 GROUP BY ALL c1 WITH CUBE",
@@ -4225,8 +4225,8 @@ public void SQL46084Test()
/// Checks that WITH CUBE and WITH ROLLUP are not allowed when CUBE, ROLLUP or GROUPING SETS specified
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46085Test()
{
TSql100Parser parser100 = new TSql100Parser(true);
@@ -4272,8 +4272,8 @@ public void GroupByDistributedAggErrorTest()
/// Checks that DISTINCT is not allowed in aggregate calls with OVER clause
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46086Test()
{
// User-defined aggregate
@@ -4293,8 +4293,8 @@ public void SQL46086Test()
/// Check that OUTPUT only allowed when passing variable to procedure
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46088Test()
{
ParserTestUtils.ErrorTestAllParsers("EXEC zzz 1 OUTPUT",
@@ -4307,8 +4307,8 @@ public void SQL46088Test()
/// Check that simple parameters ('value') are not allowed in procedure call after '@name = value' syntax
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46089Test()
{
ParserTestUtils.ErrorTestAllParsers("EXEC zzz 1, N'q', @v1 = 2, @v2 = 'a'");
@@ -4321,8 +4321,8 @@ public void SQL46089Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateServerAuditStatementErrorTest()
{
// CHECKS IF THE VALUE OF MAX_ROLLOVER_FILES IS LESS THAN 2147483647
@@ -4332,8 +4332,8 @@ public void CreateServerAuditStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateEndpointStatementErrorTest()
{
// CHECKS IF THE VALUE FOR THE OPTIONS AUTH_REALM AND DEFAULT_LOGON_DOMAIN ARE NON-EMPTY STRINGS
@@ -4358,8 +4358,8 @@ public void CreateEndpointStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateIndexStatementErrorTest()
{
ParserTestUtils.ErrorTest100("CREATE INDEX ind1 ON t1(c1) WHERE (...f1.IDENTITYCOL IS NULL)",
@@ -4380,8 +4380,8 @@ public void CreateIndexStatementErrorTest()
/// Check that the value of MAXDOP index option is within range
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46091Test()
{
ParserTestUtils.ErrorTest90AndAbove("CREATE INDEX ind1 ON dbo.t1 (c1) WITH (MAXDOP = 40000)",
@@ -4390,8 +4390,8 @@ public void SQL46091Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void RouteOptionDuplicationErrorTest()
{
string duplicateServiceNameSyntax = @"CREATE ROUTE [Route1] WITH
@@ -4399,7 +4399,7 @@ public void RouteOptionDuplicationErrorTest()
SERVICE_NAME = '//Adventure-Works.com/Expenses'";
ParserTestUtils.ErrorTest90AndAbove(
duplicateServiceNameSyntax,
- new ParserErrorInfo(duplicateServiceNameSyntax.IndexOf(@"SERVICE_NAME",75), "SQL46049", "SERVICE_NAME"));
+ new ParserErrorInfo(duplicateServiceNameSyntax.IndexOf(@"SERVICE_NAME", 75), "SQL46049", "SERVICE_NAME"));
ParserTestUtils.ErrorTest90AndAbove(
@"CREATE ROUTE [Route1] WITH LIFETIME = 10, LIFETIME = 10",
@@ -4408,8 +4408,8 @@ public void RouteOptionDuplicationErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46092Test()
{
ParserTestUtils.ErrorTestAllParsers("CREATE VIEW #v_temp AS SELECT * FROM sysobjects",
@@ -4421,8 +4421,8 @@ public void SQL46092Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46093Test()
{
ParserTestUtils.ErrorTestAllParsers("CREATE FUNCTION #fun_test (@param1 int) RETURNS TABLE AS RETURN (SELECT @param1 AS c1)",
@@ -4436,8 +4436,8 @@ public void SQL46093Test()
/// Check that the PERCENT value is between 0 and 100
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46094Test()
{
TSql80Parser parser80 = new TSql80Parser(true);
@@ -4461,8 +4461,8 @@ public void SQL46094Test()
/// Check that the identifiers are less than 128 characters
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46095Test()
{
string longIdentifier = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
@@ -4480,8 +4480,8 @@ public void SQL46095Test()
/// Check contained options are not specified on non-contained users
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46096Test()
{
ParserTestUtils.ErrorTest110("CREATE USER [BadUser] for login [login1] WITH password = 'PLACEHOLDER1'",
@@ -4494,8 +4494,8 @@ public void SQL46096Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void TableHintAsParamTest()
{
// This should be ok
@@ -4512,8 +4512,8 @@ public void TableHintAsParamTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateMessageTypeStatementErrorTest()
{
// CREATE MESSAGE TYPE m1 VALIDATION = VALID_XML
@@ -4530,8 +4530,8 @@ public void CreateMessageTypeStatementErrorTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46098Test()
{
// Missing FILENAME option should cause an error...
@@ -4574,8 +4574,8 @@ public void SQL46098Test()
/// Check that frame bounds that are not supported by RANGE are not allowed
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46099Test()
{
ParserTestUtils.ErrorTest110("SELECT SUM(a) OVER (ORDER BY shuffled_id RANGE BETWEEN 1 FOLLOWING AND 1 PRECEDING) FROM table",
@@ -4586,8 +4586,8 @@ public void SQL46099Test()
/// Check that invalid frame specification inside Over clause is caught.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46100Test()
{
ParserTestUtils.ErrorTest110("SELECT id, AVG(f) OVER ( ORDER BY shuffled_id ROWS BETWEEN 1 FOLLOWING AND 1 PRECEDING) FROM table",
@@ -4610,8 +4610,8 @@ public void SQL46100Test()
/// Check the max_duration value of low priority lock wait option.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46101Test()
{
ParserTestUtils.ErrorTest120("ALTER INDEX idx1 ON t1 REBUILD WITH (ONLINE = ON (WAIT_AT_LOW_PRIORITY (MAX_DURATION = 71583, ABORT_AFTER_WAIT = NONE)))",
@@ -4626,8 +4626,8 @@ public void SQL46101Test()
/// Check the max_duration value of low priority lock wait option.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SQL46102Test()
{
ParserTestUtils.ErrorTest120("ALTER INDEX idx1 ON t1 REBUILD WITH (ONLINE = ON (WAIT_AT_LOW_PRIORITY (MAX_DURATION = 0, ABORT_AFTER_WAIT = SELF)))",
@@ -4640,8 +4640,8 @@ public void SQL46102Test()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void SecurityPolicyStatementErrorsTest()
{
// Three part names
@@ -4770,8 +4770,8 @@ public void SecurityPolicyStatementErrorsTest()
/// Negative tests for a table with REMOTE_DATA_ARCHIVE
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void RemoteDataArchiveTableNegativeTest()
{
// Create table with RDA
@@ -4805,43 +4805,43 @@ public void RemoteDataArchiveTableNegativeTest()
ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = ON (MIGRATION_STATE = ON))", new ParserErrorInfo(64, "SQL46010", "ON"));
ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = ON (MIGRATION_STATE = DISABLE))", new ParserErrorInfo(64, "SQL46010", "DISABLE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(89, "SQL46010", "PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE ON, FILTER_PREDICATE = database.dbo.f1(c1)))", new ParserErrorInfo(70, "SQL46010", "ON"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE dbo.f1(c1)))", new ParserErrorInfo(99, "SQL46010", "dbo"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIIGRATION_STATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = NUL))", new ParserErrorInfo(82, "SQL46005", "MIGRATION_STATE", "FILTER_PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FIILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(82, "SQL46005", "FILTER_PREDICATE", "FIILTER_PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATIONSTATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIGRATIONSTATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTERPREDICATE = dbo.f1(c1)))", new ParserErrorInfo(82, "SQL46005", "FILTER_PREDICATE", "FILTERPREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_SSTATE = OUTBOUND, FILTERR_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIGRATION_SSTATE"));
-
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = MigrationOutbound))", new ParserErrorInfo(65, "SQL46010", "MigrationOutbound"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = MigrationState))", new ParserErrorInfo(65, "SQL46010", "MigrationState"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OTBOUND))", new ParserErrorInfo(65, "SQL46010", "OTBOUND"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUT]BOUND))", new ParserErrorInfo(68, "SQL46010", "]"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = ))", new ParserErrorInfo(65, "SQL46010", ")"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OFF))", new ParserErrorInfo(65, "SQL46010", "OFF"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = ON))", new ParserErrorInfo(65, "SQL46010", "ON"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = DISABLE))", new ParserErrorInfo(65, "SQL46010", "DISABLE"));
-
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(111, "SQL46010", "PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE ON, FILTER_PREDICATE = database.dbo.f1(c1)))", new ParserErrorInfo(92, "SQL46010", "ON"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE dbo.f1(c1)))", new ParserErrorInfo(121, "SQL46010", "dbo"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIIGRATION_STATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = NUL))", new ParserErrorInfo(104, "SQL46005", "MIGRATION_STATE", "FILTER_PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FIILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(104, "SQL46005", "FILTER_PREDICATE", "FIILTER_PREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATIONSTATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIGRATIONSTATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTERPREDICATE = dbo.f1(c1)))", new ParserErrorInfo(104, "SQL46005", "FILTER_PREDICATE", "FILTERPREDICATE"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_SSTATE = OUTBOUND, FILTERR_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIGRATION_SSTATE"));
-
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = MigrationOutbound))", new ParserErrorInfo(87, "SQL46010", "MigrationOutbound"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = MigrationState))", new ParserErrorInfo(87, "SQL46010", "MigrationState"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OTBOUND))", new ParserErrorInfo(87, "SQL46010", "OTBOUND"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUT]BOUND))", new ParserErrorInfo(90, "SQL46010", "]"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = ))", new ParserErrorInfo(87, "SQL46010", ")"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OFF))", new ParserErrorInfo(87, "SQL46010", "OFF"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = ON))", new ParserErrorInfo(87, "SQL46010", "ON"));
- ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = DISABLE))", new ParserErrorInfo(87, "SQL46010", "DISABLE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(89, "SQL46010", "PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE ON, FILTER_PREDICATE = database.dbo.f1(c1)))", new ParserErrorInfo(70, "SQL46010", "ON"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE dbo.f1(c1)))", new ParserErrorInfo(99, "SQL46010", "dbo"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIIGRATION_STATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = NUL))", new ParserErrorInfo(82, "SQL46005", "MIGRATION_STATE", "FILTER_PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FIILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(82, "SQL46005", "FILTER_PREDICATE", "FIILTER_PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATIONSTATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIGRATIONSTATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUTBOUND, FILTERPREDICATE = dbo.f1(c1)))", new ParserErrorInfo(82, "SQL46005", "FILTER_PREDICATE", "FILTERPREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_SSTATE = OUTBOUND, FILTERR_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(54, "SQL46005", "MIGRATION_STATE", "MIGRATION_SSTATE"));
+
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = MigrationOutbound))", new ParserErrorInfo(65, "SQL46010", "MigrationOutbound"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = MigrationState))", new ParserErrorInfo(65, "SQL46010", "MigrationState"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OTBOUND))", new ParserErrorInfo(65, "SQL46010", "OTBOUND"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OUT]BOUND))", new ParserErrorInfo(68, "SQL46010", "]"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = ))", new ParserErrorInfo(65, "SQL46010", ")"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = OFF))", new ParserErrorInfo(65, "SQL46010", "OFF"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = ON))", new ParserErrorInfo(65, "SQL46010", "ON"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF (MIGRATION_STATE = DISABLE))", new ParserErrorInfo(65, "SQL46010", "DISABLE"));
+
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(111, "SQL46010", "PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE ON, FILTER_PREDICATE = database.dbo.f1(c1)))", new ParserErrorInfo(92, "SQL46010", "ON"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE dbo.f1(c1)))", new ParserErrorInfo(121, "SQL46010", "dbo"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIIGRATION_STATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTER_PREDICATE = NUL))", new ParserErrorInfo(104, "SQL46005", "MIGRATION_STATE", "FILTER_PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FIILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(104, "SQL46005", "FILTER_PREDICATE", "FIILTER_PREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATIONSTATE = OUTBOUND, FILTER_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIGRATIONSTATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUTBOUND, FILTERPREDICATE = dbo.f1(c1)))", new ParserErrorInfo(104, "SQL46005", "FILTER_PREDICATE", "FILTERPREDICATE"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_SSTATE = OUTBOUND, FILTERR_PREDICATE = dbo.f1(c1)))", new ParserErrorInfo(76, "SQL46005", "MIGRATION_STATE", "MIGRATION_SSTATE"));
+
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = MigrationOutbound))", new ParserErrorInfo(87, "SQL46010", "MigrationOutbound"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = MigrationState))", new ParserErrorInfo(87, "SQL46010", "MigrationState"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OTBOUND))", new ParserErrorInfo(87, "SQL46010", "OTBOUND"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OUT]BOUND))", new ParserErrorInfo(90, "SQL46010", "]"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = ))", new ParserErrorInfo(87, "SQL46010", ")"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = OFF))", new ParserErrorInfo(87, "SQL46010", "OFF"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = ON))", new ParserErrorInfo(87, "SQL46010", "ON"));
+ ParserTestUtils.ErrorTest130("ALTER TABLE T1 SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVERY (MIGRATION_STATE = DISABLE))", new ParserErrorInfo(87, "SQL46010", "DISABLE"));
// Alter table with invalid/ mis-spelled RDA
//
@@ -4865,15 +4865,15 @@ public void RemoteDataArchiveTableNegativeTest()
// Alter table remote_data_archive with mis-spelled option
//
ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OF (MIGRATION_STATE = PAUSED)", new ParserErrorInfo(49, "SQL46010", "OF"));
- ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVER (MIGRATION_STATE = PAUSED)", new ParserErrorInfo(49, "SQL46005", "OFF_WITHOUT_DATA_RECOVERY", "OFF_WITHOUT_DATA_RECOVER"));
+ ParserTestUtils.ErrorTest130("alter table t_stretch SET (REMOTE_DATA_ARCHIVE = OFF_WITHOUT_DATA_RECOVER (MIGRATION_STATE = PAUSED)", new ParserErrorInfo(49, "SQL46005", "OFF_WITHOUT_DATA_RECOVERY", "OFF_WITHOUT_DATA_RECOVER"));
}
///
/// Negative tests for a database with REMOTE_DATA_ARCHIVE
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void RemoteDataArchiveDatabaseNegativeTest()
{
ParserTestUtils.ErrorTest130("ALTER database db_test WITH SET REMOTE_DATA_ARCHIVE= OFF (SERVER = N'Test')", new ParserErrorInfo(15, "SQL46010", "db_test"));
@@ -4901,8 +4901,8 @@ public void RemoteDataArchiveDatabaseNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateColumnStoreIndexNegativeTest()
{
// cannot create clustered index with filter predicate
@@ -4936,8 +4936,8 @@ public void CreateColumnStoreIndexNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateExternalDataSourceNegativeTest()
{
// Create external data source keyword typos
@@ -4977,10 +4977,10 @@ public void CreateExternalDataSourceNegativeTest()
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = SHARD_MAP_MANAGER, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHRD_MAP_NAME = 'someShardMap')", new ParserErrorInfo(122, "SQL46010", "SHRD_MAP_NAME"));
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = SHARD_MAP_MANAGER, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME 'someShardMap')", new ParserErrorInfo(122, "SQL46010", "SHARD_MAP_NAME"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer' DATABASE_NAME = 'someDatabase')", new ParserErrorInfo(77, "SQL46010", "DATABASE_NAME"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAMES = 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAMES"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABSE_NAME = 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABSE_NAME"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAME"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer' DATABASE_NAME = 'someDatabase')", new ParserErrorInfo(77, "SQL46010", "DATABASE_NAME"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAMES = 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAMES"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABSE_NAME = 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABSE_NAME"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME 'someDatabase')", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAME"));
// Missing required properties
//
@@ -4992,8 +4992,8 @@ public void CreateExternalDataSourceNegativeTest()
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = HADOP, LOCATION = 'protocol://ip_address:port', RESOURCE_MANAGER_LOCATION = 'ip_address:port', CREDENTIAL = cred1)", new ParserErrorInfo(46, "SQL46010", "HADOP"));
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = SHARD_MAP_MANGER, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = 'someDatabase')", new ParserErrorInfo(46, "SQL46010", "SHARD_MAP_MANGER"));
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = 'SHARD_MAP_MANAGER', LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = 'someShardMap', CREDENTIAL = someCred)", new ParserErrorInfo(46, "SQL46010", "'SHARD_MAP_MANAGER'"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDMBS, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase')", new ParserErrorInfo(46, "SQL46010", "RDMBS"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = 'RDBMS', LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', CREDENTIAL = someCred)", new ParserErrorInfo(46, "SQL46010", "'RDBMS'"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDMBS, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase')", new ParserErrorInfo(46, "SQL46010", "RDMBS"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = 'RDBMS', LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', CREDENTIAL = someCred)", new ParserErrorInfo(46, "SQL46010", "'RDBMS'"));
// Create external data source with incorrect data source location value
//
@@ -5010,17 +5010,17 @@ public void CreateExternalDataSourceNegativeTest()
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = SHARD_MAP_MANAGER, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = someShardMap, CREDENTIAL = someCred)", new ParserErrorInfo(122, "SQL46010", "SHARD_MAP_NAME"));
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = SHARD_MAP_MANAGER, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = 'someShardMap', CREDENTIAL = 'someCred')", new ParserErrorInfo(155, "SQL46010", "CREDENTIAL"));
- // Create external rdbms data source with various incorrect values
- //
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = someServer, DATABASE_NAME = 'someDatabase', CREDENTIAL = someCred)", new ParserErrorInfo(64, "SQL46010", "someServer"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = someDatabase, CREDENTIAL = someCred)", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAME"));
- ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', CREDENTIAL = 'someCred')", new ParserErrorInfo(110, "SQL46010", "CREDENTIAL"));
+ // Create external rdbms data source with various incorrect values
+ //
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = someServer, DATABASE_NAME = 'someDatabase', CREDENTIAL = someCred)", new ParserErrorInfo(64, "SQL46010", "someServer"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = someDatabase, CREDENTIAL = someCred)", new ParserErrorInfo(78, "SQL46010", "DATABASE_NAME"));
+ ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', CREDENTIAL = 'someCred')", new ParserErrorInfo(110, "SQL46010", "CREDENTIAL"));
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterExternalDataSourceNegativeTest()
{
// Alter external data source keyword typos
@@ -5078,8 +5078,8 @@ public void AlterExternalDataSourceNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DropExternalDataSourceNegativeTest()
{
// Drop external data source keyword typos
@@ -5097,8 +5097,8 @@ public void DropExternalDataSourceNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateExternalFileFormatNegativeTest()
{
// Create external file format keyword typos
@@ -5218,8 +5218,8 @@ public void CreateExternalFileFormatNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DropExternalFileFormatNegativeTest()
{
// Drop external file format keyword typos
@@ -5237,8 +5237,8 @@ public void DropExternalFileFormatNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateExternalTableNegativeTest()
{
// Create external table keyword typos
@@ -5375,8 +5375,8 @@ public void CreateExternalTableCtasStatementErrorTest()
}
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DropExternalTableNegativeTest()
{
// Drop external table keyword typos
@@ -5392,8 +5392,8 @@ public void DropExternalTableNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateUserFromExternalProviderNegativeTest()
{
// Drop external data source keyword typos
@@ -5410,8 +5410,8 @@ public void CreateUserFromExternalProviderNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterTableAlterColumnOnlineTestsNegativeTest()
{
ParserTestUtils.ErrorTest130("ALTER TABLE t1 ALTER COLUMN c1 VARCHAR (20) WITH (ONLINE2 = ON);",
@@ -5434,8 +5434,8 @@ public void AlterTableAlterColumnOnlineTestsNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest, Feature.AlwaysEncrypted)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest, Feature.AlwaysEncrypted)]
public void AlwaysEncryptedNegativeTest()
{
@@ -5483,7 +5483,7 @@ DROP VALUE
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);";
- ParserTestUtils.ErrorTest130(cekExtraParametersSyntax, new ParserErrorInfo(cekExtraParametersSyntax.IndexOf(@"CMK2,")+4, "SQL46010", ","));
+ ParserTestUtils.ErrorTest130(cekExtraParametersSyntax, new ParserErrorInfo(cekExtraParametersSyntax.IndexOf(@"CMK2,") + 4, "SQL46010", ","));
// Drop column encryption key missing keyworkd
//
@@ -5528,8 +5528,8 @@ WITH VALUES
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void AlterDatabaseScopedCredentialNegativeTest()
{
@@ -5607,8 +5607,8 @@ public void AlterDatabaseScopedCredentialNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateDatabaseScopedCredentialNegativeTest()
{
@@ -5685,8 +5685,8 @@ public void CreateDatabaseScopedCredentialNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void DropDatabaseScopedCredentialNegativeTest()
{
@@ -5716,45 +5716,45 @@ public void DropDatabaseScopedCredentialNegativeTest()
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
- public void CreateMasterKeyNegativeTest()
- {
- // Keyword typos
- ParserTestUtils.ErrorTest130("CREAT MASTER KEY", new ParserErrorInfo(6, "SQL46010", "MASTER"));
- ParserTestUtils.ErrorTest130("CREATE MASTE KEY", new ParserErrorInfo(7, "SQL46010", "MASTE"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KY", new ParserErrorInfo(7, "SQL46010", "MASTER"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY BY PASSWD = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "BY"));
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void CreateMasterKeyNegativeTest()
+ {
+ // Keyword typos
+ ParserTestUtils.ErrorTest130("CREAT MASTER KEY", new ParserErrorInfo(6, "SQL46010", "MASTER"));
+ ParserTestUtils.ErrorTest130("CREATE MASTE KEY", new ParserErrorInfo(7, "SQL46010", "MASTE"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KY", new ParserErrorInfo(7, "SQL46010", "MASTER"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY BY PASSWD = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "BY"));
- // Missing keyword
- ParserTestUtils.ErrorTest130("CREATE KEY ENCRYPTION BY PASSWORD = N'Placeholder'", new ParserErrorInfo(0, "SQL46010", "CREATE"), new ParserErrorInfo(7, "SQL46010", "KEY"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "ENCRYPTION"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION PASSWORD = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "ENCRYPTION"));
+ // Missing keyword
+ ParserTestUtils.ErrorTest130("CREATE KEY ENCRYPTION BY PASSWORD = N'Placeholder'", new ParserErrorInfo(0, "SQL46010", "CREATE"), new ParserErrorInfo(7, "SQL46010", "KEY"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "ENCRYPTION"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION PASSWORD = N'Placeholder'", new ParserErrorInfo(18, "SQL46010", "ENCRYPTION"));
- // Missing password
+ // Missing password
// [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="No password in next line")]
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD = ", new ParserErrorInfo(43, "SQL46029", "="));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD = ", new ParserErrorInfo(43, "SQL46029", "="));
- // Missing equal sign, 2 equal signs
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD N'Placeholder'", new ParserErrorInfo(41, "SQL46010", "N'Placeholder'"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD == 'Placeholder'", new ParserErrorInfo(42, "SQL46010", "="));
+ // Missing equal sign, 2 equal signs
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD N'Placeholder'", new ParserErrorInfo(41, "SQL46010", "N'Placeholder'"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD == 'Placeholder'", new ParserErrorInfo(42, "SQL46010", "="));
- // Improperly quoted password
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD N'Placeholder", new ParserErrorInfo(41, "SQL46030", "N'Placeholder"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD Placeholder'", new ParserErrorInfo(52, "SQL46030", "'"));
+ // Improperly quoted password
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD N'Placeholder", new ParserErrorInfo(41, "SQL46030", "N'Placeholder"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD Placeholder'", new ParserErrorInfo(52, "SQL46030", "'"));
- // Extra stuff after statement
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY CREATE", new ParserErrorInfo(18, "SQL46010", "CREATE"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY foobar", new ParserErrorInfo(18, "SQL46010", "foobar"));
- ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'Placeholder' KEY", new ParserErrorInfo(58, "SQL46010", "KEY"));
- }
+ // Extra stuff after statement
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY CREATE", new ParserErrorInfo(18, "SQL46010", "CREATE"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY foobar", new ParserErrorInfo(18, "SQL46010", "foobar"));
+ ParserTestUtils.ErrorTest130("CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'Placeholder' KEY", new ParserErrorInfo(58, "SQL46010", "KEY"));
+ }
///
/// Negative tests for CREATE OR ALTER statements
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void CreateOrAlterNegativeTest()
{
// CREATE OR ALTER FUNCTIONS
@@ -5794,8 +5794,8 @@ public void CreateOrAlterNegativeTest()
/// Trim built-in negative tests.
///
[TestMethod]
- [Priority(0)]
- [SqlStudioTestCategory(Category.UnitTest)]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
public void TrimBuiltInNegativeTest()
{
ParserTestUtils.ErrorTest140("SELECT TRIM(' TestString ';", new ParserErrorInfo(26, "SQL46010", ";"));
@@ -6104,7 +6104,7 @@ INNER JOIN
WHEN NOT MATCHED BY SOURCE THEN DELETE OUTPUT inserted.*, deleted.*;";
// Typo in the Match Clause.
//
- ParserTestUtils.ErrorTest150(query2, new ParserErrorInfo(query2.IndexOf("-Dog")+1, "SQL46010", "Dog"));
+ ParserTestUtils.ErrorTest150(query2, new ParserErrorInfo(query2.IndexOf("-Dog") + 1, "SQL46010", "Dog"));
}
[TestMethod]
@@ -6563,9 +6563,9 @@ public void CopyCommandInvalidSyntaxTest()
ParserTestUtils.ErrorTest140(invalidToSyntax, new ParserErrorInfo(10, "SQL46010", "FROM"));
ParserTestUtils.ErrorTest150(invalidToSyntax, new ParserErrorInfo(10, "SQL46010", "FROM"));
- ParserTestUtils.ErrorTest130(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,")+15, "SQL46010", ","));
- ParserTestUtils.ErrorTest140(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,")+15, "SQL46010", ","));
- ParserTestUtils.ErrorTest150(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,")+15, "SQL46010", ","));
+ ParserTestUtils.ErrorTest130(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,") + 15, "SQL46010", ","));
+ ParserTestUtils.ErrorTest140(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,") + 15, "SQL46010", ","));
+ ParserTestUtils.ErrorTest150(invalidOptionSyntax, new ParserErrorInfo(invalidOptionSyntax.IndexOf(@"FIELDTERMINATOR,") + 15, "SQL46010", ","));
ParserTestUtils.ErrorTest130(invalidIdentityOptionSyntax, new ParserErrorInfo(1,
"SQL46130", "IDENTITY_INSERT"));
@@ -6686,7 +6686,7 @@ public void OpenRowset160_CosmosDb()
OBJECT = 'y', CONNECTION = 'a', CONNECTION = 'b')
with (a varchar(10)) as cols";
ParserTestUtils.ErrorTest160(multipleParameterDeclarationSynax,
- new ParserErrorInfo(multipleParameterDeclarationSynax.IndexOf(@"CONNECTION = 'a', CONNECTION")+18, "SQL46049", "CONNECTION"));
+ new ParserErrorInfo(multipleParameterDeclarationSynax.IndexOf(@"CONNECTION = 'a', CONNECTION") + 18, "SQL46049", "CONNECTION"));
// Not all parameters provided
//
@@ -6785,24 +6785,88 @@ public void OpenRowset160_WithClause()
string emptyWithClauseSyntax = @"SELECT *
FROM OPENROWSET ('a', 'b', [dbo].[tbl])
WITH () AS a;";
- ParserTestUtils.ErrorTest160(emptyWithClauseSyntax, new ParserErrorInfo(emptyWithClauseSyntax.IndexOf(@"() AS a")+1, "SQL46010", ")"));
+ ParserTestUtils.ErrorTest160(emptyWithClauseSyntax, new ParserErrorInfo(emptyWithClauseSyntax.IndexOf(@"() AS a") + 1, "SQL46010", ")"));
// Invalid WITH clause
//
string invalidWithClauseSyntax = @"SELECT *
FROM OPENROWSET ('a', 'b', c)
WITH (A = 5) AS a;";
- ParserTestUtils.ErrorTest160(invalidWithClauseSyntax, new ParserErrorInfo(invalidWithClauseSyntax.IndexOf(@"(A = 5)")+3, "SQL46010", "="));
+ ParserTestUtils.ErrorTest160(invalidWithClauseSyntax, new ParserErrorInfo(invalidWithClauseSyntax.IndexOf(@"(A = 5)") + 3, "SQL46010", "="));
string invalidWithClause2Syntax = @"SELECT *
FROM OPENROWSET ('a', 'b', [mytable])
WITH (a) AS a;";
- ParserTestUtils.ErrorTest160(invalidWithClause2Syntax, new ParserErrorInfo(invalidWithClause2Syntax.IndexOf(@"(a)")+2, "SQL46010", ")"));
+ ParserTestUtils.ErrorTest160(invalidWithClause2Syntax, new ParserErrorInfo(invalidWithClause2Syntax.IndexOf(@"(a)") + 2, "SQL46010", ")"));
string invalidWithClause3Syntax = @"SELECT *
FROM OPENROWSET ('a', 'b', [ab cd])
WITH a;";
ParserTestUtils.ErrorTest160(invalidWithClause3Syntax, new ParserErrorInfo(invalidWithClause3Syntax.IndexOf(@"a;"), "SQL46010", "a"));
}
+
+ ///
+ /// Negative tests for Scalar Functions in Fabric DW.
+ ///
+ [TestMethod]
+ [Priority(0)]
+ [SqlStudioTestCategory(Category.UnitTest)]
+ public void ScalarFunctionNegativeTestsFabricDW()
+ {
+ string scalarFunctionSyntax = @"CREATE OR ALTER FUNCTION dbo.FormatPrice
+ (
+ @amount AS DECIMAL(10,2) = 0.0
+ )
+ RETURNS VARCHAR(20)
+ WITH ENCRYPTION, SCHEMABINDING, RETURNS NULL ON NULL INPUT, INLINE = ON
+ AS
+ BEGIN
+ RETURN '$' + CAST(@amount AS VARCHAR)
+ END;
+ ";
+ ParserTestUtils.ErrorTestFabricDW(scalarFunctionSyntax, new ParserErrorInfo(scalarFunctionSyntax.IndexOf("ENCRYPTION"), "SQL46026", "ENCRYPTION"));
+
+ string scalarFunctionSyntax2 = @"CREATE OR ALTER FUNCTION dbo.ConcatNames
+ (
+ @first AS NVARCHAR(50),
+ @last AS NVARCHAR(50)
+ )
+ RETURNS NVARCHAR(101)
+ WITH RETURNS NULL ON NULL INPUT, INLINE = OFF, EXECUTE AS CALLER
+ AS
+ BEGIN
+ RETURN @first + ' ' + @last
+ END;";
+ ParserTestUtils.ErrorTestFabricDW(scalarFunctionSyntax2, new ParserErrorInfo(scalarFunctionSyntax2.IndexOf("INLINE"), "SQL46010", "INLINE"));
+
+ string scalarFunctionSyntax3 = @"CREATE OR ALTER FUNCTION dbo.CountProducts
+ (
+ @ProductTable AS dbo.ProductType READONLY
+ )
+ RETURNS INT
+ WITH SCHEMABINDING
+ AS
+ BEGIN
+ RETURN (SELECT COUNT(*) FROM @ProductTable)
+ END;";
+ ParserTestUtils.ErrorTestFabricDW(scalarFunctionSyntax3, new ParserErrorInfo(scalarFunctionSyntax3.IndexOf("READONLY"), "SQL46026", "READONLY"));
+
+ string scalarFunctionSyntax4 = @"CREATE OR ALTER FUNCTION sales.TotalSalesForRegion
+ (
+ @RegionId AS sys.INT NULL,
+ @SalesData AS sales.SalesTableType READONLY
+ )
+ RETURNS MONEY
+ WITH RETURNS NULL ON NULL INPUT
+ AS
+ BEGIN
+ RETURN (
+ SELECT SUM(Amount)
+ FROM @SalesData
+ WHERE RegionId = @RegionId
+ )
+ END;";
+ ParserTestUtils.ErrorTestFabricDW(scalarFunctionSyntax4, new ParserErrorInfo(scalarFunctionSyntax4.IndexOf("NULL"), "SQL46010", "NULL"));
+ }
}
}
diff --git a/Test/SqlDom/ParserTest.cs b/Test/SqlDom/ParserTest.cs
index 73851cd..49f9fb7 100644
--- a/Test/SqlDom/ParserTest.cs
+++ b/Test/SqlDom/ParserTest.cs
@@ -50,6 +50,21 @@ public ParserTest(
_resultFabricDW = resultFabricDW;
}
+ public ParserTest(
+ string scriptFilename,
+ ParserTestOutput result80, ParserTestOutput result90, ParserTestOutput result100,
+ ParserTestOutput result110, ParserTestOutput result120, ParserTestOutput result130,
+ ParserTestOutput result140, ParserTestOutput result150, ParserTestOutput result160,
+ ParserTestOutput result170)
+ : this(
+ scriptFilename,
+ result80, result90, result100,
+ result110, result120, result130,
+ result140, result150, result160,
+ result170, result170)
+ {
+ }
+
public ParserTest(
string scriptFilename,
ParserTestOutput result80, ParserTestOutput result90, ParserTestOutput result100,
@@ -60,7 +75,7 @@ public ParserTest(
result80, result90, result100,
result110, result120, result130,
result140, result150, result160,
- result160, result160)
+ result160)
{
}
@@ -73,8 +88,7 @@ public ParserTest(
scriptFilename,
result80, result90, result100,
result110, result120, result130,
- result140, result150, result150,
- result150, result150)
+ result140, result150, result150)
{
}
@@ -474,7 +488,7 @@ public ParserTest170(string scriptFilename, int nErrors80, int nErrors90, int nE
new ParserTestOutput(nErrors80), new ParserTestOutput(nErrors90), new ParserTestOutput(nErrors100),
new ParserTestOutput(nErrors110), new ParserTestOutput(nErrors120), new ParserTestOutput(nErrors130),
new ParserTestOutput(nErrors140), new ParserTestOutput(nErrors150), new ParserTestOutput(nErrors160),
- new ParserTestOutput("Baselines170"), new ParserTestOutput(nErrors160))
+ new ParserTestOutput("Baselines170"))
{ }
public ParserTest170(string scriptFilename, ParserTestOutput output80, ParserTestOutput output90, ParserTestOutput output100,
@@ -487,8 +501,7 @@ public ParserTest170(string scriptFilename, ParserTestOutput output80, ParserTes
output140,
output150,
output160,
- new ParserTestOutput("Baselines170"),
- output160)
+ new ParserTestOutput("Baselines170"))
{ }
public ParserTest170(string scriptFilename, params ParserErrorInfo[] errors80And90And100And110And120and130and140and150and160)
diff --git a/Test/SqlDom/TestScripts/CloneTableTestsFabricDW.sql b/Test/SqlDom/TestScripts/CloneTableTestsFabricDW.sql
new file mode 100644
index 0000000..32c3106
--- /dev/null
+++ b/Test/SqlDom/TestScripts/CloneTableTestsFabricDW.sql
@@ -0,0 +1,7 @@
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA;
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA AT '2023-05-23T14:24:10.325';
+
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA AT '2023-05-23T14:24:10';
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/CreateAlterTableClusterByTestsFabricDW.sql b/Test/SqlDom/TestScripts/CreateAlterTableClusterByTestsFabricDW.sql
new file mode 100644
index 0000000..05f8e02
--- /dev/null
+++ b/Test/SqlDom/TestScripts/CreateAlterTableClusterByTestsFabricDW.sql
@@ -0,0 +1,38 @@
+CREATE TABLE Customers (
+ CustomerID INT ,
+ Name NVARCHAR (100)
+)
+WITH (CLUSTER BY (CustomerID));
+
+
+GO
+CREATE TABLE sales.Orders (
+ OrderID INT ,
+ CustomerID INT ,
+ OrderDate DATE
+)
+WITH (CLUSTER BY (CustomerID, OrderDate), DISTRIBUTION = HASH(CustomerID));
+
+
+GO
+CREATE TABLE Inventory (
+ ProductID INT ,
+ ProductName VARCHAR (255),
+ InStock BIT
+)
+WITH (CLUSTER BY (ProductID));
+
+
+GO
+ALTER TABLE Customers
+ ADD (CLUSTER BY (CustomerID));
+
+
+GO
+ALTER TABLE sales.Orders
+ ADD (CLUSTER BY (CustomerID, OrderDate));
+
+
+GO
+ALTER TABLE Inventory
+ ADD (CLUSTER BY (ProductID));
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/CreateExternalTableStatementTestsFabricDW.sql b/Test/SqlDom/TestScripts/CreateExternalTableStatementTestsFabricDW.sql
new file mode 100644
index 0000000..e2459a0
--- /dev/null
+++ b/Test/SqlDom/TestScripts/CreateExternalTableStatementTestsFabricDW.sql
@@ -0,0 +1,51 @@
+CREATE EXTERNAL TABLE t1 (
+ c1 INT,
+ c2 CHAR (16) COLLATE Latin1_General_BIN2 NOT NULL,
+ c3 DATE,
+ c4 DECIMAL (5, 2) NULL,
+ c5 VARCHAR (50) COLLATE Latin1_General_BIN2 NULL
+)
+ WITH (
+ DATA_SOURCE = eds1,
+ LOCATION = '/test/test.txt',
+ FILE_FORMAT = eff1,
+ TABLE_OPTIONS = N'{"READ_OPTIONS":
+["ALLOW_INCONSISTENT_READS"]
+}'
+ );
+
+CREATE EXTERNAL TABLE t2 (
+ c1 INT,
+ c2 CHAR (16) COLLATE Latin1_General_BIN2 NOT NULL,
+ c3 DATE,
+ c4 DECIMAL (5, 2) NULL,
+ c5 VARCHAR (50) COLLATE Latin1_General_BIN2 NULL
+)
+ WITH (
+ DATA_SOURCE = eds1,
+ LOCATION = '/test/test.txt',
+ FILE_FORMAT = eff1,
+ TABLE_OPTIONS = N'randomstring��?Ƕ�'
+ );
+
+CREATE EXTERNAL TABLE finance.Transactions2024 (
+ TransactionID BIGINT,
+ AccountNumber VARCHAR (20),
+ TransactionDate DATE,
+ Amount FLOAT
+)
+ WITH (
+ LOCATION = 'https://storage.blob.core.windows.net/data/transactions2024/',
+ FILE_FORMAT = AvroFormat
+ );
+
+CREATE EXTERNAL TABLE analytics.WebEvents (
+ EventID INT,
+ UserID INT,
+ EventTime DATETIME,
+ EventType NVARCHAR (50)
+)
+ WITH (
+ LOCATION = '/logs/web/events/',
+ FILE_FORMAT = JsonFormat
+ );
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/CreateProcedureCloneTableTestsFabricDW.sql b/Test/SqlDom/TestScripts/CreateProcedureCloneTableTestsFabricDW.sql
new file mode 100644
index 0000000..a6cf794
--- /dev/null
+++ b/Test/SqlDom/TestScripts/CreateProcedureCloneTableTestsFabricDW.sql
@@ -0,0 +1,21 @@
+CREATE PROCEDURE CloneEmployeeLocal
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA;
+
+
+GO
+CREATE PROCEDURE CloneEmployeeFromDbo1
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA;
+
+
+GO
+CREATE PROCEDURE CloneEmployeeAtTimestamp
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo.EmployeeUSA AT '2023-05-23T14:24:10.325';
+
+
+GO
+CREATE PROCEDURE CloneEmployeeFromDbo1AtTimestamp
+AS
+CREATE TABLE dbo.Employee AS CLONE OF dbo1.EmployeeUSA AT '2023-05-23T14:24:10';
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/ScalarFunctionIntTestsFabricDW.sql b/Test/SqlDom/TestScripts/ScalarFunctionIntTestsFabricDW.sql
deleted file mode 100644
index d348a7e..0000000
--- a/Test/SqlDom/TestScripts/ScalarFunctionIntTestsFabricDW.sql
+++ /dev/null
@@ -1,11 +0,0 @@
-CREATE FUNCTION dbo.ConvertInput
-(@MyValueIn INT)
-RETURNS DECIMAL (10, 2)
-AS
-BEGIN
- DECLARE @MyValueOut AS INT;
- SET @MyValueOut = CAST (@MyValueIn AS DECIMAL (10, 2));
- RETURN (@MyValueOut);
-END
-GO
-SELECT dbo.ConvertInput(15) AS 'ConvertedValue';
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/ScalarFunctionTestsFabricDW.sql b/Test/SqlDom/TestScripts/ScalarFunctionTestsFabricDW.sql
new file mode 100644
index 0000000..fed9aef
--- /dev/null
+++ b/Test/SqlDom/TestScripts/ScalarFunctionTestsFabricDW.sql
@@ -0,0 +1,53 @@
+CREATE OR ALTER FUNCTION dbo.GetFullName
+(@firstName NVARCHAR (50)='John', @lastName NVARCHAR (50))
+RETURNS NVARCHAR (101)
+WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT
+AS
+BEGIN
+ RETURN @firstName + ' ' + @lastName;
+END
+
+
+GO
+CREATE OR ALTER FUNCTION dbo.CalculateTotal
+(@price DECIMAL (10, 2), @quantity INT=1)
+RETURNS DECIMAL (10, 2)
+WITH EXECUTE AS SELF, CALLED ON NULL INPUT
+AS
+BEGIN
+ RETURN @price * @quantity;
+END
+
+
+GO
+CREATE OR ALTER FUNCTION sales.ComputeDiscount
+(@amount FLOAT, @discount FLOAT)
+RETURNS FLOAT
+WITH RETURNS NULL ON NULL INPUT
+AS
+BEGIN
+ RETURN @amount - (@amount * @discount / 100);
+END
+
+
+GO
+CREATE FUNCTION dbo.GetFullName
+(@FirstName VARCHAR (50), @LastName VARCHAR (50))
+RETURNS VARCHAR (101)
+AS
+BEGIN
+ RETURN @FirstName + ' ' + @LastName;
+END
+
+GO
+CREATE FUNCTION dbo.ConvertInput
+(@MyValueIn INT)
+RETURNS DECIMAL (10, 2)
+AS
+BEGIN
+ DECLARE @MyValueOut AS INT;
+ SET @MyValueOut = CAST (@MyValueIn AS DECIMAL (10, 2));
+ RETURN (@MyValueOut);
+END
+GO
+SELECT dbo.ConvertInput(15) AS 'ConvertedValue';
\ No newline at end of file
diff --git a/Test/SqlDom/TestScripts/ScalarFunctionVarCharTestsFabricDW.sql b/Test/SqlDom/TestScripts/ScalarFunctionVarCharTestsFabricDW.sql
deleted file mode 100644
index 6c492a3..0000000
--- a/Test/SqlDom/TestScripts/ScalarFunctionVarCharTestsFabricDW.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-CREATE FUNCTION dbo.GetFullName
-(@FirstName VARCHAR (50), @LastName VARCHAR (50))
-RETURNS VARCHAR (101)
-AS
-BEGIN
- RETURN @FirstName + ' ' + @LastName;
-END
\ No newline at end of file
diff --git a/global.json b/global.json
index d460a4b..17e2f86 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.409",
+ "version": "8.0.410",
"rollForward": "latestMajor"
},
"msbuild-sdks": {
diff --git a/release-notes/170/170.0.44.0.md b/release-notes/170/170.44.0.md
similarity index 84%
rename from release-notes/170/170.0.44.0.md
rename to release-notes/170/170.44.0.md
index 8335231..d487dce 100644
--- a/release-notes/170/170.0.44.0.md
+++ b/release-notes/170/170.44.0.md
@@ -16,7 +16,7 @@ This update brings the below changes over the previous release:
#### .NET Core
### New Features
-* Adds a new Grammar File and Parser specifically targeting Fabric DW platform.
+* Adds a new Grammar File and Parser specifically targeting Warehouse in Microsoft Fabric.
### Fixed
diff --git a/release-notes/170/170.53.0.md b/release-notes/170/170.53.0.md
new file mode 100644
index 0000000..c1789e5
--- /dev/null
+++ b/release-notes/170/170.53.0.md
@@ -0,0 +1,26 @@
+# Release Notes
+
+## Microsoft.SqlServer.TransactSql.ScriptDom 170.53.0
+This update brings the below changes over the previous release:
+
+### Target Platform Support
+
+* .NET Framework 4.7.2 (Windows x86, Windows x64)
+* .NET 8 (Windows x86, Windows x64, Linux, macOS)
+* .NET Standard 2.0+ (Windows x86, Windows x64, Linux, macOS)
+
+### Dependencies
+* Updates.NET SDK to latest patch version 8.0.410
+
+#### .NET Framework
+#### .NET Core
+
+### New Features
+* Adds support for table cloning via 'CREATE TABLE AS CLONE' syntax in Warehouse in Microsoft Fabric.
+* Adds supports for the new syntax of Scalar Function in Warehouse in Microsoft Fabric.
+* Adds support for a new table option for clustering columns during CREATE TABLE and ALTER TABLE statements in Warehouse in Microsoft Fabric.
+
+### Fixed
+
+### Changes
+### Known Issues