You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplifies CREATE/ALTER EXTERNAL DATA SOURCE syntax for Fabric DW
Simplifies CREATE/ALTER EXTERNAL DATA SOURCE syntax for Fabric DW to only support
the LOCATION parameter, removing support for TYPE, PUSHDOWN, and other literal/
identifier options in the Fabric DW parser.
Added positive and negative tests for this based on the specification.
Copy file name to clipboardExpand all lines: Test/SqlDom/ParserErrorsTests.cs
+42Lines changed: 42 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -5236,6 +5236,30 @@ public void CreateExternalDataSourceNegativeTest()
5236
5236
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = someServer, DATABASE_NAME = 'someDatabase', CREDENTIAL = someCred)",newParserErrorInfo(64,"SQL46010","someServer"));
5237
5237
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = someDatabase, CREDENTIAL = someCred)",newParserErrorInfo(78,"SQL46010","DATABASE_NAME"));
5238
5238
ParserTestUtils.ErrorTest130("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = RDBMS, LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', CREDENTIAL = 'someCred')",newParserErrorInfo(110,"SQL46010","CREDENTIAL"));
5239
+
5240
+
// CREATE with TYPE parameter (no longer supported — parser expects LOCATION)
5241
+
//
5242
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (TYPE = HADOOP, LOCATION = 'protocol://ip_address:port')",newParserErrorInfo(46,"SQL46010","HADOOP"));
5243
+
5244
+
// CREATE with extra CREDENTIAL option after LOCATION (only LOCATION allowed, no additional options)
5245
+
//
5246
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (LOCATION = 'protocol://ip_address:port', CREDENTIAL = cred1)",newParserErrorInfo(78,"SQL46010",","));
5247
+
5248
+
// CREATE with extra PUSHDOWN option after LOCATION
5249
+
//
5250
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (LOCATION = 'protocol://ip_address:port', PUSHDOWN = ON)",newParserErrorInfo(78,"SQL46010",","));
5251
+
5252
+
// CREATE with extra RESOURCE_MANAGER_LOCATION option after LOCATION
5253
+
//
5254
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (LOCATION = 'protocol://ip_address:port', RESOURCE_MANAGER_LOCATION = 'ip_address:port')",newParserErrorInfo(78,"SQL46010",","));
5255
+
5256
+
// CREATE with extra DATABASE_NAME option after LOCATION
5257
+
//
5258
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (LOCATION = 'someServer', DATABASE_NAME = 'someDatabase')",newParserErrorInfo(62,"SQL46010",","));
5259
+
5260
+
// CREATE with extra CONNECTION_OPTIONS after LOCATION
5261
+
//
5262
+
ParserTestUtils.ErrorTestFabricDW("CREATE EXTERNAL DATA SOURCE eds1 WITH (LOCATION = 'protocol://ip_address:port', CONNECTION_OPTIONS = 'some_options')",newParserErrorInfo(78,"SQL46010",","));
5239
5263
}
5240
5264
5241
5265
@@ -5295,6 +5319,24 @@ public void AlterExternalDataSourceNegativeTest()
5295
5319
ParserTestUtils.ErrorTest130("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'someServer', DATABASE_NAME = someDatabase, SHARD_MAP_NAME = 'someShardMap', CREDENTIAL = someCred",newParserErrorInfo(61,"SQL46010","DATABASE_NAME"));
5296
5320
ParserTestUtils.ErrorTest130("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = someShardMap, CREDENTIAL = someCred",newParserErrorInfo(93,"SQL46010","SHARD_MAP_NAME"));
5297
5321
ParserTestUtils.ErrorTest130("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'someServer', DATABASE_NAME = 'someDatabase', SHARD_MAP_NAME = 'someShardMap', CREDENTIAL = 'someCred'",newParserErrorInfo(126,"SQL46010","CREDENTIAL"));
5322
+
5323
+
// ALTER with unsupported option instead of LOCATION
5324
+
//
5325
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET RESOURCE_MANAGER_LOCATION = 'ip_address:port'",newParserErrorInfo(36,"SQL46005","LOCATION","RESOURCE_MANAGER_LOCATION"));
5326
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET DATABASE_NAME = 'someDb'",newParserErrorInfo(36,"SQL46005","LOCATION","DATABASE_NAME"));
5327
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET CONNECTION_OPTIONS = 'some_options'",newParserErrorInfo(36,"SQL46005","LOCATION","CONNECTION_OPTIONS"));
5328
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET SHARD_MAP_NAME = 'someShardMap'",newParserErrorInfo(36,"SQL46005","LOCATION","SHARD_MAP_NAME"));
5329
+
5330
+
// ALTER with unsupported option where the value is not a string literal
5331
+
//
5332
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET PUSHDOWN = ON",newParserErrorInfo(47,"SQL46010","ON"));
5333
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET CREDENTIAL = cred1",newParserErrorInfo(49,"SQL46010","cred1"));
5334
+
5335
+
// ALTER with LOCATION followed by extra unsupported options (comma not expected after LOCATION value)
5336
+
//
5337
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'sqlserver://10.10.10.10:1433', PUSHDOWN = ON",newParserErrorInfo(77,"SQL46010",","));
5338
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'sqlserver://10.10.10.10:1433', CREDENTIAL = cred1",newParserErrorInfo(77,"SQL46010",","));
5339
+
ParserTestUtils.ErrorTestFabricDW("ALTER EXTERNAL DATA SOURCE eds1 SET LOCATION = 'sqlserver://10.10.10.10:1433', DATABASE_NAME = 'someDb'",newParserErrorInfo(77,"SQL46010",","));
0 commit comments