diff --git a/ydb/library/yql/tests/postgresql/cases/char.err b/ydb/library/yql/tests/postgresql/cases/char.err
new file mode 100644
index 000000000000..2de544856660
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/char.err
@@ -0,0 +1,101 @@
+
+--
+-- CHAR
+--
+-- fixed-length by value
+-- internally passed by value if <= 4 bytes in storage
+SELECT char 'c' = char 'c' AS true;
+
+
+--
+-- Build a table for testing
+--
+CREATE TABLE CHAR_TBL(f1 char);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+
+
+-- try char's of greater than 1 length
+INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM CHAR_TBL;
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE CHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM CHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/char.err.1 b/ydb/library/yql/tests/postgresql/cases/char.err.1
new file mode 100644
index 000000000000..2de544856660
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/char.err.1
@@ -0,0 +1,101 @@
+
+--
+-- CHAR
+--
+-- fixed-length by value
+-- internally passed by value if <= 4 bytes in storage
+SELECT char 'c' = char 'c' AS true;
+
+
+--
+-- Build a table for testing
+--
+CREATE TABLE CHAR_TBL(f1 char);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+
+
+-- try char's of greater than 1 length
+INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM CHAR_TBL;
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE CHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM CHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/char.err.2 b/ydb/library/yql/tests/postgresql/cases/char.err.2
new file mode 100644
index 000000000000..2de544856660
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/char.err.2
@@ -0,0 +1,101 @@
+
+--
+-- CHAR
+--
+-- fixed-length by value
+-- internally passed by value if <= 4 bytes in storage
+SELECT char 'c' = char 'c' AS true;
+
+
+--
+-- Build a table for testing
+--
+CREATE TABLE CHAR_TBL(f1 char);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+
+
+-- try char's of greater than 1 length
+INSERT INTO CHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM CHAR_TBL;
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE CHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM CHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/char.out b/ydb/library/yql/tests/postgresql/cases/char.out
index 4336c6f9550a..5881d9f10b2d 100644
--- a/ydb/library/yql/tests/postgresql/cases/char.out
+++ b/ydb/library/yql/tests/postgresql/cases/char.out
@@ -13,3 +13,29 @@ SELECT char 'c' = char 'c' AS true;
-- Build a table for testing
--
CREATE TABLE CHAR_TBL(f1 char);
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+ f1
+----
+ a
+(1 row)
+
+DROP TABLE CHAR_TBL;
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
diff --git a/ydb/library/yql/tests/postgresql/cases/char.sql b/ydb/library/yql/tests/postgresql/cases/char.sql
index 5e9d757b19c2..de51cce09a2d 100644
--- a/ydb/library/yql/tests/postgresql/cases/char.sql
+++ b/ydb/library/yql/tests/postgresql/cases/char.sql
@@ -1,14 +1,31 @@
--
-- CHAR
--
-
-- fixed-length by value
-- internally passed by value if <= 4 bytes in storage
-
SELECT char 'c' = char 'c' AS true;
-
--
-- Build a table for testing
--
-
CREATE TABLE CHAR_TBL(f1 char);
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT INTO CHAR_TBL (f1) VALUES ('A');
+-- any of the following three input formats are acceptable
+INSERT INTO CHAR_TBL (f1) VALUES ('1');
+INSERT INTO CHAR_TBL (f1) VALUES (2);
+INSERT INTO CHAR_TBL (f1) VALUES ('3');
+-- zero-length char
+INSERT INTO CHAR_TBL (f1) VALUES ('');
+INSERT INTO CHAR_TBL (f1) VALUES ('c ');
+SELECT c.*
+ FROM CHAR_TBL c
+ WHERE c.f1 = 'a';
+DROP TABLE CHAR_TBL;
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE CHAR_TBL(f1 char(4));
+INSERT INTO CHAR_TBL (f1) VALUES ('a');
+INSERT INTO CHAR_TBL (f1) VALUES ('ab');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
+INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
diff --git a/ydb/library/yql/tests/postgresql/cases/json.err b/ydb/library/yql/tests/postgresql/cases/json.err
index cb47a7d11506..dd6b23239dae 100644
--- a/ydb/library/yql/tests/postgresql/cases/json.err
+++ b/ydb/library/yql/tests/postgresql/cases/json.err
@@ -318,8 +318,9 @@ SELECT repeat('[', 10000)::json;
-stdin-::1:1: Fatal: Execution of node: Result
SELECT repeat('[', 10000)::json;
^
- -stdin-::1:1: Fatal: 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.
+ -stdin-::1:1: Fatal: ERROR: invalid input syntax for type json
+DETAIL: The input string ended unexpectedly.
+CONTEXT: JSON data, line 1: ...[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
SELECT repeat('[', 10000)::json;
^
diff --git a/ydb/library/yql/tests/postgresql/cases/jsonb.err b/ydb/library/yql/tests/postgresql/cases/jsonb.err
index c0a44f50465a..44ec18afdacc 100644
--- a/ydb/library/yql/tests/postgresql/cases/jsonb.err
+++ b/ydb/library/yql/tests/postgresql/cases/jsonb.err
@@ -318,8 +318,9 @@ SELECT repeat('[', 10000)::jsonb;
-stdin-::1:1: Fatal: Execution of node: Result
SELECT repeat('[', 10000)::jsonb;
^
- -stdin-::1:1: Fatal: 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.
+ -stdin-::1:1: Fatal: ERROR: invalid input syntax for type json
+DETAIL: The input string ended unexpectedly.
+CONTEXT: JSON data, line 1: ...[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
SELECT repeat('[', 10000)::jsonb;
^
diff --git a/ydb/library/yql/tests/postgresql/cases/varchar.err b/ydb/library/yql/tests/postgresql/cases/varchar.err
new file mode 100644
index 000000000000..6f5db506f30b
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/varchar.err
@@ -0,0 +1,93 @@
+
+--
+-- VARCHAR
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+
+
+-- try varchar's of greater than 1 length
+INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE VARCHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/varchar.err.1 b/ydb/library/yql/tests/postgresql/cases/varchar.err.1
new file mode 100644
index 000000000000..6f5db506f30b
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/varchar.err.1
@@ -0,0 +1,93 @@
+
+--
+-- VARCHAR
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+
+
+-- try varchar's of greater than 1 length
+INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE VARCHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/varchar.err.2 b/ydb/library/yql/tests/postgresql/cases/varchar.err.2
new file mode 100644
index 000000000000..6f5db506f30b
--- /dev/null
+++ b/ydb/library/yql/tests/postgresql/cases/varchar.err.2
@@ -0,0 +1,93 @@
+
+--
+-- VARCHAR
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+
+
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+
+
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+
+
+-- try varchar's of greater than 1 length
+INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <> 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 = 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 < 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <= 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 > 'a';
+
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 >= 'a';
+
+
+DROP TABLE VARCHAR_TBL;
+
+
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
+
+
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
+
+
+SELECT * FROM VARCHAR_TBL;
+
diff --git a/ydb/library/yql/tests/postgresql/cases/varchar.out b/ydb/library/yql/tests/postgresql/cases/varchar.out
index b55b16762520..46f8bd303296 100644
--- a/ydb/library/yql/tests/postgresql/cases/varchar.out
+++ b/ydb/library/yql/tests/postgresql/cases/varchar.out
@@ -2,3 +2,54 @@
-- VARCHAR
--
CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 = 'a';
+ f1
+----
+ a
+(1 row)
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 < 'a';
+ f1
+----
+ A
+ 1
+ 2
+ 3
+
+(5 rows)
+
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <= 'a';
+ f1
+----
+ a
+ A
+ 1
+ 2
+ 3
+
+(6 rows)
+
+DROP TABLE VARCHAR_TBL;
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
diff --git a/ydb/library/yql/tests/postgresql/cases/varchar.sql b/ydb/library/yql/tests/postgresql/cases/varchar.sql
index 8e0b0a47df4d..5353ac7c3607 100644
--- a/ydb/library/yql/tests/postgresql/cases/varchar.sql
+++ b/ydb/library/yql/tests/postgresql/cases/varchar.sql
@@ -1,5 +1,31 @@
--
-- VARCHAR
--
-
CREATE TABLE VARCHAR_TBL(f1 varchar(1));
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
+-- any of the following three input formats are acceptable
+INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
+INSERT INTO VARCHAR_TBL (f1) VALUES (2);
+INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
+-- zero-length char
+INSERT INTO VARCHAR_TBL (f1) VALUES ('');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 = 'a';
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 < 'a';
+SELECT c.*
+ FROM VARCHAR_TBL c
+ WHERE c.f1 <= 'a';
+DROP TABLE VARCHAR_TBL;
+--
+-- Now test longer arrays of char
+--
+CREATE TABLE VARCHAR_TBL(f1 varchar(4));
+INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
+INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
diff --git a/ydb/library/yql/tests/postgresql/cases/window.err b/ydb/library/yql/tests/postgresql/cases/window.err
index e785c75f109d..214dae410ae4 100644
--- a/ydb/library/yql/tests/postgresql/cases/window.err
+++ b/ydb/library/yql/tests/postgresql/cases/window.err
@@ -3246,72 +3246,49 @@ SELECT i,AVG(v::bigint) OVER (ORDER BY i ROWS BETWEEN CURRENT ROW AND UNBOUNDED
SELECT i,AVG(v::int) OVER (ORDER BY i ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
FROM (VALUES(1,1),(2,2),(3,NULL),(4,NULL)) t(i,v);
-VERIFY failed (2024-01-12T02:19:37.139252+0300): Value is not boxed
+VERIFY failed (2024-01-19T19:50:47.838646+0300): Value is not boxed
ydb/library/yql/public/udf/udf_value_inl.h:379
AsBoxed(): requirement IsBoxed() failed
-BackTrace(void**, unsigned long)+29 (0x142C329D)
-FormatBackTrace(IOutputStream*)+32 (0x142C3770)
-PrintBackTrace()+17 (0x142C37C1)
-NPrivate::InternalPanicImpl(int, char const*, char const*, int, int, int, TBasicStringBuf >, char const*, unsigned long)+995 (0x143260F3)
-NPrivate::Panic(NPrivate::TStaticBuf const&, int, char const*, char const*, char const*, ...)+418 (0x14319332)
-NYql::NUdf::TUnboxedValuePod::AsBoxed() const+218 (0x154F450A)
-NYql::PointerDatumFromPod(NYql::NUdf::TUnboxedValuePod const&)+29 (0x1BB15C6D)
-NYql::TPgResolvedCall::DoCalculate(NKikimr::NMiniKQL::TComputationContext&) const+771 (0x1BB577E3)
-NKikimr::NMiniKQL::TMutableComputationNode >::GetValue(NKikimr::NMiniKQL::TComputationContext&) const+420 (0x1BB56C84)
-??+0 (0x7F17843F0C53)
-??+0 (0x7F17843F047C)
-??+0 (0x7F17843EEE01)
-??+0 (0x2011E4F2)
-NYql::NUdf::TBoxedValueAccessor::Fetch(NYql::NUdf::IBoxedValue&, NYql::NUdf::TUnboxedValue&)+244 (0x17B82E34)
-NYql::NUdf::TUnboxedValuePod::Fetch(NYql::NUdf::TUnboxedValue&) const+228 (0x17B82CB4)
-NKikimr::NMiniKQL::TForwardListValue::TIterator::Next(NYql::NUdf::TUnboxedValue&)+36 (0x17E35FF4)
-NYql::NUdf::TBoxedValueAccessor::Next(NYql::NUdf::IBoxedValue&, NYql::NUdf::TUnboxedValue&)+244 (0x151403B4)
-NYql::NUdf::TUnboxedValuePod::Next(NYql::NUdf::TUnboxedValue&) const+228 (0x15140084)
-NYql::TYsonExecuteResOrPull::WriteValue(NYql::NUdf::TUnboxedValue const&, NKikimr::NMiniKQL::TType*)+436 (0x20D5B834)
-NYql::NFile::TYtFileGateway::ExecuteResult(NYql::NFile::TSession&, NYson::TYsonWriter&, NYql::NNodes::TExprBase, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&, TVector >, std::__y1::allocator > > > const&) const+2002 (0x1C6C1D32)
-NYql::NFile::TYtFileGateway::ResOrPull(TIntrusivePtr > const&, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&)+1128 (0x1C694F58)
-??+0 (0x1AEE8ACE)
-??+0 (0x1AEECD59)
-??+0 (0x1AEECCB8)
-??+0 (0x1AEECC48)
-??+0 (0x1AEECBF8)
-??+0 (0x1AEEBF8C)
-std::__y1::__function::__value_func > const&, TIntrusivePtr >&, NYql::TExprContext&)> > > (TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&)>::operator()[abi:v15000](TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&) const+93 (0x1AEFCA0D)
-std::__y1::function > const&, TIntrusivePtr >&, NYql::TExprContext&)> > > (TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&)>::operator()(TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&) const+56 (0x1AEFBD58)
-NYql::TExecTransformerBase::CallbackTransform(TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&)+811 (0x1AEFB9DB)
-NYql::TAsyncCallbackTransformer::DoTransform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+64 (0x1AEE9D20)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+100 (0x15645D84)
-??+0 (0x1799623C)
-??+0 (0x17989C86)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+100 (0x15645D84)
-??+0 (0x17B2220C)
-??+0 (0x17B14548)
-??+0 (0x17B20AEC)
-??+0 (0x17B147F7)
-??+0 (0x17B207AA)
-??+0 (0x17B147F7)
-??+0 (0x17B0CD4E)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+100 (0x15645D84)
-??+0 (0x15649CA8)
-??+0 (0x156499D9)
-??+0 (0x156463E5)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+100 (0x15645D84)
-NYql::AsyncTransformStepImpl(NYql::IGraphTransformer&, TIntrusivePtr >&, NYql::TExprContext&, bool, bool, TBasicStringBuf > const&)+1222 (0x15644E36)
-NYql::AsyncTransform(NYql::IGraphTransformer&, TIntrusivePtr >&, NYql::TExprContext&, bool)+127 (0x156456BF)
-NYql::TProgram::AsyncTransformWithFallback(bool)+120 (0x16EA37F8)
-??+0 (0x16ECA8FE)
-??+0 (0x16ECA477)
-??+0 (0x16ECA345)
-??+0 (0x16EC8E20)
-??+0 (0x16EC8CE7)
-??+0 (0x16EA1D0D)
-NYql::TProgram::RunAsync(TBasicString > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+3760 (0x16EA19A0)
-??+0 (0x16E9E584)
-NYql::TProgram::Run(TBasicString > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+301 (0x16EA0A4D)
-Main(int, char**)+5378 (0x1414F2E2)
-main+273 (0x14150F11)
-??+0 (0x7F1784029D90)
-__libc_start_main+128 (0x7F1784029E40)
-??+0 (0x140DA029)
+NPrivate::InternalPanicImpl(int, char const*, char const*, int, int, int, TBasicStringBuf >, char const*, unsigned long)+524 (0x7F8407C)
+NPrivate::Panic(NPrivate::TStaticBuf const&, int, char const*, char const*, char const*, ...)+284 (0x7F7A38C)
+NYql::TPgResolvedCall::DoCalculate(NKikimr::NMiniKQL::TComputationContext&) const+1098 (0xC88D5FA)
+NKikimr::NMiniKQL::TMutableComputationNode >::GetValue(NKikimr::NMiniKQL::TComputationContext&) const+142 (0xC88CC7E)
+??+0 (0x7FFB2C51BC53)
+??+0 (0x7FFB2C51B47C)
+??+0 (0x7FFB2C519E01)
+NKikimr::NMiniKQL::TForwardListValue::TIterator::Next(NYql::NUdf::TUnboxedValue&)+39 (0xA4B6217)
+NYql::TYsonExecuteResOrPull::WriteValue(NYql::NUdf::TUnboxedValue const&, NKikimr::NMiniKQL::TType*)+224 (0xFA30D90)
+NYql::NFile::TYtFileGateway::ExecuteResult(NYql::NFile::TSession&, NYson::TYsonWriter&, NYql::NNodes::TExprBase, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&, TVector >, std::__y1::allocator > > > const&) const+2118 (0xD064E86)
+NYql::NFile::TYtFileGateway::ResOrPull(TIntrusivePtr > const&, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&)+861 (0xD04F70D)
+??+0 (0xC2474C9)
+??+0 (0xC24A6CA)
+NYql::TExecTransformerBase::CallbackTransform(TIntrusivePtr > const&, TIntrusivePtr >&, NYql::TExprContext&)+1018 (0xC24EA6A)
+NYql::TAsyncCallbackTransformer::DoTransform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+37 (0xC249E55)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+152 (0x8A3CB28)
+??+0 (0xA16234D)
+??+0 (0xA1575AF)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+152 (0x8A3CB28)
+??+0 (0xA24906F)
+??+0 (0xA24D9F0)
+??+0 (0xA248B55)
+??+0 (0xA24D88C)
+??+0 (0xA248B55)
+??+0 (0xA245668)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+152 (0x8A3CB28)
+??+0 (0x8A3E332)
+??+0 (0x8A3D326)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr >, TIntrusivePtr >&, NYql::TExprContext&)+152 (0x8A3CB28)
+NYql::AsyncTransformStepImpl(NYql::IGraphTransformer&, TIntrusivePtr >&, NYql::TExprContext&, bool, bool, TBasicStringBuf > const&)+290 (0x8A3B5B2)
+NYql::AsyncTransform(NYql::IGraphTransformer&, TIntrusivePtr >&, NYql::TExprContext&, bool)+66 (0x8A3BEA2)
+NYql::TProgram::AsyncTransformWithFallback(bool)+81 (0x997C591)
+??+0 (0x998F6D0)
+NYql::TProgram::RunAsync(TBasicString > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+3039 (0x997A47F)
+??+0 (0x997747A)
+NYql::TProgram::Run(TBasicString > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+129 (0x9979861)
+Main(int, char**)+4464 (0x7E624E0)
+main+200 (0x7E64718)
+??+0 (0x7FFB2C229D90)
+__libc_start_main+128 (0x7FFB2C229E40)
+??+0 (0x7DF8029)
pthread_kill at ./nptl/./nptl/pthread_kill.c:43:17
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/make-tests.sh b/ydb/library/yql/tests/postgresql/make-tests.sh
index 9f131b2a5efb..a569c387acb8 100755
--- a/ydb/library/yql/tests/postgresql/make-tests.sh
+++ b/ydb/library/yql/tests/postgresql/make-tests.sh
@@ -5,7 +5,7 @@
--dstdir=cases \
--runner=../../tools/pgrun/pgrun \
--splitter="../../tools/pgrun/pgrun split-statements" \
- --skip=uuid,char,varchar \
+ --skip=uuid \
--report=pg_tests.csv \
$@
diff --git a/ydb/library/yql/tests/postgresql/pg_tests.csv b/ydb/library/yql/tests/postgresql/pg_tests.csv
index 044ac5c195a2..7f73f8040ff3 100644
--- a/ydb/library/yql/tests/postgresql/pg_tests.csv
+++ b/ydb/library/yql/tests/postgresql/pg_tests.csv
@@ -1,54 +1,56 @@
-testcase,statements,successful,ratio
-comments,7,7,100.0
-functional_deps,40,6,15.0
-expressions,63,14,22.22
-dbsize,24,24,100.0
-create_table,368,43,11.68
-create_misc,76,3,3.95
-json_encoding,42,42,100.0
-alter_table,1679,11,0.66
-insert,357,15,4.2
-jsonpath_encoding,31,31,100.0
-jsonb_jsonpath,427,88,20.61
-horology,306,79,25.82
-limit,84,5,5.95
-numerology,24,8,33.33
-jsonpath,169,152,89.94
-delete,10,0,0.0
-select_distinct,46,1,2.17
-select_distinct_on,4,0,0.0
-date,264,200,75.76
-name,40,22,55.0
-case,63,29,46.03
-select_into,67,3,4.48
-strings,390,31,7.95
-oid,27,21,77.78
-select,88,9,10.23
-text,76,15,19.74
-interval,168,115,68.45
-float4,96,48,50.0
-subselect,234,2,0.85
-boolean,93,73,78.49
-unicode,13,4,30.77
-int2,49,47,95.92
-bit,115,84,73.04
-time,39,33,84.62
-int4,70,70,100.0
-union,186,0,0.0
-float8,168,96,57.14
-timetz,45,29,64.44
-json,454,115,25.33
-update,288,22,7.64
-truncate,193,33,17.1
-window,298,5,1.68
-arrays,410,119,29.02
-aggregates,416,51,12.26
-jsonb,1017,382,37.56
-timestamp,145,98,67.59
-int8,142,48,33.8
-timestamptz,315,108,34.29
-xml,234,15,6.41
-select_having,23,16,69.57
-join,591,106,17.94
-select_implicit,44,13,29.55
-numeric,915,715,78.14
+testcase,statements,successful,ratio
+aggregates,416,51,12.26
+alter_table,1679,11,0.66
+arrays,410,119,29.02
+bit,115,84,73.04
+boolean,93,73,78.49
+case,63,29,46.03
+char,25,16,64.0
+comments,7,7,100.0
+create_misc,76,3,3.95
+create_table,368,43,11.68
+date,264,200,75.76
+dbsize,24,24,100.0
+delete,10,0,0.0
+expressions,63,14,22.22
+float4,96,48,50.0
+float8,168,96,57.14
+functional_deps,40,7,17.5
+horology,306,79,25.82
+insert,357,15,4.2
+int2,49,47,95.92
+int4,70,70,100.0
+int8,142,48,33.8
+interval,168,115,68.45
+join,591,106,17.94
+json,454,114,25.11
+json_encoding,42,42,100.0
+jsonb,1017,381,37.46
+jsonb_jsonpath,427,88,20.61
+jsonpath,169,152,89.94
+jsonpath_encoding,31,31,100.0
+limit,84,5,5.95
+name,40,22,55.0
+numeric,915,715,78.14
+numerology,24,8,33.33
+oid,27,21,77.78
+select,88,9,10.23
+select_distinct,46,1,2.17
+select_distinct_on,4,0,0.0
+select_having,23,16,69.57
+select_implicit,44,13,29.55
+select_into,67,3,4.48
+strings,390,31,7.95
+subselect,234,5,2.14
+text,76,15,19.74
+time,39,33,84.62
+timestamp,145,98,67.59
+timestamptz,315,108,34.29
+timetz,45,29,64.44
+truncate,193,33,17.1
+unicode,13,4,30.77
+union,186,0,0.0
+update,288,22,7.64
+varchar,24,15,62.5
+window,298,5,1.68
+xml,234,15,6.41
diff --git a/ydb/library/yql/tests/postgresql/status.md b/ydb/library/yql/tests/postgresql/status.md
index 25d51f45d49f..aef2262f264f 100644
--- a/ydb/library/yql/tests/postgresql/status.md
+++ b/ydb/library/yql/tests/postgresql/status.md
@@ -2,60 +2,60 @@
#|
||№ п/п | Имя теста|Число операторов| Из них выполняется| % выполнения | Последнее обновление | Основные проблемы ||
-|| 1 | boolean | 93 | 73 (+6) | 78.49 | 16.12.2023 | DROP TABLE, implicit casts ||
-|| 2 | char | 25 | 3 | 12.0 | 25.05.2023 | implicit cast, pgbpchar vs pgtext ||
-|| 3 | name | 40 | 22 (+17) | 55.0 | 29.09.2023 | parse_ident, implicit casts ||
-|| 4 | varchar | 24 | 2 | 8.33 | 25.05.2023 | ||
-|| 5 | text | 76 | 15 (+10) | 19.74 | 12.12.2023 | строковые функции (format, concat, concat_ws, length) и оператор конкатенации, implicit casts, отличаются сообщения об ошибках для оператора конкатенации с аргументами неподходящих типов ||
-|| 6 | int2 | 49 | 47 (+39) | 95.92 | 29.09.2023 | ||
-|| 7 | int4 | 70 | 70 (+42) | 100.0 | 29.09.2023 | ||
-|| 8 | int8 | 142 | 48 (+35) | 33.8 | 12.12.2023 | generate_series, pg_type, gcd, implicit casts ||
-|| 9 | oid | 27 | 21 (+19) | 77.78 | 29.09.2023 | ||
-|| 10 | float4 | 96 | 48 (+31) | 50.0 | 29.09.2023 | CREATE TYPE, CREATE FUNCTION, WITH, форматирование NaN и Infinity, float4send ||
-|| 11 | float8 | 168 | 96 (+1) | 57.14 | 25.10.2023 | CREATE CAST, форматирование NaN и Infinity, extra_float_digits, implicit casts, float8send ||
-|| 12 | bit | 115 | 84 (+80) | 73.04 | 12.12.2023 | substring, COPY FROM stdin, битовые константы ||
-|| 13 | numeric | 915 | 715 (+189) | 78.14 | 12.12.2023 | CREATE UNIQUE INDEX, VACUUM ANALYZE, implicit casts, ошибочно проходит cast в int2 и int8, форматирование NaN и Infinity, COPY FROM stdin, SET lc_numeric, умножение больших целых чисел не дает в результате число с плавающей точкой, sum(), округление, nullif, форматирование чисел ||
+|| 1 | boolean | 93 | 73 | 78.49 | 16.12.2023 | YQL-17569 ||
+|| 2 | char | 25 | 16 (+13) | 64.0 | 19.01.2024 | implicit cast, pgbpchar vs pgtext ||
+|| 3 | name | 40 | 22 | 55.0 | 29.09.2023 | parse_ident, implicit casts ||
+|| 4 | varchar | 24 | 15 (+13) | 62.5 | 19.01.2024 | ||
+|| 5 | text | 76 | 15 | 19.74 | 12.12.2023 | строковые функции (format, concat, concat_ws, length) и оператор конкатенации, implicit casts, отличаются сообщения об ошибках для оператора конкатенации с аргументами неподходящих типов ||
+|| 6 | int2 | 49 | 47 | 95.92 | 29.09.2023 | ||
+|| 7 | int4 | 70 | 70 | 100.0 | 29.09.2023 | ||
+|| 8 | int8 | 142 | 48 | 33.8 | 12.12.2023 | generate_series, pg_type, gcd, implicit casts ||
+|| 9 | oid | 27 | 21 | 77.78 | 29.09.2023 | ||
+|| 10 | float4 | 96 | 48 | 50.0 | 29.09.2023 | CREATE TYPE, CREATE FUNCTION, WITH, форматирование NaN и Infinity, float4send ||
+|| 11 | float8 | 168 | 96 | 57.14 | 25.10.2023 | CREATE CAST, форматирование NaN и Infinity, extra_float_digits, implicit casts, float8send ||
+|| 12 | bit | 115 | 84 | 73.04 | 12.12.2023 | substring, COPY FROM stdin, битовые константы ||
+|| 13 | numeric | 915 | 715 | 78.14 | 12.12.2023 | CREATE UNIQUE INDEX, VACUUM ANALYZE, implicit casts, ошибочно проходит cast в int2 и int8, форматирование NaN и Infinity, COPY FROM stdin, SET lc_numeric, умножение больших целых чисел не дает в результате число с плавающей точкой, sum(), округление, nullif, форматирование чисел ||
|| 14 | uuid | 36 | 0 | 0.0 | 02.05.2023 | ||·
-|| 15 | strings | 390 | 31 (+3) | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, неинициализированная поддержка регулярок, pg_class ||
-|| 16 | numerology | 24 | 8 (+4) | 33.33 | 26.07.2023 | ||
-|| 17 | date | 264 | 200 (+183) | 75.76 | 12.12.2023 | ||
-|| 18 | time | 39 | 33 (+22) | 84.62 | 12.12.2023 | ||
-|| 19 | timetz | 45 | 29 (+16) | 64.44 | 12.12.2023 | ||
-|| 20 | timestamp | 145 | 98 (+17) | 67.59 | 12.12.2023 | ||
-|| 21 | timestamptz | 315 | 108 (+25) | 34.29 | 12.12.2023 | ||
-|| 22 | interval | 168 | 115 (+1) | 68.45 | 25.10.2023 | ||
-|| 23 | horology | 306 | 79 (+28) | 25.82 | 10.08.2023 | SET, DateStyle, TimeZone, автоматически назначаемые имена колонкам-выражениям, SET TIME ZOME, RESET TIME ZONE, интервальный тип ПГ, ||
+|| 15 | strings | 390 | 31 | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, неинициализированная поддержка регулярок, pg_class ||
+|| 16 | numerology | 24 | 8 | 33.33 | 26.07.2023 | ||
+|| 17 | date | 264 | 200 | 75.76 | 12.12.2023 | ||
+|| 18 | time | 39 | 33 | 84.62 | 12.12.2023 | ||
+|| 19 | timetz | 45 | 29 | 64.44 | 12.12.2023 | ||
+|| 20 | timestamp | 145 | 98 | 67.59 | 12.12.2023 | ||
+|| 21 | timestamptz | 315 | 108 | 34.29 | 12.12.2023 | ||
+|| 22 | interval | 168 | 115 | 68.45 | 25.10.2023 | ||
+|| 23 | horology | 306 | 79 | 25.82 | 10.08.2023 | SET, DateStyle, TimeZone, автоматически назначаемые имена колонкам-выражениям, SET TIME ZOME, RESET TIME ZONE, интервальный тип ПГ, ||
|| 24 | comments | 7 | 7 | 100.0 | 25.05.2023 | ||
-|| 25 | expressions | 63 | 14 (+4) | 22.22 | 25.10.2023 | ||
-|| 26 | unicode | 13 | 4 (+4) | 30.77 | 10.08.2023 | ||
+|| 25 | expressions | 63 | 14 | 22.22 | 25.10.2023 | ||
+|| 26 | unicode | 13 | 4 | 30.77 | 10.08.2023 | ||
|| 27 | create_table | 368 | 43 | 11.68 | 12.12.2023 | CREATE UNLOGGED TABLE, REINDEX, PREPARE ... SELECT, DEALLOCATE, \gexec, pg_class, pg_attribute, CREATE TABLE PARTITION OF ||
-|| 28 | insert | 357 | 15 (+5) | 4.2 | 12.12.2023 | CREATE TEMP TABLE, ALTER TABLE, DROP TABLE, CREATE TYPE, CREATE RULE, \d+, DROP TYPE, create table...partition by range, create table ... partition of ..., tableoid::regclass, create or replace function, create operator, ||
-|| 29 | create_misc | 76 | 3 (+2) | 3.95 | 29.09.2023 | ||
-|| 30 | select | 88 | 9 (+5) | 10.23 | 12.12.2023 | порядок сортировки в виде ORDER BY поле using > или <, а также NULLS FIRST/LAST; ANALYZE, переменные enable_seqscan, enable_bitmapscan, enable_sort, whole-row Var referencing a subquery, подзапросы внутри values, INSERT INTO ... DEFAULT VALUES, Range sub select unsupported lateral, CREATE INDEX, DROP INDEX, explain (опции costs, analyze, timing, summary), SELECT 1 AS x ORDER BY x; CREATE FUNCTION, DROP FUNCTION, table inheritance, PARTITION BY ||
+|| 28 | insert | 357 | 15 | 4.2 | 12.12.2023 | CREATE TEMP TABLE, ALTER TABLE, DROP TABLE, CREATE TYPE, CREATE RULE, \d+, DROP TYPE, create table...partition by range, create table ... partition of ..., tableoid::regclass, create or replace function, create operator, ||
+|| 29 | create_misc | 76 | 3 | 3.95 | 29.09.2023 | ||
+|| 30 | select | 88 | 9 | 10.23 | 12.12.2023 | порядок сортировки в виде ORDER BY поле using > или <, а также NULLS FIRST/LAST; ANALYZE, переменные enable_seqscan, enable_bitmapscan, enable_sort, whole-row Var referencing a subquery, подзапросы внутри values, INSERT INTO ... DEFAULT VALUES, Range sub select unsupported lateral, CREATE INDEX, DROP INDEX, explain (опции costs, analyze, timing, summary), SELECT 1 AS x ORDER BY x; CREATE FUNCTION, DROP FUNCTION, table inheritance, PARTITION BY ||
|| 31 | select_into | 67 | 3 | 4.48 | 27.07.2023 | ||
|| 32 | select_distinct | 46 | 1 | 2.17 | 27.07.2023 | ||
|| 33 | select_distinct_on | 4 | 0 | 0.0 | 25.05.2023 | ||
-|| 34 | select_implicit | 44 | 13 (+2) | 29.55 | 12.12.2023 | ||
-|| 35 | select_having | 23 | 16 (+5) | 69.57 | 12.12.2023 | ||
-|| 36 | subselect | 234 | 2 | 0.85 | 25.05.2023 | ||
+|| 34 | select_implicit | 44 | 13 | 29.55 | 12.12.2023 | ||
+|| 35 | select_having | 23 | 16 | 69.57 | 12.12.2023 | ||
+|| 36 | subselect | 234 | 5 (+3) | 2.14 | 19.01.2024 | ||
|| 37 | union | 186 | 0 | 0.0 | 25.05.2023 | ||
-|| 38 | case | 63 | 29 (+16) | 46.03 | 12.12.2023 | implicit casts, create function volatile ||
-|| 39 | join | 591 | 106 (+83) | 17.94 | 12.12.2023 | ||
-|| 40 | aggregates | 416 | 51 (+50) | 12.26 | 12.12.2023 | ||
-|| 41 | arrays | 410 | 119 (+118) | 29.02 | 12.12.2023 | ||
-|| 42 | update | 288 | 22 (+5) | 7.64 | 12.12.2023 | :-переменные ||
+|| 38 | case | 63 | 29 | 46.03 | 12.12.2023 | implicit casts, create function volatile ||
+|| 39 | join | 591 | 106 | 17.94 | 12.12.2023 | ||
+|| 40 | aggregates | 416 | 51 | 12.26 | 12.12.2023 | ||
+|| 41 | arrays | 410 | 119 | 29.02 | 12.12.2023 | ||
+|| 42 | update | 288 | 22 | 7.64 | 12.12.2023 | :-переменные ||
|| 43 | delete | 10 | 0 | 0.0 | 25.05.2023 | ||
-|| 44 | dbsize | 24 | 24 (+16) | 100.0 | 10.08.2023 | ||
-|| 45 | window | 298 | 5 (+3) | 1.68 | 12.12.2023 | ||
-|| 46 | functional_deps | 40 | 6 (+2) | 15.0 | 12.12.2023 | ||
-|| 47 | json | 454 | 115 (+64) | 25.33 | 12.12.2023 | ||
-|| 48 | jsonb | 1017 | 382 (+1) | 37.56 | 16.12.2023 | ||
+|| 44 | dbsize | 24 | 24 | 100.0 | 10.08.2023 | ||
+|| 45 | window | 298 | 5 | 1.68 | 12.12.2023 | ||
+|| 46 | functional_deps | 40 | 7 (+1) | 17.5 | 19.01.2024 | ||
+|| 47 | json | 454 | 114 | 25.11 | 19.01.2024 | ||
+|| 48 | jsonb | 1017 | 381 | 37.46 | 19.01.2024 | ||
|| 49 | json_encoding | 42 | 42 | 100.0 | 29.05.2023 | ||
|| 50 | jsonpath | 169 | 152 | 89.94 | 29.05.2023 | числа с точкой без целой части (например .1), литерал '00' ||
|| 51 | jsonpath_encoding | 31 | 31 | 100.0 | 29.05.2023 | ||
-|| 52 | jsonb_jsonpath | 427 | 88 (+83) | 20.61 | 12.12.2023 | ||
-|| 53 | limit | 84 | 5 (+4) | 5.95 | 10.08.2023 | ||
-|| 54 | truncate | 193 | 33 (+30) | 17.1 | 12.12.2023 | ||
-|| 55 | alter_table | 1679 | 11 (+7) | 0.66 | 12.12.2023 | COMMENT ON TABLE ||
-|| 56 | xml | 234 | 15 (+12) | 6.41 | 12.12.2023 | \set VERBOSITY ||
+|| 52 | jsonb_jsonpath | 427 | 88 | 20.61 | 12.12.2023 | ||
+|| 53 | limit | 84 | 5 | 5.95 | 10.08.2023 | ||
+|| 54 | truncate | 193 | 33 | 17.1 | 12.12.2023 | ||
+|| 55 | alter_table | 1679 | 11 | 0.66 | 12.12.2023 | COMMENT ON TABLE ||
+|| 56 | xml | 234 | 15 | 6.41 | 12.12.2023 | \set VERBOSITY ||
|#
diff --git a/ydb/library/yql/tests/postgresql/status.old b/ydb/library/yql/tests/postgresql/status.old
index 8da5ecf2d50d..25d51f45d49f 100644
--- a/ydb/library/yql/tests/postgresql/status.old
+++ b/ydb/library/yql/tests/postgresql/status.old
@@ -2,7 +2,7 @@
#|
||№ п/п | Имя теста|Число операторов| Из них выполняется| % выполнения | Последнее обновление | Основные проблемы ||
-|| 1 | boolean | 93 | 67 (+3) | 72.04 | 12.12.2023 | DROP TABLE, implicit casts, \pset (null) ||
+|| 1 | boolean | 93 | 73 (+6) | 78.49 | 16.12.2023 | DROP TABLE, implicit casts ||
|| 2 | char | 25 | 3 | 12.0 | 25.05.2023 | implicit cast, pgbpchar vs pgtext ||
|| 3 | name | 40 | 22 (+17) | 55.0 | 29.09.2023 | parse_ident, implicit casts ||
|| 4 | varchar | 24 | 2 | 8.33 | 25.05.2023 | ||
@@ -16,7 +16,7 @@
|| 12 | bit | 115 | 84 (+80) | 73.04 | 12.12.2023 | substring, COPY FROM stdin, битовые константы ||
|| 13 | numeric | 915 | 715 (+189) | 78.14 | 12.12.2023 | CREATE UNIQUE INDEX, VACUUM ANALYZE, implicit casts, ошибочно проходит cast в int2 и int8, форматирование NaN и Infinity, COPY FROM stdin, SET lc_numeric, умножение больших целых чисел не дает в результате число с плавающей точкой, sum(), округление, nullif, форматирование чисел ||
|| 14 | uuid | 36 | 0 | 0.0 | 02.05.2023 | ||·
-|| 15 | strings | 390 | 31 (+3) | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, \pset, неинициализированная поддержка регулярок, pg_class ||
+|| 15 | strings | 390 | 31 (+3) | 7.95 | 25.08.2023 | SET, RESET, standard_conforming_strings, bytea_output, неинициализированная поддержка регулярок, pg_class ||
|| 16 | numerology | 24 | 8 (+4) | 33.33 | 26.07.2023 | ||
|| 17 | date | 264 | 200 (+183) | 75.76 | 12.12.2023 | ||
|| 18 | time | 39 | 33 (+22) | 84.62 | 12.12.2023 | ||
@@ -49,7 +49,7 @@
|| 45 | window | 298 | 5 (+3) | 1.68 | 12.12.2023 | ||
|| 46 | functional_deps | 40 | 6 (+2) | 15.0 | 12.12.2023 | ||
|| 47 | json | 454 | 115 (+64) | 25.33 | 12.12.2023 | ||
-|| 48 | jsonb | 1017 | 381 (+331) | 37.46 | 12.12.2023 | ||
+|| 48 | jsonb | 1017 | 382 (+1) | 37.56 | 16.12.2023 | ||
|| 49 | json_encoding | 42 | 42 | 100.0 | 29.05.2023 | ||
|| 50 | jsonpath | 169 | 152 | 89.94 | 29.05.2023 | числа с точкой без целой части (например .1), литерал '00' ||
|| 51 | jsonpath_encoding | 31 | 31 | 100.0 | 29.05.2023 | ||