aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/postgresql/patches
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /yql/essentials/tests/postgresql/patches
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'yql/essentials/tests/postgresql/patches')
-rw-r--r--yql/essentials/tests/postgresql/patches/alter_table.out.patch112
-rw-r--r--yql/essentials/tests/postgresql/patches/alter_table.sql.patch73
-rw-r--r--yql/essentials/tests/postgresql/patches/create_table.out.patch96
-rw-r--r--yql/essentials/tests/postgresql/patches/create_table.sql.patch71
-rw-r--r--yql/essentials/tests/postgresql/patches/json.out.patch18
-rw-r--r--yql/essentials/tests/postgresql/patches/json.sql.patch15
-rw-r--r--yql/essentials/tests/postgresql/patches/json_encoding.out.patch16
-rw-r--r--yql/essentials/tests/postgresql/patches/json_encoding.sql.patch17
-rw-r--r--yql/essentials/tests/postgresql/patches/jsonb.out.patch18
-rw-r--r--yql/essentials/tests/postgresql/patches/jsonb.sql.patch15
-rw-r--r--yql/essentials/tests/postgresql/patches/jsonpath_encoding.out.patch16
-rw-r--r--yql/essentials/tests/postgresql/patches/jsonpath_encoding.sql.patch17
-rw-r--r--yql/essentials/tests/postgresql/patches/unicode.out.patch10
-rw-r--r--yql/essentials/tests/postgresql/patches/unicode.sql.patch11
14 files changed, 505 insertions, 0 deletions
diff --git a/yql/essentials/tests/postgresql/patches/alter_table.out.patch b/yql/essentials/tests/postgresql/patches/alter_table.out.patch
new file mode 100644
index 0000000000..5b5418ce4e
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/alter_table.out.patch
@@ -0,0 +1,112 @@
+--- alter_table.out (40977c8f0a0a339864b620914542e2d90392919b)
++++ alter_table.out (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -2671,7 +2671,8 @@ create table alterlock (f1 int primary key, f2 text);
+ insert into alterlock values (1, 'foo');
+ create table alterlock2 (f3 int primary key, f1 int);
+ insert into alterlock2 values (1, 1);
+-begin; alter table alterlock alter column f2 set statistics 150;
++begin;
++alter table alterlock alter column f2 set statistics 150;
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2679,7 +2680,8 @@ select * from my_locks order by 1;
+ (1 row)
+
+ rollback;
+-begin; alter table alterlock cluster on alterlock_pkey;
++begin;
++alter table alterlock cluster on alterlock_pkey;
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ ----------------+--------------------------
+@@ -2688,7 +2690,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock set without cluster;
++begin;
++alter table alterlock set without cluster;
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2696,7 +2699,8 @@ select * from my_locks order by 1;
+ (1 row)
+
+ commit;
+-begin; alter table alterlock set (fillfactor = 100);
++begin;
++alter table alterlock set (fillfactor = 100);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2705,7 +2709,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock reset (fillfactor);
++begin;
++alter table alterlock reset (fillfactor);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2714,7 +2719,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock set (toast.autovacuum_enabled = off);
++begin;
++alter table alterlock set (toast.autovacuum_enabled = off);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2723,7 +2729,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock set (autovacuum_enabled = off);
++begin;
++alter table alterlock set (autovacuum_enabled = off);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2732,7 +2739,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock alter column f2 set (n_distinct = 1);
++begin;
++alter table alterlock alter column f2 set (n_distinct = 1);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2741,7 +2749,8 @@ select * from my_locks order by 1;
+
+ rollback;
+ -- test that mixing options with different lock levels works as expected
+-begin; alter table alterlock set (autovacuum_enabled = off, fillfactor = 80);
++begin;
++alter table alterlock set (autovacuum_enabled = off, fillfactor = 80);
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+--------------------------
+@@ -2750,7 +2759,8 @@ select * from my_locks order by 1;
+ (2 rows)
+
+ commit;
+-begin; alter table alterlock alter column f2 set storage extended;
++begin;
++alter table alterlock alter column f2 set storage extended;
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+---------------------
+@@ -2758,7 +2768,8 @@ select * from my_locks order by 1;
+ (1 row)
+
+ rollback;
+-begin; alter table alterlock alter column f2 set default 'x';
++begin;
++alter table alterlock alter column f2 set default 'x';
+ select * from my_locks order by 1;
+ relname | max_lockmode
+ -----------+---------------------
diff --git a/yql/essentials/tests/postgresql/patches/alter_table.sql.patch b/yql/essentials/tests/postgresql/patches/alter_table.sql.patch
new file mode 100644
index 0000000000..28e98d0a77
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/alter_table.sql.patch
@@ -0,0 +1,73 @@
+--- alter_table.sql (40977c8f0a0a339864b620914542e2d90392919b)
++++ alter_table.sql (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -1730,48 +1730,59 @@ insert into alterlock values (1, 'foo');
+ create table alterlock2 (f3 int primary key, f1 int);
+ insert into alterlock2 values (1, 1);
+
+-begin; alter table alterlock alter column f2 set statistics 150;
++begin;
++alter table alterlock alter column f2 set statistics 150;
+ select * from my_locks order by 1;
+ rollback;
+
+-begin; alter table alterlock cluster on alterlock_pkey;
++begin;
++alter table alterlock cluster on alterlock_pkey;
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock set without cluster;
++begin;
++alter table alterlock set without cluster;
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock set (fillfactor = 100);
++begin;
++alter table alterlock set (fillfactor = 100);
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock reset (fillfactor);
++begin;
++alter table alterlock reset (fillfactor);
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock set (toast.autovacuum_enabled = off);
++begin;
++alter table alterlock set (toast.autovacuum_enabled = off);
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock set (autovacuum_enabled = off);
++begin;
++alter table alterlock set (autovacuum_enabled = off);
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock alter column f2 set (n_distinct = 1);
++begin;
++alter table alterlock alter column f2 set (n_distinct = 1);
+ select * from my_locks order by 1;
+ rollback;
+
+ -- test that mixing options with different lock levels works as expected
+-begin; alter table alterlock set (autovacuum_enabled = off, fillfactor = 80);
++begin;
++alter table alterlock set (autovacuum_enabled = off, fillfactor = 80);
+ select * from my_locks order by 1;
+ commit;
+
+-begin; alter table alterlock alter column f2 set storage extended;
++begin;
++alter table alterlock alter column f2 set storage extended;
+ select * from my_locks order by 1;
+ rollback;
+
+-begin; alter table alterlock alter column f2 set default 'x';
++begin;
++alter table alterlock alter column f2 set default 'x';
+ select * from my_locks order by 1;
+ rollback;
+
diff --git a/yql/essentials/tests/postgresql/patches/create_table.out.patch b/yql/essentials/tests/postgresql/patches/create_table.out.patch
new file mode 100644
index 0000000000..7bffbf189e
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/create_table.out.patch
@@ -0,0 +1,96 @@
+--- create_table.out 2023-07-24 18:02:30.058334000 +0300
++++ create_table.out 2023-07-27 11:27:15.779766000 +0300
+@@ -218,43 +218,7 @@
+ -- invalid: non-lowercase quoted reloptions identifiers
+ CREATE TABLE tas_case WITH ("Fillfactor" = 10) AS SELECT 1 a;
+ ERROR: unrecognized parameter "Fillfactor"
+-CREATE UNLOGGED TABLE unlogged1 (a int primary key); -- OK
+-CREATE TEMPORARY TABLE unlogged2 (a int primary key); -- OK
+-SELECT relname, relkind, relpersistence FROM pg_class WHERE relname ~ '^unlogged\d' ORDER BY relname;
+- relname | relkind | relpersistence
+-----------------+---------+----------------
+- unlogged1 | r | u
+- unlogged1_pkey | i | u
+- unlogged2 | r | t
+- unlogged2_pkey | i | t
+-(4 rows)
+-
+-REINDEX INDEX unlogged1_pkey;
+-REINDEX INDEX unlogged2_pkey;
+-SELECT relname, relkind, relpersistence FROM pg_class WHERE relname ~ '^unlogged\d' ORDER BY relname;
+- relname | relkind | relpersistence
+-----------------+---------+----------------
+- unlogged1 | r | u
+- unlogged1_pkey | i | u
+- unlogged2 | r | t
+- unlogged2_pkey | i | t
+-(4 rows)
+-
+-DROP TABLE unlogged2;
+-INSERT INTO unlogged1 VALUES (42);
+-CREATE UNLOGGED TABLE public.unlogged2 (a int primary key); -- also OK
+-CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int primary key); -- not OK
+-ERROR: only temporary relations may be created in temporary schemas
+-LINE 1: CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int primary key);
+- ^
+-CREATE TABLE pg_temp.implicitly_temp (a int primary key); -- OK
+ CREATE TEMP TABLE explicitly_temp (a int primary key); -- also OK
+-CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK
+-CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
+-ERROR: cannot create temporary relation in non-temporary schema
+-LINE 1: CREATE TEMP TABLE public.temp_to_perm (a int primary key);
+- ^
+-DROP TABLE unlogged1, public.unlogged2;
+ CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+ CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+ ERROR: relation "as_select1" already exists
+@@ -295,8 +259,10 @@
+ CREATE TABLE withoid() WITH (oids = true);
+ ERROR: tables declared WITH OIDS are not supported
+ -- but explicitly not adding oids is still supported
+-CREATE TEMP TABLE withoutoid() WITHOUT OIDS; DROP TABLE withoutoid;
+-CREATE TEMP TABLE withoutoid() WITH (oids = false); DROP TABLE withoutoid;
++CREATE TEMP TABLE withoutoid() WITHOUT OIDS;
++DROP TABLE withoutoid;
++CREATE TEMP TABLE withoutoid() WITH (oids = false);
++DROP TABLE withoutoid;
+ -- check restriction with default expressions
+ -- invalid use of column reference in default expressions
+ CREATE TABLE default_expr_column (id int DEFAULT (id));
+@@ -334,14 +300,18 @@
+ -- Verify that subtransaction rollback restores rd_createSubid.
+ BEGIN;
+ CREATE TABLE remember_create_subid (c int);
+-SAVEPOINT q; DROP TABLE remember_create_subid; ROLLBACK TO q;
++SAVEPOINT q;
++DROP TABLE remember_create_subid;
++ROLLBACK TO q;
+ COMMIT;
+ DROP TABLE remember_create_subid;
+ -- Verify that subtransaction rollback restores rd_firstRelfilenodeSubid.
+ CREATE TABLE remember_node_subid (c int);
+ BEGIN;
+ ALTER TABLE remember_node_subid ALTER c TYPE bigint;
+-SAVEPOINT q; DROP TABLE remember_node_subid; ROLLBACK TO q;
++SAVEPOINT q;
++DROP TABLE remember_node_subid;
++ROLLBACK TO q;
+ COMMIT;
+ DROP TABLE remember_node_subid;
+ --
+@@ -945,15 +915,6 @@
+ CONSTRAINT check_a CHECK (length(a) > 0)
+ ) PARTITION BY LIST (a);
+ CREATE TABLE part_a PARTITION OF parted FOR VALUES IN ('a');
+--- only inherited attributes (never local ones)
+-SELECT attname, attislocal, attinhcount FROM pg_attribute
+- WHERE attrelid = 'part_a'::regclass and attnum > 0
+- ORDER BY attnum;
+- attname | attislocal | attinhcount
+----------+------------+-------------
+- a | f | 1
+- b | f | 1
+-(2 rows)
+
+ -- able to specify column default, column constraint, and table constraint
+ -- first check the "column specified more than once" error
diff --git a/yql/essentials/tests/postgresql/patches/create_table.sql.patch b/yql/essentials/tests/postgresql/patches/create_table.sql.patch
new file mode 100644
index 0000000000..e496d21e76
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/create_table.sql.patch
@@ -0,0 +1,71 @@
+--- create_table.sql 2023-07-24 18:02:30.058334000 +0300
++++ create_table.sql 2023-07-27 11:26:22.063095000 +0300
+@@ -256,21 +256,7 @@
+ -- invalid: non-lowercase quoted reloptions identifiers
+ CREATE TABLE tas_case WITH ("Fillfactor" = 10) AS SELECT 1 a;
+
+-CREATE UNLOGGED TABLE unlogged1 (a int primary key); -- OK
+-CREATE TEMPORARY TABLE unlogged2 (a int primary key); -- OK
+-SELECT relname, relkind, relpersistence FROM pg_class WHERE relname ~ '^unlogged\d' ORDER BY relname;
+-REINDEX INDEX unlogged1_pkey;
+-REINDEX INDEX unlogged2_pkey;
+-SELECT relname, relkind, relpersistence FROM pg_class WHERE relname ~ '^unlogged\d' ORDER BY relname;
+-DROP TABLE unlogged2;
+-INSERT INTO unlogged1 VALUES (42);
+-CREATE UNLOGGED TABLE public.unlogged2 (a int primary key); -- also OK
+-CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int primary key); -- not OK
+-CREATE TABLE pg_temp.implicitly_temp (a int primary key); -- OK
+ CREATE TEMP TABLE explicitly_temp (a int primary key); -- also OK
+-CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK
+-CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
+-DROP TABLE unlogged1, public.unlogged2;
+
+ CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+ CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
+@@ -301,8 +287,10 @@
+ CREATE TABLE withoid() WITH (oids = true);
+
+ -- but explicitly not adding oids is still supported
+-CREATE TEMP TABLE withoutoid() WITHOUT OIDS; DROP TABLE withoutoid;
+-CREATE TEMP TABLE withoutoid() WITH (oids = false); DROP TABLE withoutoid;
++CREATE TEMP TABLE withoutoid() WITHOUT OIDS;
++DROP TABLE withoutoid;
++CREATE TEMP TABLE withoutoid() WITH (oids = false);
++DROP TABLE withoutoid;
+
+ -- check restriction with default expressions
+ -- invalid use of column reference in default expressions
+@@ -321,7 +309,9 @@
+ -- Verify that subtransaction rollback restores rd_createSubid.
+ BEGIN;
+ CREATE TABLE remember_create_subid (c int);
+-SAVEPOINT q; DROP TABLE remember_create_subid; ROLLBACK TO q;
++SAVEPOINT q;
++DROP TABLE remember_create_subid;
++ROLLBACK TO q;
+ COMMIT;
+ DROP TABLE remember_create_subid;
+
+@@ -329,7 +319,9 @@
+ CREATE TABLE remember_node_subid (c int);
+ BEGIN;
+ ALTER TABLE remember_node_subid ALTER c TYPE bigint;
+-SAVEPOINT q; DROP TABLE remember_node_subid; ROLLBACK TO q;
++SAVEPOINT q;
++DROP TABLE remember_node_subid;
++ROLLBACK TO q;
+ COMMIT;
+ DROP TABLE remember_node_subid;
+
+@@ -753,11 +745,6 @@
+
+ CREATE TABLE part_a PARTITION OF parted FOR VALUES IN ('a');
+
+--- only inherited attributes (never local ones)
+-SELECT attname, attislocal, attinhcount FROM pg_attribute
+- WHERE attrelid = 'part_a'::regclass and attnum > 0
+- ORDER BY attnum;
+-
+ -- able to specify column default, column constraint, and table constraint
+
+ -- first check the "column specified more than once" error
diff --git a/yql/essentials/tests/postgresql/patches/json.out.patch b/yql/essentials/tests/postgresql/patches/json.out.patch
new file mode 100644
index 0000000000..8dcd51878d
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/json.out.patch
@@ -0,0 +1,18 @@
+--- json.out
++++ json.out
+@@ -202,15 +202,6 @@ 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('[', 10000)::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":', 10000)::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/yql/essentials/tests/postgresql/patches/json.sql.patch b/yql/essentials/tests/postgresql/patches/json.sql.patch
new file mode 100644
index 0000000000..fa455f1506
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/json.sql.patch
@@ -0,0 +1,15 @@
+--- json.sql
++++ json.sql
+@@ -41,12 +41,6 @@ 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('[', 10000)::json;
+-SELECT repeat('{"a":', 10000)::json;
+-RESET max_stack_depth;
+-
+ -- Miscellaneous stuff.
+ SELECT 'true'::json; -- OK
+ SELECT 'false'::json; -- OK
diff --git a/yql/essentials/tests/postgresql/patches/json_encoding.out.patch b/yql/essentials/tests/postgresql/patches/json_encoding.out.patch
new file mode 100644
index 0000000000..fb758ac64a
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/json_encoding.out.patch
@@ -0,0 +1,16 @@
+--- json_encoding.out (645054971474b440c91194f741c40b6d7be0b93d)
++++ json_encoding.out (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -1,13 +1,6 @@
+ --
+ -- encoding-sensitive tests for json and jsonb
+ --
+--- We provide expected-results files for UTF8 (json_encoding.out)
+--- and for SQL_ASCII (json_encoding_1.out). Skip otherwise.
+-SELECT getdatabaseencoding() NOT IN ('UTF8', 'SQL_ASCII')
+- AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+ SELECT getdatabaseencoding(); -- just to label the results files
+ getdatabaseencoding
+ ---------------------
diff --git a/yql/essentials/tests/postgresql/patches/json_encoding.sql.patch b/yql/essentials/tests/postgresql/patches/json_encoding.sql.patch
new file mode 100644
index 0000000000..e248455baa
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/json_encoding.sql.patch
@@ -0,0 +1,17 @@
+--- json_encoding.sql (645054971474b440c91194f741c40b6d7be0b93d)
++++ json_encoding.sql (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -2,14 +2,6 @@
+ -- encoding-sensitive tests for json and jsonb
+ --
+
+--- We provide expected-results files for UTF8 (json_encoding.out)
+--- and for SQL_ASCII (json_encoding_1.out). Skip otherwise.
+-SELECT getdatabaseencoding() NOT IN ('UTF8', 'SQL_ASCII')
+- AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+-
+ SELECT getdatabaseencoding(); -- just to label the results files
+
+ -- first json
diff --git a/yql/essentials/tests/postgresql/patches/jsonb.out.patch b/yql/essentials/tests/postgresql/patches/jsonb.out.patch
new file mode 100644
index 0000000000..e14bc869b6
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/jsonb.out.patch
@@ -0,0 +1,18 @@
+--- jsonb.out
++++ jsonb.out
+@@ -202,15 +202,6 @@ 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('[', 10000)::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":', 10000)::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/yql/essentials/tests/postgresql/patches/jsonb.sql.patch b/yql/essentials/tests/postgresql/patches/jsonb.sql.patch
new file mode 100644
index 0000000000..99853df8ec
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/jsonb.sql.patch
@@ -0,0 +1,15 @@
+--- jsonb.sql
++++ jsonb.sql
+@@ -41,12 +41,6 @@ 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('[', 10000)::jsonb;
+-SELECT repeat('{"a":', 10000)::jsonb;
+-RESET max_stack_depth;
+-
+ -- Miscellaneous stuff.
+ SELECT 'true'::jsonb; -- OK
+ SELECT 'false'::jsonb; -- OK
diff --git a/yql/essentials/tests/postgresql/patches/jsonpath_encoding.out.patch b/yql/essentials/tests/postgresql/patches/jsonpath_encoding.out.patch
new file mode 100644
index 0000000000..b2479a9c1b
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/jsonpath_encoding.out.patch
@@ -0,0 +1,16 @@
+--- jsonpath_encoding.out (645054971474b440c91194f741c40b6d7be0b93d)
++++ jsonpath_encoding.out (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -1,13 +1,6 @@
+ --
+ -- encoding-sensitive tests for jsonpath
+ --
+--- We provide expected-results files for UTF8 (jsonpath_encoding.out)
+--- and for SQL_ASCII (jsonpath_encoding_1.out). Skip otherwise.
+-SELECT getdatabaseencoding() NOT IN ('UTF8', 'SQL_ASCII')
+- AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+ SELECT getdatabaseencoding(); -- just to label the results files
+ getdatabaseencoding
+ ---------------------
diff --git a/yql/essentials/tests/postgresql/patches/jsonpath_encoding.sql.patch b/yql/essentials/tests/postgresql/patches/jsonpath_encoding.sql.patch
new file mode 100644
index 0000000000..2de56bcba3
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/jsonpath_encoding.sql.patch
@@ -0,0 +1,17 @@
+--- jsonpath_encoding.sql (645054971474b440c91194f741c40b6d7be0b93d)
++++ jsonpath_encoding.sql (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -2,14 +2,6 @@
+ -- encoding-sensitive tests for jsonpath
+ --
+
+--- We provide expected-results files for UTF8 (jsonpath_encoding.out)
+--- and for SQL_ASCII (jsonpath_encoding_1.out). Skip otherwise.
+-SELECT getdatabaseencoding() NOT IN ('UTF8', 'SQL_ASCII')
+- AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+-
+ SELECT getdatabaseencoding(); -- just to label the results files
+
+ -- checks for double-quoted values
diff --git a/yql/essentials/tests/postgresql/patches/unicode.out.patch b/yql/essentials/tests/postgresql/patches/unicode.out.patch
new file mode 100644
index 0000000000..8d79a5701e
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/unicode.out.patch
@@ -0,0 +1,10 @@
+--- unicode.out (645054971474b440c91194f741c40b6d7be0b93d)
++++ unicode.out (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -1,7 +1,3 @@
+-SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+ SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check;
+ sanity_check
+ --------------
diff --git a/yql/essentials/tests/postgresql/patches/unicode.sql.patch b/yql/essentials/tests/postgresql/patches/unicode.sql.patch
new file mode 100644
index 0000000000..c89a1e5e67
--- /dev/null
+++ b/yql/essentials/tests/postgresql/patches/unicode.sql.patch
@@ -0,0 +1,11 @@
+--- unicode.sql (645054971474b440c91194f741c40b6d7be0b93d)
++++ unicode.sql (8a1083b9b852a7dbb540208bd92787ee92f311f7)
+@@ -1,8 +1,3 @@
+-SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset
+-\if :skip_test
+-\quit
+-\endif
+-
+ SELECT U&'\0061\0308bc' <> U&'\00E4bc' COLLATE "C" AS sanity_check;
+
+ SELECT normalize('');