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

Commitbd9b4f1

Browse files
committed
Improve largeobject regression test to show size of object read from file.
The idea here is to provide a more easily diagnosable failure diff whenthe problem is that tenk.data has been DOS-ified, as I believe to behappening currently on buildfarm member hamerkop. Per suggestion fromMagnus Hagander.Also, sync output/largeobject_1.source with current regression test.Failure to do that in commit3a0e4d3turns out to be the real reason that hamerkop has been complaining.
1 parentb8fbbcf commitbd9b4f1

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

‎src/test/regress/input/largeobject.source

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@ INSERT INTO lotest_stash_values (loid) SELECT lo_import('@abs_srcdir@/data/tenk.
136136
BEGIN;
137137
UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer));
138138

139+
-- verify length of large object
140+
SELECT lo_lseek(fd, 0, 2) FROM lotest_stash_values;
141+
139142
-- with the default BLKSZ, LOBLKSZ = 2048, so this positions us for a block
140143
-- edge case
141144
SELECT lo_lseek(fd, 2030, 0) FROM lotest_stash_values;

‎src/test/regress/output/largeobject.source

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,13 @@ TRUNCATE lotest_stash_values;
222222
INSERT INTO lotest_stash_values (loid) SELECT lo_import('@abs_srcdir@/data/tenk.data');
223223
BEGIN;
224224
UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer));
225+
-- verify length of large object
226+
SELECT lo_lseek(fd, 0, 2) FROM lotest_stash_values;
227+
lo_lseek
228+
----------
229+
670800
230+
(1 row)
231+
225232
-- with the default BLKSZ, LOBLKSZ = 2048, so this positions us for a block
226233
-- edge case
227234
SELECT lo_lseek(fd, 2030, 0) FROM lotest_stash_values;

‎src/test/regress/output/largeobject_1.source

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,25 @@ CREATE TABLE lotest_stash_values (loid oid, fd integer);
99
-- The mode arg to lo_creat is unused, some vestigal holdover from ancient times
1010
-- returns the large object id
1111
INSERT INTO lotest_stash_values (loid) SELECT lo_creat(42);
12+
-- Test ALTER LARGE OBJECT
13+
CREATE ROLE regresslo;
14+
DO $$
15+
BEGIN
16+
EXECUTE 'ALTER LARGE OBJECT ' || (select loid from lotest_stash_values)
17+
|| ' OWNER TO regresslo';
18+
END
19+
$$;
20+
SELECT
21+
rol.rolname
22+
FROM
23+
lotest_stash_values s
24+
JOIN pg_largeobject_metadata lo ON s.loid = lo.oid
25+
JOIN pg_authid rol ON lo.lomowner = rol.oid;
26+
rolname
27+
-----------
28+
regresslo
29+
(1 row)
30+
1231
-- NOTE: large objects require transactions
1332
BEGIN;
1433
-- lo_open(lobjId oid, mode integer) returns integer
@@ -203,6 +222,13 @@ TRUNCATE lotest_stash_values;
203222
INSERT INTO lotest_stash_values (loid) SELECT lo_import('@abs_srcdir@/data/tenk.data');
204223
BEGIN;
205224
UPDATE lotest_stash_values SET fd=lo_open(loid, CAST(x'20000' | x'40000' AS integer));
225+
-- verify length of large object
226+
SELECT lo_lseek(fd, 0, 2) FROM lotest_stash_values;
227+
lo_lseek
228+
----------
229+
680801
230+
(1 row)
231+
206232
-- with the default BLKSZ, LOBLKSZ = 2048, so this positions us for a block
207233
-- edge case
208234
SELECT lo_lseek(fd, 2030, 0) FROM lotest_stash_values;
@@ -284,3 +310,4 @@ SELECT lo_unlink(loid) FROM lotest_stash_values;
284310

285311
\lo_unlink :newloid
286312
TRUNCATE lotest_stash_values;
313+
DROP ROLE regresslo;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp