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

Commit6c29888

Browse files
committed
Update oidjoins regression test for v13.
We seem to have forgotten to do this in the v12 cycle, so add it asa task in the RELEASE_CHANGES list, in hopes we won't forget again.While here, fix findoidjoins.c so that it actually works in thenew dispensation where OID is a regular column, and change it to onlyconsider system relations (this avoids being fooled by the OID columnin the brintest test table).Also tweak the largeobject test so that the somewhat-recently-addedmanual creation of a LO with an OID in the system range doesn'tfool findoidjoins.c. For the moment I just made that use an unusedOID, but we might have to find a more robust solution someday.
1 parent89a7d21 commit6c29888

File tree

8 files changed

+101
-14
lines changed

8 files changed

+101
-14
lines changed

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,46 @@ WHEREstaop5 != 0 AND
961961
------+--------
962962
(0 rows)
963963

964+
SELECTctid, stacoll1
965+
FROMpg_catalog.pg_statistic fk
966+
WHEREstacoll1 != 0 AND
967+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll1);
968+
ctid | stacoll1
969+
------+----------
970+
(0 rows)
971+
972+
SELECTctid, stacoll2
973+
FROMpg_catalog.pg_statistic fk
974+
WHEREstacoll2 != 0 AND
975+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll2);
976+
ctid | stacoll2
977+
------+----------
978+
(0 rows)
979+
980+
SELECTctid, stacoll3
981+
FROMpg_catalog.pg_statistic fk
982+
WHEREstacoll3 != 0 AND
983+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll3);
984+
ctid | stacoll3
985+
------+----------
986+
(0 rows)
987+
988+
SELECTctid, stacoll4
989+
FROMpg_catalog.pg_statistic fk
990+
WHEREstacoll4 != 0 AND
991+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll4);
992+
ctid | stacoll4
993+
------+----------
994+
(0 rows)
995+
996+
SELECTctid, stacoll5
997+
FROMpg_catalog.pg_statistic fk
998+
WHEREstacoll5 != 0 AND
999+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll5);
1000+
ctid | stacoll5
1001+
------+----------
1002+
(0 rows)
1003+
9641004
SELECTctid, stxrelid
9651005
FROMpg_catalog.pg_statistic_ext fk
9661006
WHEREstxrelid != 0 AND
@@ -1041,6 +1081,14 @@ WHEREtgrelid != 0 AND
10411081
------+---------
10421082
(0 rows)
10431083

1084+
SELECTctid, tgparentid
1085+
FROMpg_catalog.pg_trigger fk
1086+
WHEREtgparentid != 0 AND
1087+
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_trigger pk WHERE pk.oid = fk.tgparentid);
1088+
ctid | tgparentid
1089+
------+------------
1090+
(0 rows)
1091+
10441092
SELECTctid, tgfoid
10451093
FROMpg_catalog.pg_trigger fk
10461094
WHEREtgfoid != 0 AND

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,9 @@ SELECT lo_get(:newloid);
253253

254254
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
255255
-- this one intentionally has an OID in the system range
256-
SELECT lo_create(3001);
256+
SELECT lo_create(2121);
257257

258-
COMMENT ON LARGE OBJECT3001 IS 'testing comments';
258+
COMMENT ON LARGE OBJECT2121 IS 'testing comments';
259259

260260
-- Clean up
261261
DROP TABLE lotest_stash_values;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,13 @@ SELECT lo_get(:newloid);
469469

470470
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
471471
-- this one intentionally has an OID in the system range
472-
SELECT lo_create(3001);
472+
SELECT lo_create(2121);
473473
lo_create
474474
-----------
475-
3001
475+
2121
476476
(1 row)
477477

478-
COMMENT ON LARGE OBJECT3001 IS 'testing comments';
478+
COMMENT ON LARGE OBJECT2121 IS 'testing comments';
479479
-- Clean up
480480
DROP TABLE lotest_stash_values;
481481
DROP ROLE regress_lo_user;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,13 @@ SELECT lo_get(:newloid);
469469

470470
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
471471
-- this one intentionally has an OID in the system range
472-
SELECT lo_create(3001);
472+
SELECT lo_create(2121);
473473
lo_create
474474
-----------
475-
3001
475+
2121
476476
(1 row)
477477

478-
COMMENT ON LARGE OBJECT3001 IS 'testing comments';
478+
COMMENT ON LARGE OBJECT2121 IS 'testing comments';
479479
-- Clean up
480480
DROP TABLE lotest_stash_values;
481481
DROP ROLE regress_lo_user;

‎src/test/regress/sql/oidjoins.sql

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,26 @@ SELECTctid, staop5
481481
FROMpg_catalog.pg_statistic fk
482482
WHEREstaop5!=0AND
483483
NOT EXISTS(SELECT1FROMpg_catalog.pg_operator pkWHEREpk.oid=fk.staop5);
484+
SELECTctid, stacoll1
485+
FROMpg_catalog.pg_statistic fk
486+
WHEREstacoll1!=0AND
487+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.stacoll1);
488+
SELECTctid, stacoll2
489+
FROMpg_catalog.pg_statistic fk
490+
WHEREstacoll2!=0AND
491+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.stacoll2);
492+
SELECTctid, stacoll3
493+
FROMpg_catalog.pg_statistic fk
494+
WHEREstacoll3!=0AND
495+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.stacoll3);
496+
SELECTctid, stacoll4
497+
FROMpg_catalog.pg_statistic fk
498+
WHEREstacoll4!=0AND
499+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.stacoll4);
500+
SELECTctid, stacoll5
501+
FROMpg_catalog.pg_statistic fk
502+
WHEREstacoll5!=0AND
503+
NOT EXISTS(SELECT1FROMpg_catalog.pg_collation pkWHEREpk.oid=fk.stacoll5);
484504
SELECTctid, stxrelid
485505
FROMpg_catalog.pg_statistic_ext fk
486506
WHEREstxrelid!=0AND
@@ -521,6 +541,10 @@ SELECTctid, tgrelid
521541
FROMpg_catalog.pg_trigger fk
522542
WHEREtgrelid!=0AND
523543
NOT EXISTS(SELECT1FROMpg_catalog.pg_class pkWHEREpk.oid=fk.tgrelid);
544+
SELECTctid, tgparentid
545+
FROMpg_catalog.pg_trigger fk
546+
WHEREtgparentid!=0AND
547+
NOT EXISTS(SELECT1FROMpg_catalog.pg_trigger pkWHEREpk.oid=fk.tgparentid);
524548
SELECTctid, tgfoid
525549
FROMpg_catalog.pg_trigger fk
526550
WHEREtgfoid!=0AND

‎src/tools/RELEASE_CHANGES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ but there may be reasons to do them at other times as well.
8080
* Update Unicode data: Edit UNICODE_VERSION and CLDR_VERSION in
8181
src/Makefile.global.in, run make update-unicode, and commit.
8282

83+
* Update the oidjoins regression test (see src/tools/findoidjoins/).
84+
8385

8486
Starting a New Development Cycle
8587
================================

‎src/tools/findoidjoins/README

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,15 +180,22 @@ Join pg_catalog.pg_statistic.staop2 => pg_catalog.pg_operator.oid
180180
Join pg_catalog.pg_statistic.staop3 => pg_catalog.pg_operator.oid
181181
Join pg_catalog.pg_statistic.staop4 => pg_catalog.pg_operator.oid
182182
Join pg_catalog.pg_statistic.staop5 => pg_catalog.pg_operator.oid
183+
Join pg_catalog.pg_statistic.stacoll1 => pg_catalog.pg_collation.oid
184+
Join pg_catalog.pg_statistic.stacoll2 => pg_catalog.pg_collation.oid
185+
Join pg_catalog.pg_statistic.stacoll3 => pg_catalog.pg_collation.oid
186+
Join pg_catalog.pg_statistic.stacoll4 => pg_catalog.pg_collation.oid
187+
Join pg_catalog.pg_statistic.stacoll5 => pg_catalog.pg_collation.oid
183188
Join pg_catalog.pg_statistic_ext.stxrelid => pg_catalog.pg_class.oid
184189
Join pg_catalog.pg_statistic_ext.stxnamespace => pg_catalog.pg_namespace.oid
185190
Join pg_catalog.pg_statistic_ext.stxowner => pg_catalog.pg_authid.oid
191+
Join pg_catalog.pg_statistic_ext_data.stxoid => pg_catalog.pg_statistic_ext.oid
186192
Join pg_catalog.pg_tablespace.spcowner => pg_catalog.pg_authid.oid
187193
Join pg_catalog.pg_transform.trftype => pg_catalog.pg_type.oid
188194
Join pg_catalog.pg_transform.trflang => pg_catalog.pg_language.oid
189195
Join pg_catalog.pg_transform.trffromsql => pg_catalog.pg_proc.oid
190196
Join pg_catalog.pg_transform.trftosql => pg_catalog.pg_proc.oid
191197
Join pg_catalog.pg_trigger.tgrelid => pg_catalog.pg_class.oid
198+
Join pg_catalog.pg_trigger.tgparentid => pg_catalog.pg_trigger.oid
192199
Join pg_catalog.pg_trigger.tgfoid => pg_catalog.pg_proc.oid
193200
Join pg_catalog.pg_trigger.tgconstrrelid => pg_catalog.pg_class.oid
194201
Join pg_catalog.pg_trigger.tgconstrindid => pg_catalog.pg_class.oid

‎src/tools/findoidjoins/findoidjoins.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*/
88
#include"postgres_fe.h"
99

10+
#include"access/transam.h"
1011
#include"catalog/pg_class_d.h"
1112

1213
#include"fe_utils/connect.h"
@@ -55,18 +56,20 @@ main(int argc, char **argv)
5556
}
5657
PQclear(res);
5758

58-
/* Get a list of relations that have OIDs */
59+
/* Get a list ofsystemrelations that have OIDs */
5960

60-
printfPQExpBuffer(&sql,"%s",
61+
printfPQExpBuffer(&sql,
6162
"SET search_path = public;"
6263
"SELECT c.relname, (SELECT nspname FROM "
6364
"pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname "
6465
"FROM pg_catalog.pg_class c "
6566
"WHERE c.relkind = "CppAsString2(RELKIND_RELATION)
67+
" AND c.oid < '%u'"
6668
" AND EXISTS(SELECT * FROM pg_attribute a"
6769
" WHERE a.attrelid = c.oid AND a.attname = 'oid' "
6870
" AND a.atttypid = 'oid'::regtype)"
69-
"ORDER BY nspname, c.relname"
71+
"ORDER BY nspname, c.relname",
72+
FirstNormalObjectId
7073
);
7174

7275
res=PQexec(conn,sql.data);
@@ -77,15 +80,17 @@ main(int argc, char **argv)
7780
}
7881
pkrel_res=res;
7982

80-
/* Get a list of columns of OID type (or any OID-alias type) */
83+
/* Get a list ofsystemcolumns of OID type (or any OID-alias type) */
8184

82-
printfPQExpBuffer(&sql,"%s",
85+
printfPQExpBuffer(&sql,
8386
"SELECT c.relname, "
8487
"(SELECT nspname FROM pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname, "
8588
"a.attname "
8689
"FROM pg_catalog.pg_class c, pg_catalog.pg_attribute a "
8790
"WHERE a.attnum > 0"
91+
" AND a.attname != 'oid'"
8892
" AND c.relkind = "CppAsString2(RELKIND_RELATION)
93+
" AND c.oid < '%u'"
8994
" AND a.attrelid = c.oid"
9095
" AND a.atttypid IN ('pg_catalog.oid'::regtype, "
9196
" 'pg_catalog.regclass'::regtype, "
@@ -96,7 +101,8 @@ main(int argc, char **argv)
96101
" 'pg_catalog.regtype'::regtype, "
97102
" 'pg_catalog.regconfig'::regtype, "
98103
" 'pg_catalog.regdictionary'::regtype) "
99-
"ORDER BY nspname, c.relname, a.attnum"
104+
"ORDER BY nspname, c.relname, a.attnum",
105+
FirstNormalObjectId
100106
);
101107

102108
res=PQexec(conn,sql.data);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp