diff options
author | Mars Agliullin <marsaly@ydb.tech> | 2024-01-15 15:47:12 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-15 15:47:12 +0300 |
commit | 35977c70a1b86ba17ae2f7acfcf46f4e1134ee7f (patch) | |
tree | cc0d928b1a51d334df91dd2fca137efe1fa625ff | |
parent | 57677f2c4b147aafcae7cff932a6c1e8b91a758b (diff) | |
download | ydb-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
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=''<''/>'); </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=''<''/>'); </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=''<''/>'); </sql-statement> |