Skip to content

Commit c9a21fe

Browse files
committed
Disable autovacuum in MERGE test script
Otherwise, it can fail given sufficient bad luck. Backpatch to 15. Discussion: https://postgr.es/m/537759.1663625579@sss.pgh.pa.us
1 parent 6f0dad8 commit c9a21fe

File tree

2 files changed

+110
-74
lines changed

2 files changed

+110
-74
lines changed

src/test/regress/expected/merge.out

Lines changed: 55 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
--
22
-- MERGE
33
--
4-
--\set VERBOSITY verbose
5-
--set debug_print_rewritten = true;
6-
--set debug_print_parse = true;
7-
--set debug_print_pretty = true;
84
CREATE USER regress_merge_privs;
95
CREATE USER regress_merge_no_privs;
106
DROP TABLE IF EXISTS target;
117
NOTICE: table "target" does not exist, skipping
128
DROP TABLE IF EXISTS source;
139
NOTICE: table "source" does not exist, skipping
14-
CREATE TABLE target (tid integer, balance integer);
15-
CREATE TABLE source (sid integer, delta integer); --no index
10+
CREATE TABLE target (tid integer, balance integer)
11+
WITH (autovacuum_enabled=off);
12+
CREATE TABLE source (sid integer, delta integer) -- no index
13+
WITH (autovacuum_enabled=off);
1614
INSERT INTO target VALUES (1, 10);
1715
INSERT INTO target VALUES (2, 20);
1816
INSERT INTO target VALUES (3, 30);
@@ -26,8 +24,10 @@ SELECT t.ctid is not null as matched, t.*, s.* FROM source s FULL OUTER JOIN tar
2624

2725
ALTER TABLE target OWNER TO regress_merge_privs;
2826
ALTER TABLE source OWNER TO regress_merge_privs;
29-
CREATE TABLE target2 (tid integer, balance integer);
30-
CREATE TABLE source2 (sid integer, delta integer);
27+
CREATE TABLE target2 (tid integer, balance integer)
28+
WITH (autovacuum_enabled=off);
29+
CREATE TABLE source2 (sid integer, delta integer)
30+
WITH (autovacuum_enabled=off);
3131
ALTER TABLE target2 OWNER TO regress_merge_no_privs;
3232
ALTER TABLE source2 OWNER TO regress_merge_no_privs;
3333
GRANT INSERT ON target TO regress_merge_no_privs;
@@ -664,8 +664,10 @@ WHEN MATCHED AND s.delta > 0 THEN
664664
ERROR: unreachable WHEN clause specified after unconditional WHEN clause
665665
ROLLBACK;
666666
-- conditional WHEN clause
667-
CREATE TABLE wq_target (tid integer not null, balance integer DEFAULT -1);
668-
CREATE TABLE wq_source (balance integer, sid integer);
667+
CREATE TABLE wq_target (tid integer not null, balance integer DEFAULT -1)
668+
WITH (autovacuum_enabled=off);
669+
CREATE TABLE wq_source (balance integer, sid integer)
670+
WITH (autovacuum_enabled=off);
669671
INSERT INTO wq_source (sid, balance) VALUES (1, 100);
670672
BEGIN;
671673
-- try a simple INSERT with default values first
@@ -1212,8 +1214,10 @@ SELECT * FROM target ORDER BY tid;
12121214

12131215
ROLLBACK;
12141216
-- subqueries in source relation
1215-
CREATE TABLE sq_target (tid integer NOT NULL, balance integer);
1216-
CREATE TABLE sq_source (delta integer, sid integer, balance integer DEFAULT 0);
1217+
CREATE TABLE sq_target (tid integer NOT NULL, balance integer)
1218+
WITH (autovacuum_enabled=off);
1219+
CREATE TABLE sq_source (delta integer, sid integer, balance integer DEFAULT 0)
1220+
WITH (autovacuum_enabled=off);
12171221
INSERT INTO sq_target(tid, balance) VALUES (1,100), (2,200), (3,300);
12181222
INSERT INTO sq_source(sid, delta) VALUES (1,10), (2,20), (4,40);
12191223
BEGIN;
@@ -1317,8 +1321,10 @@ LINE 10: RETURNING *;
13171321
^
13181322
ROLLBACK;
13191323
-- EXPLAIN
1320-
CREATE TABLE ex_mtarget (a int, b int);
1321-
CREATE TABLE ex_msource (a int, b int);
1324+
CREATE TABLE ex_mtarget (a int, b int)
1325+
WITH (autovacuum_enabled=off);
1326+
CREATE TABLE ex_msource (a int, b int)
1327+
WITH (autovacuum_enabled=off);
13221328
INSERT INTO ex_mtarget SELECT i, i*10 FROM generate_series(1,100,2) i;
13231329
INSERT INTO ex_msource SELECT i, i*10 FROM generate_series(1,100,1) i;
13241330
CREATE FUNCTION explain_merge(query text) RETURNS SETOF text
@@ -1510,10 +1516,14 @@ DROP TABLE sq_target, sq_source CASCADE;
15101516
NOTICE: drop cascades to view v
15111517
CREATE TABLE pa_target (tid integer, balance float, val text)
15121518
PARTITION BY LIST (tid);
1513-
CREATE TABLE part1 PARTITION OF pa_target FOR VALUES IN (1,4);
1514-
CREATE TABLE part2 PARTITION OF pa_target FOR VALUES IN (2,5,6);
1515-
CREATE TABLE part3 PARTITION OF pa_target FOR VALUES IN (3,8,9);
1516-
CREATE TABLE part4 PARTITION OF pa_target DEFAULT;
1519+
CREATE TABLE part1 PARTITION OF pa_target FOR VALUES IN (1,4)
1520+
WITH (autovacuum_enabled=off);
1521+
CREATE TABLE part2 PARTITION OF pa_target FOR VALUES IN (2,5,6)
1522+
WITH (autovacuum_enabled=off);
1523+
CREATE TABLE part3 PARTITION OF pa_target FOR VALUES IN (3,8,9)
1524+
WITH (autovacuum_enabled=off);
1525+
CREATE TABLE part4 PARTITION OF pa_target DEFAULT
1526+
WITH (autovacuum_enabled=off);
15171527
CREATE TABLE pa_source (sid integer, delta float);
15181528
-- insert many rows to the source table
15191529
INSERT INTO pa_source SELECT id, id * 10 FROM generate_series(1,14) AS id;
@@ -1617,10 +1627,14 @@ DROP TABLE pa_target CASCADE;
16171627
-- partitions which have columns in different order, dropped columns etc.
16181628
CREATE TABLE pa_target (tid integer, balance float, val text)
16191629
PARTITION BY LIST (tid);
1620-
CREATE TABLE part1 (tid integer, balance float, val text);
1621-
CREATE TABLE part2 (balance float, tid integer, val text);
1622-
CREATE TABLE part3 (tid integer, balance float, val text);
1623-
CREATE TABLE part4 (extraid text, tid integer, balance float, val text);
1630+
CREATE TABLE part1 (tid integer, balance float, val text)
1631+
WITH (autovacuum_enabled=off);
1632+
CREATE TABLE part2 (balance float, tid integer, val text)
1633+
WITH (autovacuum_enabled=off);
1634+
CREATE TABLE part3 (tid integer, balance float, val text)
1635+
WITH (autovacuum_enabled=off);
1636+
CREATE TABLE part4 (extraid text, tid integer, balance float, val text)
1637+
WITH (autovacuum_enabled=off);
16241638
ALTER TABLE part4 DROP COLUMN extraid;
16251639
ALTER TABLE pa_target ATTACH PARTITION part1 FOR VALUES IN (1,4);
16261640
ALTER TABLE pa_target ATTACH PARTITION part2 FOR VALUES IN (2,5,6);
@@ -1729,17 +1743,18 @@ CREATE TABLE part_m01 PARTITION OF pa_target
17291743
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01')
17301744
PARTITION BY LIST (tid);
17311745
CREATE TABLE part_m01_odd PARTITION OF part_m01
1732-
FOR VALUES IN (1,3,5,7,9);
1746+
FOR VALUES IN (1,3,5,7,9) WITH (autovacuum_enabled=off);
17331747
CREATE TABLE part_m01_even PARTITION OF part_m01
1734-
FOR VALUES IN (2,4,6,8);
1748+
FOR VALUES IN (2,4,6,8) WITH (autovacuum_enabled=off);
17351749
CREATE TABLE part_m02 PARTITION OF pa_target
17361750
FOR VALUES FROM ('2017-02-01') TO ('2017-03-01')
17371751
PARTITION BY LIST (tid);
17381752
CREATE TABLE part_m02_odd PARTITION OF part_m02
1739-
FOR VALUES IN (1,3,5,7,9);
1753+
FOR VALUES IN (1,3,5,7,9) WITH (autovacuum_enabled=off);
17401754
CREATE TABLE part_m02_even PARTITION OF part_m02
1741-
FOR VALUES IN (2,4,6,8);
1742-
CREATE TABLE pa_source (sid integer, delta float);
1755+
FOR VALUES IN (2,4,6,8) WITH (autovacuum_enabled=off);
1756+
CREATE TABLE pa_source (sid integer, delta float)
1757+
WITH (autovacuum_enabled=off);
17431758
-- insert many rows to the source table
17441759
INSERT INTO pa_source SELECT id, id * 10 FROM generate_series(1,14) AS id;
17451760
-- insert a few rows in the target table (odd numbered tid)
@@ -1772,9 +1787,12 @@ ROLLBACK;
17721787
DROP TABLE pa_source;
17731788
DROP TABLE pa_target CASCADE;
17741789
-- some complex joins on the source side
1775-
CREATE TABLE cj_target (tid integer, balance float, val text);
1776-
CREATE TABLE cj_source1 (sid1 integer, scat integer, delta integer);
1777-
CREATE TABLE cj_source2 (sid2 integer, sval text);
1790+
CREATE TABLE cj_target (tid integer, balance float, val text)
1791+
WITH (autovacuum_enabled=off);
1792+
CREATE TABLE cj_source1 (sid1 integer, scat integer, delta integer)
1793+
WITH (autovacuum_enabled=off);
1794+
CREATE TABLE cj_source2 (sid2 integer, sval text)
1795+
WITH (autovacuum_enabled=off);
17781796
INSERT INTO cj_source1 VALUES (1, 10, 100);
17791797
INSERT INTO cj_source1 VALUES (1, 20, 200);
17801798
INSERT INTO cj_source1 VALUES (2, 20, 300);
@@ -1833,7 +1851,8 @@ WHEN NOT MATCHED THEN
18331851
INSERT VALUES (s2.sid, delta, sval);
18341852
DROP TABLE cj_source2, cj_source1, cj_target;
18351853
-- Function scans
1836-
CREATE TABLE fs_target (a int, b int, c text);
1854+
CREATE TABLE fs_target (a int, b int, c text)
1855+
WITH (autovacuum_enabled=off);
18371856
MERGE INTO fs_target t
18381857
USING generate_series(1,100,1) AS id
18391858
ON t.a = id
@@ -1863,21 +1882,21 @@ CREATE TABLE measurement (
18631882
logdate date not null,
18641883
peaktemp int,
18651884
unitsales int
1866-
);
1885+
) WITH (autovacuum_enabled=off);
18671886
CREATE TABLE measurement_y2006m02 (
18681887
CHECK ( logdate >= DATE '2006-02-01' AND logdate < DATE '2006-03-01' )
1869-
) INHERITS (measurement);
1888+
) INHERITS (measurement) WITH (autovacuum_enabled=off);
18701889
CREATE TABLE measurement_y2006m03 (
18711890
CHECK ( logdate >= DATE '2006-03-01' AND logdate < DATE '2006-04-01' )
1872-
) INHERITS (measurement);
1891+
) INHERITS (measurement) WITH (autovacuum_enabled=off);
18731892
CREATE TABLE measurement_y2007m01 (
18741893
filler text,
18751894
peaktemp int,
18761895
logdate date not null,
18771896
city_id int not null,
18781897
unitsales int
18791898
CHECK ( logdate >= DATE '2007-01-01' AND logdate < DATE '2007-02-01')
1880-
);
1899+
) WITH (autovacuum_enabled=off);
18811900
ALTER TABLE measurement_y2007m01 DROP COLUMN filler;
18821901
ALTER TABLE measurement_y2007m01 INHERIT measurement;
18831902
CREATE OR REPLACE FUNCTION measurement_insert_trigger()
@@ -1919,7 +1938,7 @@ SELECT tableoid::regclass, * FROM measurement ORDER BY city_id, logdate;
19191938
measurement_y2007m01 | 1 | 01-17-2007 | 10 | 10
19201939
(6 rows)
19211940

1922-
CREATE TABLE new_measurement (LIKE measurement);
1941+
CREATE TABLE new_measurement (LIKE measurement) WITH (autovacuum_enabled=off);
19231942
INSERT INTO new_measurement VALUES (1, '2006-03-01', 20, 10);
19241943
INSERT INTO new_measurement VALUES (1, '2006-02-16', 50, 10);
19251944
INSERT INTO new_measurement VALUES (2, '2006-02-10', 20, 20);

src/test/regress/sql/merge.sql

Lines changed: 55 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
--
22
-- MERGE
33
--
4-
--\set VERBOSITY verbose
5-
6-
--set debug_print_rewritten = true;
7-
--set debug_print_parse = true;
8-
--set debug_print_pretty = true;
9-
104

115
CREATE USER regress_merge_privs;
126
CREATE USER regress_merge_no_privs;
137
DROP TABLE IF EXISTS target;
148
DROP TABLE IF EXISTS source;
15-
CREATE TABLE target (tid integer, balance integer);
16-
CREATE TABLE source (sid integer, delta integer); --no index
9+
CREATE TABLE target (tid integer, balance integer)
10+
WITH (autovacuum_enabled=off);
11+
CREATE TABLE source (sid integer, delta integer) -- no index
12+
WITH (autovacuum_enabled=off);
1713
INSERT INTO target VALUES (1, 10);
1814
INSERT INTO target VALUES (2, 20);
1915
INSERT INTO target VALUES (3, 30);
@@ -22,8 +18,10 @@ SELECT t.ctid is not null as matched, t.*, s.* FROM source s FULL OUTER JOIN tar
2218
ALTER TABLE target OWNER TO regress_merge_privs;
2319
ALTER TABLE source OWNER TO regress_merge_privs;
2420

25-
CREATE TABLE target2 (tid integer, balance integer);
26-
CREATE TABLE source2 (sid integer, delta integer);
21+
CREATE TABLE target2 (tid integer, balance integer)
22+
WITH (autovacuum_enabled=off);
23+
CREATE TABLE source2 (sid integer, delta integer)
24+
WITH (autovacuum_enabled=off);
2725

2826
ALTER TABLE target2 OWNER TO regress_merge_no_privs;
2927
ALTER TABLE source2 OWNER TO regress_merge_no_privs;
@@ -445,8 +443,10 @@ WHEN MATCHED AND s.delta > 0 THEN
445443
ROLLBACK;
446444

447445
-- conditional WHEN clause
448-
CREATE TABLE wq_target (tid integer not null, balance integer DEFAULT -1);
449-
CREATE TABLE wq_source (balance integer, sid integer);
446+
CREATE TABLE wq_target (tid integer not null, balance integer DEFAULT -1)
447+
WITH (autovacuum_enabled=off);
448+
CREATE TABLE wq_source (balance integer, sid integer)
449+
WITH (autovacuum_enabled=off);
450450

451451
INSERT INTO wq_source (sid, balance) VALUES (1, 100);
452452

@@ -787,8 +787,10 @@ ROLLBACK;
787787

788788
-- subqueries in source relation
789789

790-
CREATE TABLE sq_target (tid integer NOT NULL, balance integer);
791-
CREATE TABLE sq_source (delta integer, sid integer, balance integer DEFAULT 0);
790+
CREATE TABLE sq_target (tid integer NOT NULL, balance integer)
791+
WITH (autovacuum_enabled=off);
792+
CREATE TABLE sq_source (delta integer, sid integer, balance integer DEFAULT 0)
793+
WITH (autovacuum_enabled=off);
792794

793795
INSERT INTO sq_target(tid, balance) VALUES (1,100), (2,200), (3,300);
794796
INSERT INTO sq_source(sid, delta) VALUES (1,10), (2,20), (4,40);
@@ -874,8 +876,10 @@ RETURNING *;
874876
ROLLBACK;
875877

876878
-- EXPLAIN
877-
CREATE TABLE ex_mtarget (a int, b int);
878-
CREATE TABLE ex_msource (a int, b int);
879+
CREATE TABLE ex_mtarget (a int, b int)
880+
WITH (autovacuum_enabled=off);
881+
CREATE TABLE ex_msource (a int, b int)
882+
WITH (autovacuum_enabled=off);
879883
INSERT INTO ex_mtarget SELECT i, i*10 FROM generate_series(1,100,2) i;
880884
INSERT INTO ex_msource SELECT i, i*10 FROM generate_series(1,100,1) i;
881885

@@ -972,10 +976,14 @@ DROP TABLE sq_target, sq_source CASCADE;
972976
CREATE TABLE pa_target (tid integer, balance float, val text)
973977
PARTITION BY LIST (tid);
974978

975-
CREATE TABLE part1 PARTITION OF pa_target FOR VALUES IN (1,4);
976-
CREATE TABLE part2 PARTITION OF pa_target FOR VALUES IN (2,5,6);
977-
CREATE TABLE part3 PARTITION OF pa_target FOR VALUES IN (3,8,9);
978-
CREATE TABLE part4 PARTITION OF pa_target DEFAULT;
979+
CREATE TABLE part1 PARTITION OF pa_target FOR VALUES IN (1,4)
980+
WITH (autovacuum_enabled=off);
981+
CREATE TABLE part2 PARTITION OF pa_target FOR VALUES IN (2,5,6)
982+
WITH (autovacuum_enabled=off);
983+
CREATE TABLE part3 PARTITION OF pa_target FOR VALUES IN (3,8,9)
984+
WITH (autovacuum_enabled=off);
985+
CREATE TABLE part4 PARTITION OF pa_target DEFAULT
986+
WITH (autovacuum_enabled=off);
979987

980988
CREATE TABLE pa_source (sid integer, delta float);
981989
-- insert many rows to the source table
@@ -1026,10 +1034,14 @@ DROP TABLE pa_target CASCADE;
10261034
CREATE TABLE pa_target (tid integer, balance float, val text)
10271035
PARTITION BY LIST (tid);
10281036

1029-
CREATE TABLE part1 (tid integer, balance float, val text);
1030-
CREATE TABLE part2 (balance float, tid integer, val text);
1031-
CREATE TABLE part3 (tid integer, balance float, val text);
1032-
CREATE TABLE part4 (extraid text, tid integer, balance float, val text);
1037+
CREATE TABLE part1 (tid integer, balance float, val text)
1038+
WITH (autovacuum_enabled=off);
1039+
CREATE TABLE part2 (balance float, tid integer, val text)
1040+
WITH (autovacuum_enabled=off);
1041+
CREATE TABLE part3 (tid integer, balance float, val text)
1042+
WITH (autovacuum_enabled=off);
1043+
CREATE TABLE part4 (extraid text, tid integer, balance float, val text)
1044+
WITH (autovacuum_enabled=off);
10331045
ALTER TABLE part4 DROP COLUMN extraid;
10341046

10351047
ALTER TABLE pa_target ATTACH PARTITION part1 FOR VALUES IN (1,4);
@@ -1088,18 +1100,19 @@ CREATE TABLE part_m01 PARTITION OF pa_target
10881100
FOR VALUES FROM ('2017-01-01') TO ('2017-02-01')
10891101
PARTITION BY LIST (tid);
10901102
CREATE TABLE part_m01_odd PARTITION OF part_m01
1091-
FOR VALUES IN (1,3,5,7,9);
1103+
FOR VALUES IN (1,3,5,7,9) WITH (autovacuum_enabled=off);
10921104
CREATE TABLE part_m01_even PARTITION OF part_m01
1093-
FOR VALUES IN (2,4,6,8);
1105+
FOR VALUES IN (2,4,6,8) WITH (autovacuum_enabled=off);
10941106
CREATE TABLE part_m02 PARTITION OF pa_target
10951107
FOR VALUES FROM ('2017-02-01') TO ('2017-03-01')
10961108
PARTITION BY LIST (tid);
10971109
CREATE TABLE part_m02_odd PARTITION OF part_m02
1098-
FOR VALUES IN (1,3,5,7,9);
1110+
FOR VALUES IN (1,3,5,7,9) WITH (autovacuum_enabled=off);
10991111
CREATE TABLE part_m02_even PARTITION OF part_m02
1100-
FOR VALUES IN (2,4,6,8);
1112+
FOR VALUES IN (2,4,6,8) WITH (autovacuum_enabled=off);
11011113

1102-
CREATE TABLE pa_source (sid integer, delta float);
1114+
CREATE TABLE pa_source (sid integer, delta float)
1115+
WITH (autovacuum_enabled=off);
11031116
-- insert many rows to the source table
11041117
INSERT INTO pa_source SELECT id, id * 10 FROM generate_series(1,14) AS id;
11051118
-- insert a few rows in the target table (odd numbered tid)
@@ -1123,9 +1136,12 @@ DROP TABLE pa_target CASCADE;
11231136

11241137
-- some complex joins on the source side
11251138

1126-
CREATE TABLE cj_target (tid integer, balance float, val text);
1127-
CREATE TABLE cj_source1 (sid1 integer, scat integer, delta integer);
1128-
CREATE TABLE cj_source2 (sid2 integer, sval text);
1139+
CREATE TABLE cj_target (tid integer, balance float, val text)
1140+
WITH (autovacuum_enabled=off);
1141+
CREATE TABLE cj_source1 (sid1 integer, scat integer, delta integer)
1142+
WITH (autovacuum_enabled=off);
1143+
CREATE TABLE cj_source2 (sid2 integer, sval text)
1144+
WITH (autovacuum_enabled=off);
11291145
INSERT INTO cj_source1 VALUES (1, 10, 100);
11301146
INSERT INTO cj_source1 VALUES (1, 20, 200);
11311147
INSERT INTO cj_source1 VALUES (2, 20, 300);
@@ -1186,7 +1202,8 @@ WHEN NOT MATCHED THEN
11861202
DROP TABLE cj_source2, cj_source1, cj_target;
11871203

11881204
-- Function scans
1189-
CREATE TABLE fs_target (a int, b int, c text);
1205+
CREATE TABLE fs_target (a int, b int, c text)
1206+
WITH (autovacuum_enabled=off);
11901207
MERGE INTO fs_target t
11911208
USING generate_series(1,100,1) AS id
11921209
ON t.a = id
@@ -1215,21 +1232,21 @@ CREATE TABLE measurement (
12151232
logdate date not null,
12161233
peaktemp int,
12171234
unitsales int
1218-
);
1235+
) WITH (autovacuum_enabled=off);
12191236
CREATE TABLE measurement_y2006m02 (
12201237
CHECK ( logdate >= DATE '2006-02-01' AND logdate < DATE '2006-03-01' )
1221-
) INHERITS (measurement);
1238+
) INHERITS (measurement) WITH (autovacuum_enabled=off);
12221239
CREATE TABLE measurement_y2006m03 (
12231240
CHECK ( logdate >= DATE '2006-03-01' AND logdate < DATE '2006-04-01' )
1224-
) INHERITS (measurement);
1241+
) INHERITS (measurement) WITH (autovacuum_enabled=off);
12251242
CREATE TABLE measurement_y2007m01 (
12261243
filler text,
12271244
peaktemp int,
12281245
logdate date not null,
12291246
city_id int not null,
12301247
unitsales int
12311248
CHECK ( logdate >= DATE '2007-01-01' AND logdate < DATE '2007-02-01')
1232-
);
1249+
) WITH (autovacuum_enabled=off);
12331250
ALTER TABLE measurement_y2007m01 DROP COLUMN filler;
12341251
ALTER TABLE measurement_y2007m01 INHERIT measurement;
12351252

@@ -1264,7 +1281,7 @@ INSERT INTO measurement VALUES (1, '2007-01-17', 10, 10);
12641281

12651282
SELECT tableoid::regclass, * FROM measurement ORDER BY city_id, logdate;
12661283

1267-
CREATE TABLE new_measurement (LIKE measurement);
1284+
CREATE TABLE new_measurement (LIKE measurement) WITH (autovacuum_enabled=off);
12681285
INSERT INTO new_measurement VALUES (1, '2006-03-01', 20, 10);
12691286
INSERT INTO new_measurement VALUES (1, '2006-02-16', 50, 10);
12701287
INSERT INTO new_measurement VALUES (2, '2006-02-10', 20, 20);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy