From 468d9fe82ddf7edf1de1cdae689faf3daec4b8fb Mon Sep 17 00:00:00 2001 From: "okbob@github.com" Date: Fri, 19 Aug 2022 15:52:22 +0200 Subject: [PATCH 11/13] fix --- .../regress/expected/session_variables.out | 15 +++++++++++++ src/test/regress/sql/session_variables.sql | 21 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/test/regress/expected/session_variables.out b/src/test/regress/expected/session_variables.out index 8c4fafe5e1..b16ad6b8f2 100644 --- a/src/test/regress/expected/session_variables.out +++ b/src/test/regress/expected/session_variables.out @@ -1133,3 +1133,18 @@ SELECT public.svar2; DROP VARIABLE public.svar; DROP VARIABLE public.svar2; DROP TYPE public.svar_test_type; +-- The composite type cannot be changed when it is used +CREATE TYPE public.svar_type AS (a int, b int); +CREATE VARIABLE public.svar AS public.svar_type; +-- should to fail +ALTER TYPE public.svar_type ALTER ATTRIBUTE b TYPE numeric; +ERROR: cannot alter type "svar_type" because session variable "public.svar" uses it +DROP VARIABLE public.svar; +CREATE TYPE public.svar_type2 AS (a int, b int, c public.svar_type); +CREATE VARIABLE public.svar AS public.svar_type2; +-- should to fail +ALTER TYPE public.svar_type ALTER ATTRIBUTE b TYPE numeric; +ERROR: cannot alter type "svar_type" because session variable "public.svar" uses it +DROP VARIABLE public.svar; +DROP TYPE public.svar_type2; +DROP TYPE public.svar_type; diff --git a/src/test/regress/sql/session_variables.sql b/src/test/regress/sql/session_variables.sql index e74d8bfd6a..e2e463b0e7 100644 --- a/src/test/regress/sql/session_variables.sql +++ b/src/test/regress/sql/session_variables.sql @@ -862,3 +862,24 @@ SELECT public.svar2; DROP VARIABLE public.svar; DROP VARIABLE public.svar2; DROP TYPE public.svar_test_type; + +-- The composite type cannot be changed when it is used +CREATE TYPE public.svar_type AS (a int, b int); + +CREATE VARIABLE public.svar AS public.svar_type; + +-- should to fail +ALTER TYPE public.svar_type ALTER ATTRIBUTE b TYPE numeric; + +DROP VARIABLE public.svar; + +CREATE TYPE public.svar_type2 AS (a int, b int, c public.svar_type); + +CREATE VARIABLE public.svar AS public.svar_type2; + +-- should to fail +ALTER TYPE public.svar_type ALTER ATTRIBUTE b TYPE numeric; + +DROP VARIABLE public.svar; +DROP TYPE public.svar_type2; +DROP TYPE public.svar_type; -- 2.37.2