Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6da0c43

Browse files
committed
Change some of the existing plpgsql regression test cases so that they
exercise dollar quoting and named function parameters. AFAICS we hadno tests of either feature before.
1 parent2f48836 commit6da0c43

File tree

2 files changed

+38
-46
lines changed

2 files changed

+38
-46
lines changed

‎src/test/regress/expected/plpgsql.out

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,14 @@ create trigger tg_room_ad after delete
119119
-- * BEFORE INSERT or UPDATE on WSlot
120120
-- *- Check that room exists
121121
-- ************************************************************
122-
create function tg_wslot_biu() returns trigger as'
122+
create function tg_wslot_biu() returns trigger as$$
123123
begin
124124
if count(*) = 0 from Room where roomno = new.roomno then
125-
raise exception ''Room % does not exist'', new.roomno;
125+
raise exception 'Room % does not exist', new.roomno;
126126
end if;
127127
return new;
128128
end;
129-
' language'plpgsql';
129+
$$ language plpgsql;
130130
create trigger tg_wslot_biu before insert or update
131131
on WSlot for each row execute procedure tg_wslot_biu();
132132
-- ************************************************************
@@ -159,18 +159,18 @@ create trigger tg_pfield_ad after delete
159159
-- * BEFORE INSERT or UPDATE on PSlot
160160
-- *- Ensure that our patchfield does exist
161161
-- ************************************************************
162-
create function tg_pslot_biu() returns trigger as'
162+
create function tg_pslot_biu() returns trigger as$proc$
163163
declare
164164
pfrecrecord;
165165
rename new to ps;
166166
begin
167167
select into pfrec * from PField where name = ps.pfname;
168168
if not found then
169-
raise exception''Patchfield "%" does not exist'', ps.pfname;
169+
raise exception$$Patchfield "%" does not exist$$, ps.pfname;
170170
end if;
171171
return ps;
172172
end;
173-
' language'plpgsql';
173+
$proc$ language plpgsql;
174174
create trigger tg_pslot_biu before insert or update
175175
on PSlot for each row execute procedure tg_pslot_biu();
176176
-- ************************************************************
@@ -191,25 +191,25 @@ create trigger tg_system_au after update
191191
-- * BEFORE INSERT or UPDATE on IFace
192192
-- *- set the slotname to IF.sysname.ifname
193193
-- ************************************************************
194-
create function tg_iface_biu() returns trigger as'
194+
create function tg_iface_biu() returns trigger as$$
195195
declare
196196
snametext;
197197
sysrecrecord;
198198
begin
199199
select into sysrec * from system where name = new.sysname;
200200
if not found then
201-
raise exception''system "%" does not exist'', new.sysname;
201+
raise exception$q$system "%" does not exist$q$, new.sysname;
202202
end if;
203-
sname := ''IF.'' || new.sysname;
204-
sname := sname || ''.'';
203+
sname := 'IF.' || new.sysname;
204+
sname := sname || '.';
205205
sname := sname || new.ifname;
206206
if length(sname) > 20 then
207-
raise exception ''IFace slotname "%" too long (20 char max)'', sname;
207+
raise exception 'IFace slotname "%" too long (20 char max)', sname;
208208
end if;
209209
new.slotname := sname;
210210
return new;
211211
end;
212-
' language'plpgsql';
212+
$$ language plpgsql;
213213
create trigger tg_iface_biu before insert or update
214214
on IFace for each row execute procedure tg_iface_biu();
215215
-- ************************************************************
@@ -243,12 +243,10 @@ create trigger tg_hub_a after insert or update or delete
243243
-- ************************************************************
244244
-- * Support function to add/remove slots of Hub
245245
-- ************************************************************
246-
create function tg_hub_adjustslots(bpchar, integer, integer)
246+
create function tg_hub_adjustslots(hname bpchar,
247+
oldnslots integer,
248+
newnslots integer)
247249
returns integer as '
248-
declare
249-
hnamealias for $1;
250-
oldnslotsalias for $2;
251-
newnslotsalias for $3;
252250
begin
253251
if newnslots = oldnslots then
254252
return 0;
@@ -262,7 +260,7 @@ begin
262260
values (''HS.dummy'', hname, i, '''');
263261
end loop;
264262
return 0;
265-
end;
263+
end
266264
' language 'plpgsql';
267265
-- Test comments
268266
COMMENT ON FUNCTION tg_hub_adjustslots_wrong(bpchar, integer, integer) IS 'function with args';
@@ -589,11 +587,9 @@ create trigger tg_backlink_a after insert or update or delete
589587
-- * Support function to set the opponents backlink field
590588
-- * if it does not already point to the requested slot
591589
-- ************************************************************
592-
create function tg_backlink_set(bpchar, bpchar)
590+
create function tg_backlink_set(mynamebpchar, blname bpchar)
593591
returns integer as '
594592
declare
595-
mynamealias for $1;
596-
blnamealias for $2;
597593
mytypechar(2);
598594
linkchar(4);
599595
recrecord;
@@ -684,8 +680,8 @@ begin
684680
end if;
685681
return 0;
686682
end if;
687-
end;
688-
' language'plpgsql';
683+
end
684+
' language plpgsql;
689685
-- ************************************************************
690686
-- * AFTER INSERT or UPDATE or DELETE on slot with slotlink
691687
-- *- Ensure that the opponent correctly points back to us

‎src/test/regress/sql/plpgsql.sql

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,14 @@ create trigger tg_room_ad after delete
159159
-- * BEFORE INSERT or UPDATE on WSlot
160160
-- *- Check that room exists
161161
-- ************************************************************
162-
createfunctiontg_wslot_biu() returns triggeras'
162+
createfunctiontg_wslot_biu() returns triggeras$$
163163
begin
164164
ifcount(*)=0from Roomwhere roomno=new.roomno then
165-
raise exception''Room % does not exist'', new.roomno;
165+
raise exception'Room % does not exist',new.roomno;
166166
end if;
167167
return new;
168168
end;
169-
' language'plpgsql';
169+
$$ language plpgsql;
170170

171171
createtriggertg_wslot_biu before insertorupdate
172172
on WSlot for each row execute procedure tg_wslot_biu();
@@ -208,18 +208,18 @@ create trigger tg_pfield_ad after delete
208208
-- * BEFORE INSERT or UPDATE on PSlot
209209
-- *- Ensure that our patchfield does exist
210210
-- ************************************************************
211-
createfunctiontg_pslot_biu() returns triggeras'
211+
createfunctiontg_pslot_biu() returns triggeras$proc$
212212
declare
213213
pfrecrecord;
214214
rename new to ps;
215215
begin
216216
select into pfrec*from PFieldwhere name=ps.pfname;
217217
if not found then
218-
raise exception''Patchfield "%" does not exist'', ps.pfname;
218+
raise exception$$Patchfield"%" does not exist$$,ps.pfname;
219219
end if;
220220
return ps;
221221
end;
222-
' language'plpgsql';
222+
$proc$ language plpgsql;
223223

224224
createtriggertg_pslot_biu before insertorupdate
225225
on PSlot for each row execute procedure tg_pslot_biu();
@@ -246,25 +246,25 @@ create trigger tg_system_au after update
246246
-- * BEFORE INSERT or UPDATE on IFace
247247
-- *- set the slotname to IF.sysname.ifname
248248
-- ************************************************************
249-
createfunctiontg_iface_biu() returns triggeras'
249+
createfunctiontg_iface_biu() returns triggeras$$
250250
declare
251251
snametext;
252252
sysrecrecord;
253253
begin
254254
select into sysrec*from systemwhere name=new.sysname;
255255
if not found then
256-
raise exception''system "%" does not exist'', new.sysname;
256+
raise exception$q$system"%" does not exist$q$,new.sysname;
257257
end if;
258-
sname :=''IF.'' || new.sysname;
259-
sname := sname ||''.'';
258+
sname :='IF.'||new.sysname;
259+
sname := sname||'.';
260260
sname := sname||new.ifname;
261261
if length(sname)>20 then
262-
raise exception''IFace slotname "%" too long (20 char max)'', sname;
262+
raise exception'IFace slotname "%" too long (20 char max)', sname;
263263
end if;
264264
new.slotname := sname;
265265
return new;
266266
end;
267-
' language'plpgsql';
267+
$$ language plpgsql;
268268

269269
createtriggertg_iface_biu before insertorupdate
270270
on IFace for each row execute procedure tg_iface_biu();
@@ -304,12 +304,10 @@ create trigger tg_hub_a after insert or update or delete
304304
-- ************************************************************
305305
-- * Support function to add/remove slots of Hub
306306
-- ************************************************************
307-
createfunctiontg_hub_adjustslots(bpchar,integer,integer)
307+
createfunctiontg_hub_adjustslots(hname bpchar,
308+
oldnslotsinteger,
309+
newnslotsinteger)
308310
returnsintegeras'
309-
declare
310-
hnamealias for $1;
311-
oldnslotsalias for $2;
312-
newnslotsalias for $3;
313311
begin
314312
if newnslots = oldnslots then
315313
return 0;
@@ -323,7 +321,7 @@ begin
323321
values (''HS.dummy'', hname, i,'''');
324322
end loop;
325323
return 0;
326-
end;
324+
end
327325
' language'plpgsql';
328326

329327
-- Test comments
@@ -700,11 +698,9 @@ create trigger tg_backlink_a after insert or update or delete
700698
-- * Support function to set the opponents backlink field
701699
-- * if it does not already point to the requested slot
702700
-- ************************************************************
703-
createfunctiontg_backlink_set(bpchar, bpchar)
701+
createfunctiontg_backlink_set(mynamebpchar, blname bpchar)
704702
returnsintegeras'
705703
declare
706-
mynamealias for $1;
707-
blnamealias for $2;
708704
mytypechar(2);
709705
linkchar(4);
710706
recrecord;
@@ -797,8 +793,8 @@ begin
797793
end if;
798794
return 0;
799795
end if;
800-
end;
801-
' language'plpgsql';
796+
end
797+
' language plpgsql;
802798

803799

804800
-- ************************************************************

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp