aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMars Agliullin <marsaly@ydb.tech>2024-01-15 15:47:12 +0300
committerGitHub <noreply@github.com>2024-01-15 15:47:12 +0300
commit35977c70a1b86ba17ae2f7acfcf46f4e1134ee7f (patch)
treecc0d928b1a51d334df91dd2fca137efe1fa625ff
parent57677f2c4b147aafcae7cff932a6c1e8b91a758b (diff)
downloadydb-35977c70a1b86ba17ae2f7acfcf46f4e1134ee7f.tar.gz
YQL-17388: fix use-after-free bug in TPgResolvedMultiCall::TListValue::TIterator (#955)
* Fix use-after-free bug in TPgResolvedMultiCall::TListValue::TIterator * Updated PG's regression tests' status
-rw-r--r--ydb/library/yql/parser/pg_wrapper/comp_factory.cpp40
-rw-r--r--ydb/library/yql/tests/postgresql/cases/aggregates.err16
-rw-r--r--ydb/library/yql/tests/postgresql/cases/aggregates.out61
-rw-r--r--ydb/library/yql/tests/postgresql/cases/aggregates.sql11
-rw-r--r--ydb/library/yql/tests/postgresql/cases/bit.err14
-rw-r--r--ydb/library/yql/tests/postgresql/cases/create_table.err56
-rw-r--r--ydb/library/yql/tests/postgresql/cases/functional_deps.err8
-rw-r--r--ydb/library/yql/tests/postgresql/cases/functional_deps.out9
-rw-r--r--ydb/library/yql/tests/postgresql/cases/functional_deps.sql5
-rw-r--r--ydb/library/yql/tests/postgresql/cases/insert.err26
-rw-r--r--ydb/library/yql/tests/postgresql/cases/int8.err2
-rw-r--r--ydb/library/yql/tests/postgresql/cases/interval.err7
-rw-r--r--ydb/library/yql/tests/postgresql/cases/join.err2
-rw-r--r--ydb/library/yql/tests/postgresql/cases/jsonb.err7
-rw-r--r--ydb/library/yql/tests/postgresql/cases/numeric.err9
-rw-r--r--ydb/library/yql/tests/postgresql/cases/subselect.err26
-rw-r--r--ydb/library/yql/tests/postgresql/cases/subselect.out19
-rw-r--r--ydb/library/yql/tests/postgresql/cases/subselect.sql6
-rw-r--r--ydb/library/yql/tests/postgresql/cases/timestamptz.err2
-rw-r--r--ydb/library/yql/tests/postgresql/cases/union.err2
-rw-r--r--ydb/library/yql/tests/postgresql/cases/window.err178
-rw-r--r--ydb/library/yql/tests/postgresql/cases/xml.err7
-rw-r--r--ydb/library/yql/tests/postgresql/cases/xml.err.17
-rw-r--r--ydb/library/yql/tests/postgresql/cases/xml.err.27
24 files changed, 239 insertions, 288 deletions
diff --git a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
index 84f03a737d8..62ff4aa5c1a 100644
--- a/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
+++ b/ydb/library/yql/parser/pg_wrapper/comp_factory.cpp
@@ -462,6 +462,14 @@ public:
}
~TReturnSetInfo() {
+ Free();
+ }
+
+ void Free() {
+ if (!Ptr) {
+ return;
+ }
+
if (Ref().expectedDesc) {
FreeTupleDesc(Ref().expectedDesc);
}
@@ -471,9 +479,12 @@ public:
}
TWithDefaultMiniKQLAlloc::FreeWithSize(Ptr, sizeof(ReturnSetInfo));
+ Ptr = nullptr;
}
ReturnSetInfo& Ref() {
+ Y_ENSURE(Ptr, "ReturnSetInfo is dead");
+
return *static_cast<ReturnSetInfo*>(Ptr);
}
@@ -488,11 +499,21 @@ public:
}
ExprContext& Ref() {
+ Y_ENSURE(Ptr, "TExprContextHolder is dead");
+
return *Ptr;
}
~TExprContextHolder() {
+ Free();
+ }
+
+ void Free() {
+ if (!Ptr) {
+ return;
+ }
FreeExprContext(Ptr, true);
+ Ptr = nullptr;
}
private:
@@ -739,9 +760,7 @@ private:
}
~TIterator() {
- if (TupleSlot) {
- ExecDropSingleTupleTableSlot(TupleSlot);
- }
+ FinishAndFree();
}
private:
@@ -766,7 +785,7 @@ private:
} else {
YQL_ENSURE(!StructType);
if (RSInfo.Ref().isDone == ExprEndResult) {
- IsFinished = true;
+ FinishAndFree();
return false;
}
@@ -782,7 +801,7 @@ private:
bool CopyTuple(NUdf::TUnboxedValue& value) {
if (!tuplestore_gettupleslot(RSInfo.Ref().setResult, true, false, TupleSlot)) {
- IsFinished = true;
+ FinishAndFree();
return false;
}
@@ -835,6 +854,17 @@ private:
}
}
+ void FinishAndFree() {
+ if (TupleSlot) {
+ ExecDropSingleTupleTableSlot(TupleSlot);
+ TupleSlot = nullptr;
+ }
+ RSInfo.Free();
+ ExprContextHolder.Free();
+
+ IsFinished = true;
+ }
+
const std::string_view Name;
TUnboxedValueVector Args;
const TVector<NPg::TTypeDesc>& ArgDesc;
diff --git a/ydb/library/yql/tests/postgresql/cases/aggregates.err b/ydb/library/yql/tests/postgresql/cases/aggregates.err
index 695de54f18e..6668a65fb06 100644
--- a/ydb/library/yql/tests/postgresql/cases/aggregates.err
+++ b/ydb/library/yql/tests/postgresql/cases/aggregates.err
@@ -654,12 +654,7 @@ COPY bitwise_test FROM STDIN NULL 'null';
7 7 7 3 4 B1100
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "1"
-
- 1 1 1 1 1 B0101
- ^
+Metacommand \. is not supported
<sql-statement>
SELECT
BIT_AND(i2) AS "1",
@@ -769,12 +764,7 @@ FALSE TRUE null null
null TRUE FALSE null
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "TRUE"
-
- TRUE null FALSE null
- ^
+Metacommand \. is not supported
<sql-statement>
SELECT
BOOL_AND(b1) AS "f",
@@ -1354,4 +1344,4 @@ drop table p_t1;
--
create temp table t1(f1 int, f2 bigint);
</sql-statement>
-(TFileError) (File exists) util/system/file.cpp:857: can't open "/tmp/tmpbbmu_5di/t1" with mode CreateNew (0x00000003)
+(TFileError) (File exists) util/system/file.cpp:918: can't open "/tmp/tmpjl487dvf/t1" with mode CreateNew (0x00000003)
diff --git a/ydb/library/yql/tests/postgresql/cases/aggregates.out b/ydb/library/yql/tests/postgresql/cases/aggregates.out
index 6bf57a88141..be38f5ac498 100644
--- a/ydb/library/yql/tests/postgresql/cases/aggregates.out
+++ b/ydb/library/yql/tests/postgresql/cases/aggregates.out
@@ -53,6 +53,67 @@ SELECT stddev_pop('nan'::numeric), stddev_samp('nan'::numeric);
NaN |
(1 row)
+-- verify correct results for null and NaN inputs
+select sum(null::int4) from generate_series(1,3);
+ sum
+-----
+
+(1 row)
+
+select sum(null::int8) from generate_series(1,3);
+ sum
+-----
+
+(1 row)
+
+select sum(null::numeric) from generate_series(1,3);
+ sum
+-----
+
+(1 row)
+
+select sum(null::float8) from generate_series(1,3);
+ sum
+-----
+
+(1 row)
+
+select avg(null::int4) from generate_series(1,3);
+ avg
+-----
+
+(1 row)
+
+select avg(null::int8) from generate_series(1,3);
+ avg
+-----
+
+(1 row)
+
+select avg(null::numeric) from generate_series(1,3);
+ avg
+-----
+
+(1 row)
+
+select avg(null::float8) from generate_series(1,3);
+ avg
+-----
+
+(1 row)
+
+select sum('NaN'::numeric) from generate_series(1,3);
+ sum
+-----
+ NaN
+(1 row)
+
+select avg('NaN'::numeric) from generate_series(1,3);
+ avg
+-----
+ NaN
+(1 row)
+
SELECT sum(x::numeric), avg(x::numeric), var_pop(x::numeric)
FROM (VALUES ('1'), ('infinity')) v(x);
sum | avg | var_pop
diff --git a/ydb/library/yql/tests/postgresql/cases/aggregates.sql b/ydb/library/yql/tests/postgresql/cases/aggregates.sql
index b1c7aa24889..10ef58550ba 100644
--- a/ydb/library/yql/tests/postgresql/cases/aggregates.sql
+++ b/ydb/library/yql/tests/postgresql/cases/aggregates.sql
@@ -13,6 +13,17 @@ SELECT var_pop('inf'::numeric), var_samp('inf'::numeric);
SELECT stddev_pop('inf'::numeric), stddev_samp('inf'::numeric);
SELECT var_pop('nan'::numeric), var_samp('nan'::numeric);
SELECT stddev_pop('nan'::numeric), stddev_samp('nan'::numeric);
+-- verify correct results for null and NaN inputs
+select sum(null::int4) from generate_series(1,3);
+select sum(null::int8) from generate_series(1,3);
+select sum(null::numeric) from generate_series(1,3);
+select sum(null::float8) from generate_series(1,3);
+select avg(null::int4) from generate_series(1,3);
+select avg(null::int8) from generate_series(1,3);
+select avg(null::numeric) from generate_series(1,3);
+select avg(null::float8) from generate_series(1,3);
+select sum('NaN'::numeric) from generate_series(1,3);
+select avg('NaN'::numeric) from generate_series(1,3);
SELECT sum(x::numeric), avg(x::numeric), var_pop(x::numeric)
FROM (VALUES ('1'), ('infinity')) v(x);
SELECT sum(x::numeric), avg(x::numeric), var_pop(x::numeric)
diff --git a/ydb/library/yql/tests/postgresql/cases/bit.err b/ydb/library/yql/tests/postgresql/cases/bit.err
index 836e062b35a..1ed31207ff8 100644
--- a/ydb/library/yql/tests/postgresql/cases/bit.err
+++ b/ydb/library/yql/tests/postgresql/cases/bit.err
@@ -138,12 +138,7 @@ XFA50 X05AF
X1234 XFFF5
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "X0F"
-
- X0F X10
- ^
+Metacommand \. is not supported
<sql-statement>
SELECT a, b, ~a AS "~ a", a & b AS "a & b",
a | b AS "a | b", a # b AS "a # b" FROM varbit_table;
@@ -179,12 +174,7 @@ XFA50 X05AF
X1234 XFFF5
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "X0F00"
-
- X0F00 X1000
- ^
+Metacommand \. is not supported
<sql-statement>
SELECT a,b,~a AS "~ a",a & b AS "a & b",
a|b AS "a | b", a # b AS "a # b" FROM bit_table;
diff --git a/ydb/library/yql/tests/postgresql/cases/create_table.err b/ydb/library/yql/tests/postgresql/cases/create_table.err
index bfc9390ba16..74172d95df3 100644
--- a/ydb/library/yql/tests/postgresql/cases/create_table.err
+++ b/ydb/library/yql/tests/postgresql/cases/create_table.err
@@ -434,23 +434,13 @@ DEALLOCATE select1;
-- (temporarily hide query, to avoid the long CREATE TABLE stmt)
\set ECHO none
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:3:1: Error: ERROR: syntax error at or near "\"
-
- \set ECHO none
- ^
+Metacommand \set ECHO none is not supported
<sql-statement>
SELECT 'CREATE TABLE extra_wide_table(firstc text, '|| array_to_string(array_agg('c'||i||' bool'),',')||', lastc text);'
FROM generate_series(1, 1100) g(i)
\gexec
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:3:1: Error: ERROR: syntax error at or near "\"
-
- \gexec
- ^
+Metacommand \gexec is not supported
<sql-statement>
\set ECHO all
</sql-statement>
@@ -978,12 +968,7 @@ CREATE TABLE fail () INHERITS (partitioned2);
-- Partition key in describe output
\d partitioned
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \d partitioned
- ^
+Metacommand \d partitioned is not supported
<sql-statement>
\d+ partitioned2
</sql-statement>
@@ -2274,12 +2259,7 @@ insert into parted_notnull_inh_test (b) values (null);
-- note that while b's default is overriden, a's default is preserved
\d parted_notnull_inh_test1
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \d parted_notnull_inh_test1
- ^
+Metacommand \d parted_notnull_inh_test1 is not supported
<sql-statement>
drop table parted_notnull_inh_test;
</sql-statement>
@@ -2399,32 +2379,17 @@ drop table test_part_coll_posix;
-- Partition bound in describe output
\d+ part_b
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \d+ part_b
- ^
+Metacommand \d+ part_b is not supported
<sql-statement>
-- Both partition bound and partition key in describe output
\d+ part_c
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \d+ part_c
- ^
+Metacommand \d+ part_c is not supported
<sql-statement>
-- a level-2 partition's constraint will include the parent's expressions
\d+ part_c_1_10
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \d+ part_c_1_10
- ^
+Metacommand \d+ part_c_1_10 is not supported
<sql-statement>
-- Show partition count in the parent's describe output
-- Tempted to include \d+ output listing partitions with bound info but
@@ -2432,12 +2397,7 @@ drop table test_part_coll_posix;
-- returned.
\d parted
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:5:1: Error: ERROR: syntax error at or near "\"
-
- \d parted
- ^
+Metacommand \d parted is not supported
<sql-statement>
\d hash_parted
</sql-statement>
diff --git a/ydb/library/yql/tests/postgresql/cases/functional_deps.err b/ydb/library/yql/tests/postgresql/cases/functional_deps.err
index f375d08dea5..fc6bed0daed 100644
--- a/ydb/library/yql/tests/postgresql/cases/functional_deps.err
+++ b/ydb/library/yql/tests/postgresql/cases/functional_deps.err
@@ -455,14 +455,6 @@ INNER JOIN users u ON u.uid = n.uid
WHERE n.type = 'blog' AND n.status = 1
GROUP BY u.uid, u.name;
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: UnionAll, At function: Aggregate
- -- OK
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _alias_u.name, but got: pgvarchar
- -- OK
- ^
<sql-statement>
-- OK
SELECT u.uid, u.name FROM node n
diff --git a/ydb/library/yql/tests/postgresql/cases/functional_deps.out b/ydb/library/yql/tests/postgresql/cases/functional_deps.out
index 3f1fb1b9b05..60ac758a429 100644
--- a/ydb/library/yql/tests/postgresql/cases/functional_deps.out
+++ b/ydb/library/yql/tests/postgresql/cases/functional_deps.out
@@ -35,3 +35,12 @@ CREATE TEMP TABLE users (
PRIMARY KEY (uid),
UNIQUE (name)
);
+-- OK
+SELECT u.uid, u.name FROM node n
+INNER JOIN users u ON u.uid = n.uid
+WHERE n.type = 'blog' AND n.status = 1
+GROUP BY u.uid, u.name;
+ uid | name
+-----+------
+(0 rows)
+
diff --git a/ydb/library/yql/tests/postgresql/cases/functional_deps.sql b/ydb/library/yql/tests/postgresql/cases/functional_deps.sql
index 3f1fb1b9b05..4c8da83ef89 100644
--- a/ydb/library/yql/tests/postgresql/cases/functional_deps.sql
+++ b/ydb/library/yql/tests/postgresql/cases/functional_deps.sql
@@ -35,3 +35,8 @@ CREATE TEMP TABLE users (
PRIMARY KEY (uid),
UNIQUE (name)
);
+-- OK
+SELECT u.uid, u.name FROM node n
+INNER JOIN users u ON u.uid = n.uid
+WHERE n.type = 'blog' AND n.status = 1
+GROUP BY u.uid, u.name;
diff --git a/ydb/library/yql/tests/postgresql/cases/insert.err b/ydb/library/yql/tests/postgresql/cases/insert.err
index f1a338b139c..9939f85884b 100644
--- a/ydb/library/yql/tests/postgresql/cases/insert.err
+++ b/ydb/library/yql/tests/postgresql/cases/insert.err
@@ -61,23 +61,15 @@ insert into inserttest (col1, col2, col3) values (DEFAULT, DEFAULT);
<sql-statement>
insert into inserttest (col1, col2, col3) values (1, 2);
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
- insert into inserttest (col1, col2, col3) values (1, 2);
- ^
- -stdin-:<main>:1:1: Error: values and target_columns sizes do not match
- insert into inserttest (col1, col2, col3) values (1, 2);
- ^
<sql-statement>
insert into inserttest (col1) values (1, 2);
</sql-statement>
-stdin-:<main>: Error: Type annotation
- -stdin-:<main>:1:1: Error: At function: RemovePrefixMembers, At function: PgSelect, At function: PgSetItem
+ -stdin-:<main>:1:1: Error: At function: YtWriteTable!
insert into inserttest (col1) values (1, 2);
^
- -stdin-:<main>:1:1: Error: values and target_columns sizes do not match
+ -stdin-:<main>:1:1: Error: values have 2 columns, INSERT INTO expects: 1
insert into inserttest (col1) values (1, 2);
^
<sql-statement>
@@ -1185,12 +1177,7 @@ from hash_parted order by part;
-- partitions
\d+ list_parted
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:3:1: Error: ERROR: syntax error at or near "\"
-
- \d+ list_parted
- ^
+Metacommand \d+ list_parted is not supported
<sql-statement>
-- cleanup
drop table range_parted, list_parted;
@@ -2505,12 +2492,7 @@ copy donothingbrtrig_test from stdout;
2 qux
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "1"
-
- 1 baz
- ^
+Metacommand \. is not supported
<sql-statement>
select tableoid::regclass, * from donothingbrtrig_test;
</sql-statement>
diff --git a/ydb/library/yql/tests/postgresql/cases/int8.err b/ydb/library/yql/tests/postgresql/cases/int8.err
index 5b962d29280..82decd997cc 100644
--- a/ydb/library/yql/tests/postgresql/cases/int8.err
+++ b/ydb/library/yql/tests/postgresql/cases/int8.err
@@ -717,6 +717,6 @@ SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::in
<sql-statement>
SELECT * FROM generate_series('+4567890123456789'::int8, '+4567890123456799'::int8, 2);
</sql-statement>
-pgrun: /storage/d/arcc/mount/1/a0a05244-a249bf61-ec2999f5-6661a47b/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
+pgrun: /-S/ydbwork/ydb/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
pthread_kill at ./nptl/./nptl/pthread_kill.c:43:17
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/interval.err b/ydb/library/yql/tests/postgresql/cases/interval.err
index 2bf46821836..b67f8dd6a13 100644
--- a/ydb/library/yql/tests/postgresql/cases/interval.err
+++ b/ydb/library/yql/tests/postgresql/cases/interval.err
@@ -286,12 +286,7 @@ COPY INTERVAL_MULDIV_TBL FROM STDIN;
999 mon 999 days
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "41"
-
- 41 mon 12 days 360:00
- ^
+Metacommand \. is not supported
<sql-statement>
SELECT span * 0.3 AS product
FROM INTERVAL_MULDIV_TBL;
diff --git a/ydb/library/yql/tests/postgresql/cases/join.err b/ydb/library/yql/tests/postgresql/cases/join.err
index 50d0e21eb6b..e468af68aea 100644
--- a/ydb/library/yql/tests/postgresql/cases/join.err
+++ b/ydb/library/yql/tests/postgresql/cases/join.err
@@ -1680,4 +1680,4 @@ create temp table a (
constraint a_pk primary key (code)
);
</sql-statement>
-(TFileError) (File exists) util/system/file.cpp:857: can't open "/tmp/tmpglg8to66/a" with mode CreateNew (0x00000003)
+(TFileError) (File exists) util/system/file.cpp:918: can't open "/tmp/tmp3znkmfbo/a" with mode CreateNew (0x00000003)
diff --git a/ydb/library/yql/tests/postgresql/cases/jsonb.err b/ydb/library/yql/tests/postgresql/cases/jsonb.err
index d2cbf6610b7..c0a44f50465 100644
--- a/ydb/library/yql/tests/postgresql/cases/jsonb.err
+++ b/ydb/library/yql/tests/postgresql/cases/jsonb.err
@@ -5938,12 +5938,6 @@ select jsonb_set('{"a": {"b": [1, 2, 3]}}', '{a, b, NULL}', '"new_value"');
-- jsonb_set_lax
\pset null NULL
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "\"
-
- \pset null NULL
- ^
<sql-statement>
-- pass though non nulls to jsonb_set
select jsonb_set_lax('{"a":1,"b":2}','{b}','5') ;
@@ -6063,7 +6057,6 @@ select jsonb_set_lax('{"a":1,"b":2}', '{b}', null, null_value_treatment => 'use_
<sql-statement>
\pset null ''
</sql-statement>
-Metacommand \pset null '' is not supported
<sql-statement>
-- jsonb_insert
select jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"');
diff --git a/ydb/library/yql/tests/postgresql/cases/numeric.err b/ydb/library/yql/tests/postgresql/cases/numeric.err
index 13bbc724548..421fe55e56e 100644
--- a/ydb/library/yql/tests/postgresql/cases/numeric.err
+++ b/ydb/library/yql/tests/postgresql/cases/numeric.err
@@ -2772,12 +2772,7 @@ COPY width_bucket_test (operand_num) FROM stdin;
10.0000000000001
\.
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:2:1: Error: ERROR: syntax error at or near "-"
-
- -5.2
- ^
+Metacommand \. is not supported
<sql-statement>
UPDATE width_bucket_test SET operand_f8 = operand_num::float8;
</sql-statement>
@@ -3617,6 +3612,6 @@ select * from generate_series(-100::numeric, 100::numeric, 0::numeric);
<sql-statement>
select * from generate_series(-100::numeric, 100::numeric, 'nan'::numeric);
</sql-statement>
-pgrun: /storage/d/arcc/mount/1/a0a05244-a249bf61-ec2999f5-6661a47b/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
+pgrun: /-S/ydbwork/ydb/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
pthread_kill at ./nptl/./nptl/pthread_kill.c:43:17
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/subselect.err b/ydb/library/yql/tests/postgresql/cases/subselect.err
index 6dfa1746d69..566d00bef63 100644
--- a/ydb/library/yql/tests/postgresql/cases/subselect.err
+++ b/ydb/library/yql/tests/postgresql/cases/subselect.err
@@ -4,36 +4,12 @@
--
SELECT 1 AS one WHERE 1 IN (SELECT 1);
</sql-statement>
--stdin-:<main>: Fatal: Optimization
-
- -stdin-:<main>:4:25: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:2852 JoinOuter(): requirement outerInputs.size() == finalExtTypes->Tail().ChildrenSize() failed
- SELECT 1 AS one WHERE 1 IN (SELECT 1);
- ^
- -stdin-:<main>:1:1: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:640 RewriteSubLinksPartial(): requirement status.Level != IGraphTransformer::TStatus::Error failed
- --
- ^
<sql-statement>
SELECT 1 AS zero WHERE 1 NOT IN (SELECT 1);
</sql-statement>
--stdin-:<main>: Fatal: Optimization
-
- -stdin-:<main>:1:26: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:2852 JoinOuter(): requirement outerInputs.size() == finalExtTypes->Tail().ChildrenSize() failed
- SELECT 1 AS zero WHERE 1 NOT IN (SELECT 1);
- ^
- -stdin-:<main>:1:1: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:640 RewriteSubLinksPartial(): requirement status.Level != IGraphTransformer::TStatus::Error failed
- SELECT 1 AS zero WHERE 1 NOT IN (SELECT 1);
- ^
<sql-statement>
SELECT 1 AS zero WHERE 1 IN (SELECT 2);
</sql-statement>
--stdin-:<main>: Fatal: Optimization
-
- -stdin-:<main>:1:26: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:2852 JoinOuter(): requirement outerInputs.size() == finalExtTypes->Tail().ChildrenSize() failed
- SELECT 1 AS zero WHERE 1 IN (SELECT 2);
- ^
- -stdin-:<main>:1:1: Fatal: ydb/library/yql/core/common_opt/yql_co_pgselect.cpp:640 RewriteSubLinksPartial(): requirement status.Level != IGraphTransformer::TStatus::Error failed
- SELECT 1 AS zero WHERE 1 IN (SELECT 2);
- ^
<sql-statement>
-- Check grammar's handling of extra parens in assorted contexts
SELECT * FROM (SELECT 1 AS x) ss;
@@ -44,5 +20,5 @@ SELECT * FROM ((SELECT 1 AS x)) ss;
<sql-statement>
(SELECT 2) UNION SELECT 2;
</sql-statement>
-NYql::TAggregateExpander::ExpandAggApply(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&) at /-S/ydb/library/yql/core/yql_aggregate_expander.cpp:119:51
+NYql::TAggregateExpander::ExpandAggApply(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&) at /-S/ydbwork/ydb/ydb/library/yql/core/yql_aggregate_expander.cpp:119:51
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/subselect.out b/ydb/library/yql/tests/postgresql/cases/subselect.out
index e5202b1d206..9fbeb65df2d 100644
--- a/ydb/library/yql/tests/postgresql/cases/subselect.out
+++ b/ydb/library/yql/tests/postgresql/cases/subselect.out
@@ -1,3 +1,22 @@
+--
+-- SUBSELECT
+--
+SELECT 1 AS one WHERE 1 IN (SELECT 1);
+ one
+-----
+ 1
+(1 row)
+
+SELECT 1 AS zero WHERE 1 NOT IN (SELECT 1);
+ zero
+------
+(0 rows)
+
+SELECT 1 AS zero WHERE 1 IN (SELECT 2);
+ zero
+------
+(0 rows)
+
-- Check grammar's handling of extra parens in assorted contexts
SELECT * FROM (SELECT 1 AS x) ss;
x
diff --git a/ydb/library/yql/tests/postgresql/cases/subselect.sql b/ydb/library/yql/tests/postgresql/cases/subselect.sql
index 95985320955..cc4abd17a6a 100644
--- a/ydb/library/yql/tests/postgresql/cases/subselect.sql
+++ b/ydb/library/yql/tests/postgresql/cases/subselect.sql
@@ -1,3 +1,9 @@
+--
+-- SUBSELECT
+--
+SELECT 1 AS one WHERE 1 IN (SELECT 1);
+SELECT 1 AS zero WHERE 1 NOT IN (SELECT 1);
+SELECT 1 AS zero WHERE 1 IN (SELECT 2);
-- Check grammar's handling of extra parens in assorted contexts
SELECT * FROM (SELECT 1 AS x) ss;
SELECT * FROM ((SELECT 1 AS x)) ss;
diff --git a/ydb/library/yql/tests/postgresql/cases/timestamptz.err b/ydb/library/yql/tests/postgresql/cases/timestamptz.err
index 7ba6e87295a..263087a9d0d 100644
--- a/ydb/library/yql/tests/postgresql/cases/timestamptz.err
+++ b/ydb/library/yql/tests/postgresql/cases/timestamptz.err
@@ -1142,6 +1142,6 @@ SET TimeZone to 'UTC';
<sql-statement>
SELECT '2011-03-27 00:00:00 Europe/Moscow'::timestamptz;
</sql-statement>
-pgrun: /storage/d/arcc/mount/1/a0a05244-a249bf61-ec2999f5-6661a47b/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
+pgrun: /-S/ydbwork/ydb/contrib/libs/llvm12/lib/IR/LegacyPassManager.cpp:588: void llvm::PMTopLevelManager::setLastUser(ArrayRef<Pass *>, Pass *): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.
pthread_kill at ./nptl/./nptl/pthread_kill.c:43:17
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/union.err b/ydb/library/yql/tests/postgresql/cases/union.err
index 9fccd88351e..df1a8e64fe7 100644
--- a/ydb/library/yql/tests/postgresql/cases/union.err
+++ b/ydb/library/yql/tests/postgresql/cases/union.err
@@ -5,5 +5,5 @@
-- Simple UNION constructs
SELECT 1 AS two UNION SELECT 2 ORDER BY 1;
</sql-statement>
-NYql::TAggregateExpander::ExpandAggApply(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&) at /-S/ydb/library/yql/core/yql_aggregate_expander.cpp:119:51
+NYql::TAggregateExpander::ExpandAggApply(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&) at /-S/ydbwork/ydb/ydb/library/yql/core/yql_aggregate_expander.cpp:119:51
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/window.err b/ydb/library/yql/tests/postgresql/cases/window.err
index 81c5dff5806..e785c75f109 100644
--- a/ydb/library/yql/tests/postgresql/cases/window.err
+++ b/ydb/library/yql/tests/postgresql/cases/window.err
@@ -25,25 +25,9 @@ INSERT INTO empsalary VALUES
<sql-statement>
SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary;
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: Sort, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow
- SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary;
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _yql_partition_key_0_0, but got: pgvarchar
- SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary ORDER BY depname, salary;
- ^
<sql-statement>
SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary;
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow
- SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary;
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _yql_partition_key_0_0, but got: pgvarchar
- SELECT depname, empno, salary, rank() OVER (PARTITION BY depname ORDER BY salary) FROM empsalary;
- ^
<sql-statement>
-- with GROUP BY
SELECT four, ten, SUM(SUM(four)) OVER (PARTITION BY four), AVG(ten) FROM tenk1
@@ -56,14 +40,6 @@ GROUP BY four, ten ORDER BY four, ten;
<sql-statement>
SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow
- SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _yql_partition_key_0_0, but got: pgvarchar
- SELECT depname, empno, salary, sum(salary) OVER w FROM empsalary WINDOW w AS (PARTITION BY depname);
- ^
<sql-statement>
SELECT depname, empno, salary, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary) ORDER BY rank() OVER w;
</sql-statement>
@@ -301,14 +277,6 @@ SELECT sum(salary),
sum(sum(salary)) OVER (ORDER BY depname DESC)
FROM empsalary GROUP BY depname;
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow, At function: CalcOverWindow, At function: UnionAll, At function: Aggregate
- -- more than one window with GROUP BY
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _alias_empsalary.depname, but got: pgvarchar
- -- more than one window with GROUP BY
- ^
<sql-statement>
-- identical windows with different names
SELECT sum(salary) OVER w1, count(*) OVER w2
@@ -335,14 +303,6 @@ SELECT count(*) OVER (PARTITION BY four) FROM (SELECT * FROM tenk1 WHERE FALSE)s
-- mixture of agg/wfunc in the same window
SELECT sum(salary) OVER w, rank() OVER w FROM empsalary WINDOW w AS (PARTITION BY depname ORDER BY salary DESC);
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow
- -- mixture of agg/wfunc in the same window
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _yql_partition_key_0_0, but got: pgvarchar
- -- mixture of agg/wfunc in the same window
- ^
<sql-statement>
-- strict aggs
SELECT empno, depname, salary, bonus, depadj, MIN(bonus) OVER (ORDER BY empno), MAX(depadj) OVER () FROM(
@@ -2919,14 +2879,6 @@ SELECT * FROM
FROM empsalary) emp
WHERE first_emp = 1 OR last_emp = 1;
</sql-statement>
--stdin-:<main>: Error: Type annotation
-
- -stdin-:<main>:1:1: Error: At function: PgSelect, At function: PgSetItem, At function: AssumeColumnOrder, At function: PgReplaceUnknown, At function: OrderedMap, At function: CalcOverWindow, At function: OrderedMap, At function: CalcOverWindow
- SELECT * FROM
- ^
- -stdin-:<main>:1:1: Error: Expected hashable and equatable type for key column: _yql_partition_key_0_0, but got: pgvarchar
- SELECT * FROM
- ^
<sql-statement>
-- cleanup
DROP TABLE empsalary;
@@ -3294,72 +3246,72 @@ 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);
</sql-statement>
-VERIFY failed (2023-12-12T19:41:50.094283+0300): Value is not boxed
+VERIFY failed (2024-01-12T02:19:37.139252+0300): Value is not boxed
ydb/library/yql/public/udf/udf_value_inl.h:379
AsBoxed(): requirement IsBoxed() failed
-BackTrace(void**, unsigned long)+29 (0x14087F6D)
-FormatBackTrace(IOutputStream*)+32 (0x14088440)
-PrintBackTrace()+17 (0x14088491)
-NPrivate::InternalPanicImpl(int, char const*, char const*, int, int, int, TBasicStringBuf<char, std::__y1::char_traits<char> >, char const*, unsigned long)+995 (0x140CE743)
-NPrivate::Panic(NPrivate::TStaticBuf const&, int, char const*, char const*, char const*, ...)+418 (0x140C18B2)
-NYql::NUdf::TUnboxedValuePod::AsBoxed() const+218 (0x152AF12A)
-NYql::PointerDatumFromPod(NYql::NUdf::TUnboxedValuePod const&)+29 (0x1B7A9E8D)
-NYql::TPgResolvedCall<true>::DoCalculate(NKikimr::NMiniKQL::TComputationContext&) const+771 (0x1B7E5C33)
-NKikimr::NMiniKQL::TMutableComputationNode<NYql::TPgResolvedCall<true> >::GetValue(NKikimr::NMiniKQL::TComputationContext&) const+420 (0x1B7E50D4)
-??+0 (0x7F854D4FCC53)
-??+0 (0x7F854D4FC47C)
-??+0 (0x7F854D4FAE01)
-??+0 (0x1FD82FD2)
-NYql::NUdf::TBoxedValueAccessor::Fetch(NYql::NUdf::IBoxedValue&, NYql::NUdf::TUnboxedValue&)+244 (0x178E67A4)
-NYql::NUdf::TUnboxedValuePod::Fetch(NYql::NUdf::TUnboxedValue&) const+228 (0x178E6624)
-NKikimr::NMiniKQL::TForwardListValue::TIterator::Next(NYql::NUdf::TUnboxedValue&)+36 (0x17B99974)
-NYql::NUdf::TBoxedValueAccessor::Next(NYql::NUdf::IBoxedValue&, NYql::NUdf::TUnboxedValue&)+244 (0x14EFDD24)
-NYql::NUdf::TUnboxedValuePod::Next(NYql::NUdf::TUnboxedValue&) const+228 (0x14EFD9F4)
-NYql::TYsonExecuteResOrPull::WriteValue(NYql::NUdf::TUnboxedValue const&, NKikimr::NMiniKQL::TType*)+436 (0x209F9A54)
-NYql::NFile::TYtFileGateway::ExecuteResult(NYql::NFile::TSession&, NYson::TYsonWriter&, NYql::NNodes::TExprBase, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&, TVector<TBasicString<char, std::__y1::char_traits<char> >, std::__y1::allocator<TBasicString<char, std::__y1::char_traits<char> > > > const&) const+2002 (0x1C34AE12)
-NYql::NFile::TYtFileGateway::ResOrPull(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, NYql::TExprContext&, NYql::IYtGateway::TResOrPullOptions&&)+1128 (0x1C31DEF8)
-??+0 (0x1AB7ECFE)
-??+0 (0x1AB82F89)
-??+0 (0x1AB82EE8)
-??+0 (0x1AB82E78)
-??+0 (0x1AB82E28)
-??+0 (0x1AB821BC)
-std::__y1::__function::__value_func<std::__y1::pair<NYql::IGraphTransformer::TStatus, NThreading::TFuture<std::__y1::function<NYql::IGraphTransformer::TStatus (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)> > > (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)>::operator()[abi:v15000](TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&) const+93 (0x1AB92C9D)
-std::__y1::function<std::__y1::pair<NYql::IGraphTransformer::TStatus, NThreading::TFuture<std::__y1::function<NYql::IGraphTransformer::TStatus (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)> > > (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)>::operator()(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&) const+56 (0x1AB91FE8)
-NYql::TExecTransformerBase::CallbackTransform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+811 (0x1AB91C6B)
-NYql::TAsyncCallbackTransformer<NYql::TExecTransformerBase>::DoTransform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+64 (0x1AB7FF50)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x153FF174)
-??+0 (0x176F665C)
-??+0 (0x176EA0A6)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x153FF174)
-??+0 (0x1786F3EC)
-??+0 (0x17861728)
-??+0 (0x1786DCCC)
-??+0 (0x178619D7)
-??+0 (0x1786D98A)
-??+0 (0x178619D7)
-??+0 (0x17859F2E)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x153FF174)
-??+0 (0x15403098)
-??+0 (0x15402DC9)
-??+0 (0x153FF7D5)
-NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x153FF174)
-NYql::AsyncTransformStepImpl(NYql::IGraphTransformer&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&, bool, bool, TBasicStringBuf<char, std::__y1::char_traits<char> > const&)+1222 (0x153FE226)
-NYql::AsyncTransform(NYql::IGraphTransformer&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&, bool)+127 (0x153FEAAF)
-NYql::TProgram::AsyncTransformWithFallback(bool)+120 (0x16C17A78)
-??+0 (0x16C3EC1E)
-??+0 (0x16C3E797)
-??+0 (0x16C3E665)
-??+0 (0x16C3D140)
-??+0 (0x16C3D007)
-??+0 (0x16C15F8D)
-NYql::TProgram::RunAsync(TBasicString<char, std::__y1::char_traits<char> > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+3760 (0x16C15C20)
-??+0 (0x16C12804)
-NYql::TProgram::Run(TBasicString<char, std::__y1::char_traits<char> > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+301 (0x16C14CCD)
-Main(int, char**)+4924 (0x13F14D4C)
-main+273 (0x13F16831)
-??+0 (0x7F854D229D90)
-__libc_start_main+128 (0x7F854D229E40)
-??+0 (0x13EA0029)
+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, std::__y1::char_traits<char> >, 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<true>::DoCalculate(NKikimr::NMiniKQL::TComputationContext&) const+771 (0x1BB577E3)
+NKikimr::NMiniKQL::TMutableComputationNode<NYql::TPgResolvedCall<true> >::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<TBasicString<char, std::__y1::char_traits<char> >, std::__y1::allocator<TBasicString<char, std::__y1::char_traits<char> > > > const&) const+2002 (0x1C6C1D32)
+NYql::NFile::TYtFileGateway::ResOrPull(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > 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<std::__y1::pair<NYql::IGraphTransformer::TStatus, NThreading::TFuture<std::__y1::function<NYql::IGraphTransformer::TStatus (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)> > > (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)>::operator()[abi:v15000](TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&) const+93 (0x1AEFCA0D)
+std::__y1::function<std::__y1::pair<NYql::IGraphTransformer::TStatus, NThreading::TFuture<std::__y1::function<NYql::IGraphTransformer::TStatus (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)> > > (TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)>::operator()(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&) const+56 (0x1AEFBD58)
+NYql::TExecTransformerBase::CallbackTransform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> > const&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+811 (0x1AEFB9DB)
+NYql::TAsyncCallbackTransformer<NYql::TExecTransformerBase>::DoTransform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+64 (0x1AEE9D20)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x15645D84)
+??+0 (0x1799623C)
+??+0 (0x17989C86)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x15645D84)
+??+0 (0x17B2220C)
+??+0 (0x17B14548)
+??+0 (0x17B20AEC)
+??+0 (0x17B147F7)
+??+0 (0x17B207AA)
+??+0 (0x17B147F7)
+??+0 (0x17B0CD4E)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x15645D84)
+??+0 (0x15649CA8)
+??+0 (0x156499D9)
+??+0 (0x156463E5)
+NYql::TGraphTransformerBase::Transform(TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&)+100 (0x15645D84)
+NYql::AsyncTransformStepImpl(NYql::IGraphTransformer&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, NYql::TExprContext&, bool, bool, TBasicStringBuf<char, std::__y1::char_traits<char> > const&)+1222 (0x15644E36)
+NYql::AsyncTransform(NYql::IGraphTransformer&, TIntrusivePtr<NYql::TExprNode, TDefaultIntrusivePtrOps<NYql::TExprNode> >&, 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<char, std::__y1::char_traits<char> > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+3760 (0x16EA19A0)
+??+0 (0x16E9E584)
+NYql::TProgram::Run(TBasicString<char, std::__y1::char_traits<char> > const&, IOutputStream*, IOutputStream*, IOutputStream*, bool)+301 (0x16EA0A4D)
+Main(int, char**)+5378 (0x1414F2E2)
+main+273 (0x14150F11)
+??+0 (0x7F1784029D90)
+__libc_start_main+128 (0x7F1784029E40)
+??+0 (0x140DA029)
pthread_kill at ./nptl/./nptl/pthread_kill.c:43:17
?? at ??:0:0
diff --git a/ydb/library/yql/tests/postgresql/cases/xml.err b/ydb/library/yql/tests/postgresql/cases/xml.err
index 7ac69d22136..0b33ab4cb11 100644
--- a/ydb/library/yql/tests/postgresql/cases/xml.err
+++ b/ydb/library/yql/tests/postgresql/cases/xml.err
@@ -1358,12 +1358,7 @@ SELECT xml_is_well_formed('abc');
-- error messages, we suppress the DETAIL in this test.
\set VERBOSITY terse
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:11:1: Error: ERROR: syntax error at or near "\"
-
- \set VERBOSITY terse
- ^
+Metacommand \set VERBOSITY terse is not supported
<sql-statement>
SELECT xpath('/*', '<invalidns xmlns=''&lt;''/>');
</sql-statement>
diff --git a/ydb/library/yql/tests/postgresql/cases/xml.err.1 b/ydb/library/yql/tests/postgresql/cases/xml.err.1
index 7ac69d22136..0b33ab4cb11 100644
--- a/ydb/library/yql/tests/postgresql/cases/xml.err.1
+++ b/ydb/library/yql/tests/postgresql/cases/xml.err.1
@@ -1358,12 +1358,7 @@ SELECT xml_is_well_formed('abc');
-- error messages, we suppress the DETAIL in this test.
\set VERBOSITY terse
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:11:1: Error: ERROR: syntax error at or near "\"
-
- \set VERBOSITY terse
- ^
+Metacommand \set VERBOSITY terse is not supported
<sql-statement>
SELECT xpath('/*', '<invalidns xmlns=''&lt;''/>');
</sql-statement>
diff --git a/ydb/library/yql/tests/postgresql/cases/xml.err.2 b/ydb/library/yql/tests/postgresql/cases/xml.err.2
index 7ac69d22136..0b33ab4cb11 100644
--- a/ydb/library/yql/tests/postgresql/cases/xml.err.2
+++ b/ydb/library/yql/tests/postgresql/cases/xml.err.2
@@ -1358,12 +1358,7 @@ SELECT xml_is_well_formed('abc');
-- error messages, we suppress the DETAIL in this test.
\set VERBOSITY terse
</sql-statement>
--stdin-:<main>: Error: Parse Sql
-
- -stdin-:<main>:11:1: Error: ERROR: syntax error at or near "\"
-
- \set VERBOSITY terse
- ^
+Metacommand \set VERBOSITY terse is not supported
<sql-statement>
SELECT xpath('/*', '<invalidns xmlns=''&lt;''/>');
</sql-statement>