diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/json.out | 9 | ||||
-rw-r--r-- | src/test/regress/expected/json_1.out | 9 | ||||
-rw-r--r-- | src/test/regress/expected/jsonb.out | 9 | ||||
-rw-r--r-- | src/test/regress/expected/jsonb_1.out | 9 | ||||
-rw-r--r-- | src/test/regress/sql/json.sql | 6 | ||||
-rw-r--r-- | src/test/regress/sql/jsonb.sql | 6 |
6 files changed, 48 insertions, 0 deletions
diff --git a/src/test/regress/expected/json.out b/src/test/regress/expected/json.out index eb6b26b241e..cb9a0a1eb30 100644 --- a/src/test/regress/expected/json.out +++ b/src/test/regress/expected/json.out @@ -231,6 +231,15 @@ LINE 1: SELECT '{"abc":1,3}'::json; ^ DETAIL: Expected string, but found "3". CONTEXT: JSON data, line 1: {"abc":1,3... +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::json; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +SELECT repeat('{"a":', 1000)::json; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +RESET max_stack_depth; -- Miscellaneous stuff. SELECT 'true'::json; -- OK json diff --git a/src/test/regress/expected/json_1.out b/src/test/regress/expected/json_1.out index 48543e8c356..fe63a72b39c 100644 --- a/src/test/regress/expected/json_1.out +++ b/src/test/regress/expected/json_1.out @@ -231,6 +231,15 @@ LINE 1: SELECT '{"abc":1,3}'::json; ^ DETAIL: Expected string, but found "3". CONTEXT: JSON data, line 1: {"abc":1,3... +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::json; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +SELECT repeat('{"a":', 1000)::json; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +RESET max_stack_depth; -- Miscellaneous stuff. SELECT 'true'::json; -- OK json diff --git a/src/test/regress/expected/jsonb.out b/src/test/regress/expected/jsonb.out index 6da5a151d72..148364d74bf 100644 --- a/src/test/regress/expected/jsonb.out +++ b/src/test/regress/expected/jsonb.out @@ -239,6 +239,15 @@ LINE 1: SELECT '{"abc":1,3}'::jsonb; ^ DETAIL: Expected string, but found "3". CONTEXT: JSON data, line 1: {"abc":1,3... +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::jsonb; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +SELECT repeat('{"a":', 1000)::jsonb; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +RESET max_stack_depth; -- Miscellaneous stuff. SELECT 'true'::jsonb; -- OK jsonb diff --git a/src/test/regress/expected/jsonb_1.out b/src/test/regress/expected/jsonb_1.out index 39e7b1ff570..903dbd4c402 100644 --- a/src/test/regress/expected/jsonb_1.out +++ b/src/test/regress/expected/jsonb_1.out @@ -239,6 +239,15 @@ LINE 1: SELECT '{"abc":1,3}'::jsonb; ^ DETAIL: Expected string, but found "3". CONTEXT: JSON data, line 1: {"abc":1,3... +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::jsonb; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +SELECT repeat('{"a":', 1000)::jsonb; +ERROR: stack depth limit exceeded +HINT: Increase the configuration parameter "max_stack_depth" (currently 100kB), after ensuring the platform's stack depth limit is adequate. +RESET max_stack_depth; -- Miscellaneous stuff. SELECT 'true'::jsonb; -- OK jsonb diff --git a/src/test/regress/sql/json.sql b/src/test/regress/sql/json.sql index f631480f967..a173f06d958 100644 --- a/src/test/regress/sql/json.sql +++ b/src/test/regress/sql/json.sql @@ -45,6 +45,12 @@ SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::json; -- OK SELECT '{"abc":1:2}'::json; -- ERROR, colon in wrong spot SELECT '{"abc":1,3}'::json; -- ERROR, no value +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::json; +SELECT repeat('{"a":', 1000)::json; +RESET max_stack_depth; + -- Miscellaneous stuff. SELECT 'true'::json; -- OK SELECT 'false'::json; -- OK diff --git a/src/test/regress/sql/jsonb.sql b/src/test/regress/sql/jsonb.sql index b1a0764cfaa..f86b7fbf9bf 100644 --- a/src/test/regress/sql/jsonb.sql +++ b/src/test/regress/sql/jsonb.sql @@ -48,6 +48,12 @@ SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::jsonb; -- OK SELECT '{"abc":1:2}'::jsonb; -- ERROR, colon in wrong spot SELECT '{"abc":1,3}'::jsonb; -- ERROR, no value +-- Recursion. +SET max_stack_depth = '100kB'; +SELECT repeat('[', 1000)::jsonb; +SELECT repeat('{"a":', 1000)::jsonb; +RESET max_stack_depth; + -- Miscellaneous stuff. SELECT 'true'::jsonb; -- OK SELECT 'false'::jsonb; -- OK |