From 151f38670ced9f8c441226fc6ba6a912a9aacde3 Mon Sep 17 00:00:00 2001 From: totaj Date: Mon, 9 Jan 2023 17:57:22 +0800 Subject: [PATCH] Fix package core. --- src/common/pl/plpgsql/src/pl_comp.cpp | 8 ++++++-- src/test/regress/expected/plpgsql_package_type.out | 8 ++++++++ src/test/regress/sql/plpgsql_package_type.sql | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/common/pl/plpgsql/src/pl_comp.cpp b/src/common/pl/plpgsql/src/pl_comp.cpp index 492cc35441..fed6e814fc 100644 --- a/src/common/pl/plpgsql/src/pl_comp.cpp +++ b/src/common/pl/plpgsql/src/pl_comp.cpp @@ -2977,8 +2977,12 @@ PLpgSQL_type* plpgsql_parse_wordtype(char* ident) return NULL; } - dtype = build_datatype(type_tup, -1, - u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + dtype = build_datatype(type_tup, -1, 0); + } else { + dtype = build_datatype(type_tup, -1, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); + } ReleaseSysCache(type_tup); return dtype; diff --git a/src/test/regress/expected/plpgsql_package_type.out b/src/test/regress/expected/plpgsql_package_type.out index 7107636682..4e0f1946f5 100644 --- a/src/test/regress/expected/plpgsql_package_type.out +++ b/src/test/regress/expected/plpgsql_package_type.out @@ -1462,9 +1462,17 @@ end pck1; / -- test pck1.record.col%type ref table of -- test pck1.va.col%type ref table of +create or replace package pak1 as +type tp_varray is varray(1) of char%type; +varray1 tp_varray; +procedure p1; +end pak1 ; +/ -------------------------------------------------- ------------------ END OF TESTS ------------------ -------------------------------------------------- +drop package pak1; +NOTICE: drop cascades to function plpgsql_packagetype1.p1() drop package p_test2; ERROR: package p_test2 does not exist drop package plpgsql_packagetype1.p_test2; diff --git a/src/test/regress/sql/plpgsql_package_type.sql b/src/test/regress/sql/plpgsql_package_type.sql index d674920597..38b22eba25 100644 --- a/src/test/regress/sql/plpgsql_package_type.sql +++ b/src/test/regress/sql/plpgsql_package_type.sql @@ -1115,11 +1115,17 @@ end pck1; -- test pck1.va.col%type ref table of - +create or replace package pak1 as +type tp_varray is varray(1) of char%type; +varray1 tp_varray; +procedure p1; +end pak1 ; +/ -------------------------------------------------- ------------------ END OF TESTS ------------------ -------------------------------------------------- +drop package pak1; drop package p_test2; drop package plpgsql_packagetype1.p_test2; drop package plpgsql_packagetype1.p_test1; -- Gitee