From 108d531ef3443bdb0f609f4bb06538a3cc9f204f Mon Sep 17 00:00:00 2001
From: "okbob@github.com" <pavel.stehule@gmail.com>
Date: Sun, 15 Jun 2025 14:23:08 +0200
Subject: [PATCH 3/3] test of usage of unreserved words as variables or record
 fields

---
 src/pl/plpgsql/src/expected/plpgsql_misc.out | 14 ++++++++++++++
 src/pl/plpgsql/src/sql/plpgsql_misc.sql      | 13 +++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/src/pl/plpgsql/src/expected/plpgsql_misc.out b/src/pl/plpgsql/src/expected/plpgsql_misc.out
index 7c87029783a..16a6c74b954 100644
--- a/src/pl/plpgsql/src/expected/plpgsql_misc.out
+++ b/src/pl/plpgsql/src/expected/plpgsql_misc.out
@@ -65,6 +65,20 @@ do $$ declare x public.foo%rowtype; begin end $$;
 ERROR:  relation "public.foo" does not exist
 CONTEXT:  compilation of PL/pgSQL function "inline_code_block" near line 1
 do $$ declare x public.misc_table%rowtype; begin end $$;
+-- Test handling of unreserved word as a variable names
+-- and record field names.
+do $$
+declare
+  execute int;
+  r record;
+begin
+  execute := 10;
+  raise notice 'execute = %', execute;
+  select 1 as "strict" into r;
+  raise notice 'r.strict = %', r.strict;
+end $$;
+NOTICE:  execute = 10
+NOTICE:  r.strict = 1
 -- Test handling of a reserved word as a record field name
 do $$ declare r record;
 begin
diff --git a/src/pl/plpgsql/src/sql/plpgsql_misc.sql b/src/pl/plpgsql/src/sql/plpgsql_misc.sql
index 4c31b9d11fc..f29045039b9 100644
--- a/src/pl/plpgsql/src/sql/plpgsql_misc.sql
+++ b/src/pl/plpgsql/src/sql/plpgsql_misc.sql
@@ -38,6 +38,19 @@ do $$ declare x foo.bar.baz%rowtype; begin end $$;
 do $$ declare x public.foo%rowtype; begin end $$;
 do $$ declare x public.misc_table%rowtype; begin end $$;
 
+-- Test handling of unreserved word as a variable names
+-- and record field names.
+do $$
+declare
+  execute int;
+  r record;
+begin
+  execute := 10;
+  raise notice 'execute = %', execute;
+  select 1 as "strict" into r;
+  raise notice 'r.strict = %', r.strict;
+end $$;
+
 -- Test handling of a reserved word as a record field name
 
 do $$ declare r record;
-- 
2.49.0

