-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
409 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
drop procedure openjson_3820_p1 | ||
go | ||
|
||
drop procedure openjson_3820_p2 | ||
go | ||
|
||
drop procedure openjson_3820_p3 | ||
go | ||
|
||
drop procedure openjson_3820_p4 | ||
go | ||
|
||
drop procedure openjson_3820_p5 | ||
go | ||
|
||
drop procedure openjson_3820_p6 | ||
go | ||
|
||
drop procedure openjson_3820_p7 | ||
go | ||
|
||
drop procedure openjson_3820_p8 | ||
go | ||
|
||
drop procedure openjson_3820_p9 | ||
go | ||
|
||
|
||
drop procedure openjson_3820_p10 | ||
go | ||
|
||
drop procedure openjson_3820_p11 | ||
go |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
-- Expect error | ||
CREATE PROCEDURE openjson_3820_p1 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON('{}') WITH(field int 'strict$.field') | ||
END; | ||
GO | ||
|
||
-- Expect empty result and no error | ||
CREATE PROCEDURE openjson_3820_p2 | ||
AS | ||
BEGIN | ||
DECLARE @json_p2 NVarChar(max)=N'{"someKey" : "someValue"}'; | ||
SELECT * from OPENJSON(@json_p2,'$.somePathWhichDoesNotExists') WITH (id VARCHAR(100) '$') | ||
END; | ||
GO | ||
|
||
-- Expect an error for no path | ||
CREATE PROCEDURE openjson_3820_p3 | ||
AS | ||
BEGIN | ||
DECLARE @json_p3 NVarChar(max)=N'{"someKey" : "someValue"}'; | ||
SELECT * from OPENJSON(@json_p3,'strict $.somePathWhichDoesNotExists') WITH (id VARCHAR(100) '$') | ||
END; | ||
GO | ||
|
||
-- Expect result | ||
CREATE PROCEDURE openjson_3820_p4 | ||
AS | ||
BEGIN | ||
DECLARE @json_p4 NVarChar(max)=N'{"obj":{"a":1}}'; | ||
SELECT * FROM OPENJSON(@json_p4, 'strict $.obj') WITH (a char(20)) | ||
END; | ||
GO | ||
|
||
-- Expect error in strict mode | ||
CREATE PROCEDURE openjson_3820_p5 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON(N'[{"Item": {"Price":2024.9940}}]') WITH(field int 'strict $.field') | ||
END; | ||
GO | ||
|
||
-- Expect empty result because path does not exist | ||
CREATE PROCEDURE openjson_3820_p6 | ||
AS | ||
BEGIN | ||
DECLARE @json_p6 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p6,'lax$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect proper json result | ||
CREATE PROCEDURE openjson_3820_p7 | ||
AS | ||
BEGIN | ||
DECLARE @json_p7 NVARCHAR(4000) = N'{"path": {"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p7,'strict $.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect proper json result | ||
CREATE PROCEDURE openjson_3820_p8 | ||
AS | ||
BEGIN | ||
DECLARE @json_p8 NVARCHAR(4000) = N'{"path": {"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p8,'strict$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect error for incorrect path | ||
CREATE PROCEDURE openjson_3820_p9 | ||
AS | ||
BEGIN | ||
DECLARE @json_p9 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p9,'strict $.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect empty result for non existent path | ||
CREATE PROCEDURE openjson_3820_p10 | ||
AS | ||
BEGIN | ||
DECLARE @json_p10 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p10,'$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect error in strict mode | ||
CREATE PROCEDURE openjson_3820_p11 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON(N'{}') WITH(field int 'strict $.field') | ||
END; | ||
GO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
-- Expect error | ||
exec openjson_3820_p1 | ||
go | ||
~~START~~ | ||
int | ||
~~ERROR (Code: 33557097)~~ | ||
|
||
~~ERROR (Message: JSON object does not contain key "field")~~ | ||
|
||
|
||
-- Expect empty result and no error | ||
exec openjson_3820_p2 | ||
go | ||
~~START~~ | ||
varchar | ||
<NULL> | ||
~~END~~ | ||
|
||
|
||
-- Expect an error for no path | ||
exec openjson_3820_p3 | ||
go | ||
~~START~~ | ||
varchar | ||
~~ERROR (Code: 33557097)~~ | ||
|
||
~~ERROR (Message: JSON object does not contain key "somePathWhichDoesNotExists")~~ | ||
|
||
|
||
-- Expect result | ||
exec openjson_3820_p4 | ||
go | ||
~~START~~ | ||
char | ||
1 | ||
~~END~~ | ||
|
||
|
||
-- Expect error in strict mode | ||
exec openjson_3820_p5 | ||
go | ||
~~START~~ | ||
int | ||
~~ERROR (Code: 33557097)~~ | ||
|
||
~~ERROR (Message: JSON object does not contain key "field")~~ | ||
|
||
|
||
-- Expect empty result because path does not exist | ||
exec openjson_3820_p6 | ||
go | ||
~~START~~ | ||
nvarchar#!#nvarchar | ||
~~END~~ | ||
|
||
|
||
-- Expect proper json result | ||
exec openjson_3820_p7 | ||
go | ||
~~START~~ | ||
nvarchar#!#nvarchar | ||
0#!#en-GB | ||
1#!#en-UK | ||
2#!#de-AT | ||
3#!#es-AR | ||
4#!#sr-Cyrl | ||
~~END~~ | ||
|
||
|
||
-- Expect proper json result | ||
exec openjson_3820_p8 | ||
go | ||
~~START~~ | ||
nvarchar#!#nvarchar | ||
0#!#en-GB | ||
1#!#en-UK | ||
2#!#de-AT | ||
3#!#es-AR | ||
4#!#sr-Cyrl | ||
~~END~~ | ||
|
||
|
||
-- Expect error for incorrect path | ||
exec openjson_3820_p9 | ||
go | ||
~~START~~ | ||
nvarchar#!#nvarchar | ||
~~ERROR (Code: 33557097)~~ | ||
|
||
~~ERROR (Message: JSON object does not contain key "path")~~ | ||
|
||
|
||
-- Expect empty result for non existent path | ||
exec openjson_3820_p10 | ||
go | ||
~~START~~ | ||
nvarchar#!#nvarchar | ||
~~END~~ | ||
|
||
|
||
-- Expect error in strict mode | ||
exec openjson_3820_p11 | ||
go | ||
~~START~~ | ||
int | ||
~~ERROR (Code: 33557097)~~ | ||
|
||
~~ERROR (Message: JSON object does not contain key "field")~~ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
drop procedure openjson_3820_p1 | ||
go | ||
|
||
drop procedure openjson_3820_p2 | ||
go | ||
|
||
drop procedure openjson_3820_p3 | ||
go | ||
|
||
drop procedure openjson_3820_p4 | ||
go | ||
|
||
drop procedure openjson_3820_p5 | ||
go | ||
|
||
drop procedure openjson_3820_p6 | ||
go | ||
|
||
drop procedure openjson_3820_p7 | ||
go | ||
|
||
drop procedure openjson_3820_p8 | ||
go | ||
|
||
drop procedure openjson_3820_p9 | ||
go | ||
|
||
|
||
drop procedure openjson_3820_p10 | ||
go | ||
|
||
drop procedure openjson_3820_p11 | ||
go |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
-- Expect error | ||
CREATE PROCEDURE openjson_3820_p1 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON('{}') WITH(field int 'strict$.field') | ||
END; | ||
GO | ||
|
||
-- Expect empty result and no error | ||
CREATE PROCEDURE openjson_3820_p2 | ||
AS | ||
BEGIN | ||
DECLARE @json_p2 NVarChar(max)=N'{"someKey" : "someValue"}'; | ||
SELECT * from OPENJSON(@json_p2,'$.somePathWhichDoesNotExists') WITH (id VARCHAR(100) '$') | ||
END; | ||
GO | ||
|
||
-- Expect an error for no path | ||
CREATE PROCEDURE openjson_3820_p3 | ||
AS | ||
BEGIN | ||
DECLARE @json_p3 NVarChar(max)=N'{"someKey" : "someValue"}'; | ||
SELECT * from OPENJSON(@json_p3,'strict $.somePathWhichDoesNotExists') WITH (id VARCHAR(100) '$') | ||
END; | ||
GO | ||
|
||
-- Expect result | ||
CREATE PROCEDURE openjson_3820_p4 | ||
AS | ||
BEGIN | ||
DECLARE @json_p4 NVarChar(max)=N'{"obj":{"a":1}}'; | ||
SELECT * FROM OPENJSON(@json_p4, 'strict $.obj') WITH (a char(20)) | ||
END; | ||
GO | ||
|
||
-- Expect error in strict mode | ||
CREATE PROCEDURE openjson_3820_p5 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON(N'[{"Item": {"Price":2024.9940}}]') WITH(field int 'strict $.field') | ||
END; | ||
GO | ||
|
||
-- Expect empty result because path does not exist | ||
CREATE PROCEDURE openjson_3820_p6 | ||
AS | ||
BEGIN | ||
DECLARE @json_p6 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p6,'lax$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect proper json result | ||
CREATE PROCEDURE openjson_3820_p7 | ||
AS | ||
BEGIN | ||
DECLARE @json_p7 NVARCHAR(4000) = N'{"path": {"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p7,'strict $.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect proper json result | ||
CREATE PROCEDURE openjson_3820_p8 | ||
AS | ||
BEGIN | ||
DECLARE @json_p8 NVARCHAR(4000) = N'{"path": {"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p8,'strict$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect error for incorrect path | ||
CREATE PROCEDURE openjson_3820_p9 | ||
AS | ||
BEGIN | ||
DECLARE @json_p9 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p9,'strict $.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect empty result for non existent path | ||
CREATE PROCEDURE openjson_3820_p10 | ||
AS | ||
BEGIN | ||
DECLARE @json_p10 NVARCHAR(4000) = N'{"to":{"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]}}'; | ||
SELECT [key], value FROM OPENJSON(@json_p10,'$.path.to."sub-object"') | ||
END; | ||
GO | ||
|
||
-- Expect error in strict mode | ||
CREATE PROCEDURE openjson_3820_p11 | ||
AS | ||
BEGIN | ||
SELECT * FROM OPENJSON(N'{}') WITH(field int 'strict $.field') | ||
END; | ||
GO |
Oops, something went wrong.