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

Commitba0faf8

Browse files
committed
Remove special BKI_LOOKUP magic for namespace and role OIDs.
Now that commit62f3409 attached BKI_LOOKUP annotation to all thenamespace and role OID columns in the catalogs, there's no real reasonto have the magic PGNSP and PGUID symbols. Get rid of them in favorof implementing those lookups according to genbki.pl's normal pattern.This means that in the catalog headers, BKI_DEFAULT(PGNSP) becomesBKI_DEFAULT(pg_catalog), which seems a lot more transparent.BKI_DEFAULT(PGUID) becomes BKI_DEFAULT(POSTGRES), which is perhapsless so; but you can look into pg_authid.dat to discover thatPOSTGRES is the nonce name for the bootstrap superuser.This change also means that if we ever need cross-references in theinitial catalog data to any of the other built-in roles besidesPOSTGRES, or to some other built-in schema besides pg_catalog,we can just do it.No catversion bump here, as there's no actual change in the contentsof postgres.bki.Discussion:https://postgr.es/m/3240355.1612129197@sss.pgh.pa.us
1 parent0bf8364 commitba0faf8

19 files changed

+46
-52
lines changed

‎doc/src/sgml/bki.sgml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -540,17 +540,6 @@
540540
expected to be in the <literal>pg_catalog</literal> schema.
541541
</para>
542542
</listitem>
543-
544-
<listitem>
545-
<para>
546-
In addition to the generic lookup mechanisms, there is a special
547-
convention that <literal>PGNSP</literal> is replaced by the OID of
548-
the <literal>pg_catalog</literal> schema,
549-
and <literal>PGUID</literal> is replaced by the OID of the bootstrap
550-
superuser role. These usages are somewhat historical but so far
551-
there hasn't been a need to generalize them.
552-
</para>
553-
</listitem>
554543
</itemizedlist>
555544

556545
<para>

‎src/backend/catalog/genbki.pl

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,9 @@
184184
# within a given Postgres release, such as fixed OIDs. Do not substitute
185185
# anything that could depend on platform or configuration. (The right place
186186
# to handle those sorts of things is in initdb.c's bootstrap_template1().)
187-
my$BOOTSTRAP_SUPERUSERID =
188-
Catalog::FindDefinedSymbolFromData($catalog_data{pg_authid},
189-
'BOOTSTRAP_SUPERUSERID');
190187
my$C_COLLATION_OID =
191188
Catalog::FindDefinedSymbolFromData($catalog_data{pg_collation},
192189
'C_COLLATION_OID');
193-
my$PG_CATALOG_NAMESPACE =
194-
Catalog::FindDefinedSymbolFromData($catalog_data{pg_namespace},
195-
'PG_CATALOG_NAMESPACE');
196190

197191

198192
# Fill in pg_class.relnatts by looking at the referenced catalog's schema.
@@ -213,11 +207,12 @@
213207
$amoids{$row->{amname} } =$row->{oid};
214208
}
215209

216-
# There is only one authid at bootstrap time, and we handle it specially:
217-
# the usually-defaulted symbol PGUID becomes the bootstrap superuser's OID.
218-
# (We could drop this in favor of writing out BKI_DEFAULT(POSTGRES) ...)
210+
# role OID lookup
219211
my%authidoids;
220-
$authidoids{'PGUID'} =$BOOTSTRAP_SUPERUSERID;
212+
foreachmy$row (@{$catalog_data{pg_authid} })
213+
{
214+
$authidoids{$row->{rolname} } =$row->{oid};
215+
}
221216

222217
# class (relation) OID lookup (note this only covers bootstrap catalogs!)
223218
my%classoids;
@@ -240,11 +235,12 @@
240235
$langoids{$row->{lanname} } =$row->{oid};
241236
}
242237

243-
# There is only one namespace at bootstrap time, and we handle it specially:
244-
# the usually-defaulted symbol PGNSP becomes the pg_catalog namespace's OID.
245-
# (We could drop this in favor of writing out BKI_DEFAULT(pg_catalog) ...)
238+
# namespace (schema) OID lookup
246239
my%namespaceoids;
247-
$namespaceoids{'PGNSP'} =$PG_CATALOG_NAMESPACE;
240+
foreachmy$row (@{$catalog_data{pg_namespace} })
241+
{
242+
$namespaceoids{$row->{nspname} } =$row->{oid};
243+
}
248244

249245
# opclass OID lookup
250246
my%opcoids;

‎src/include/catalog/pg_authid.dat

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
# The C code typically refers to these roles using the #define symbols,
1616
# so make sure every entry has an oid_symbol value.
1717

18+
# The bootstrap superuser is named POSTGRES according to this data and
19+
# according to BKI_DEFAULT entries in other catalogs. However, initdb
20+
# will replace that at database initialization time.
21+
1822
{ oid => '10', oid_symbol => 'BOOTSTRAP_SUPERUSERID',
1923
rolname => 'POSTGRES', rolsuper => 't', rolinherit => 't',
2024
rolcreaterole => 't', rolcreatedb => 't', rolcanlogin => 't',

‎src/include/catalog/pg_class.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
3838
NameDatarelname;
3939

4040
/* OID of namespace containing this class */
41-
OidrelnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
41+
OidrelnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
4242

4343
/* OID of entry in pg_type for relation's implicit row type, if any */
4444
OidreltypeBKI_LOOKUP_OPT(pg_type);
@@ -47,7 +47,7 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat
4747
OidreloftypeBKI_DEFAULT(0)BKI_LOOKUP_OPT(pg_type);
4848

4949
/* class owner */
50-
OidrelownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
50+
OidrelownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
5151

5252
/* access method; 0 if not a table / index */
5353
OidrelamBKI_DEFAULT(heap)BKI_LOOKUP_OPT(pg_am);

‎src/include/catalog/pg_collation.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,12 @@ CATALOG(pg_collation,3456,CollationRelationId)
3030
{
3131
Oidoid;/* oid */
3232
NameDatacollname;/* collation name */
33-
OidcollnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);/* OID of namespace
34-
* containing collation */
35-
OidcollownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);/* owner of collation */
33+
34+
/* OID of namespace containing this collation */
35+
OidcollnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
36+
37+
/* owner of collation */
38+
OidcollownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
3639
charcollprovider;/* see constants below */
3740
boolcollisdeterministicBKI_DEFAULT(t);
3841
int32collencoding;/* encoding for this collation; -1 = "all" */

‎src/include/catalog/pg_conversion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ CATALOG(pg_conversion,2607,ConversionRelationId)
3535
NameDataconname;
3636

3737
/* namespace that the conversion belongs to */
38-
OidconnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
38+
OidconnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
3939

4040
/* owner of the conversion */
41-
OidconownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
41+
OidconownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4242

4343
/* FOR encoding id */
4444
int32conforencodingBKI_LOOKUP(encoding);

‎src/include/catalog/pg_database.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ CATALOG(pg_database,1262,DatabaseRelationId) BKI_SHARED_RELATION BKI_ROWTYPE_OID
3535
NameDatadatname;
3636

3737
/* owner of database */
38-
OiddatdbaBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
38+
OiddatdbaBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
3939

4040
/* character encoding */
4141
int32encoding;

‎src/include/catalog/pg_language.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ CATALOG(pg_language,2612,LanguageRelationId)
3434
NameDatalanname;
3535

3636
/* Language's owner */
37-
OidlanownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
37+
OidlanownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
3838

3939
/* Is a procedural language */
4040
boollanisplBKI_DEFAULT(f);

‎src/include/catalog/pg_namespace.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ CATALOG(pg_namespace,2615,NamespaceRelationId)
3737
Oidoid;/* oid */
3838

3939
NameDatanspname;
40-
OidnspownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
40+
OidnspownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4141

4242
#ifdefCATALOG_VARLEN/* variable-length fields start here */
4343
aclitemnspacl[1];

‎src/include/catalog/pg_opclass.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
5757
NameDataopcname;
5858

5959
/* namespace of this opclass */
60-
OidopcnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
60+
OidopcnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
6161

6262
/* opclass owner */
63-
OidopcownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
63+
OidopcownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
6464

6565
/* containing operator family */
6666
OidopcfamilyBKI_LOOKUP(pg_opfamily);

‎src/include/catalog/pg_operator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ CATALOG(pg_operator,2617,OperatorRelationId)
3636
NameDataoprname;
3737

3838
/* OID of namespace containing this oper */
39-
OidoprnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
39+
OidoprnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
4040

4141
/* operator owner */
42-
OidoprownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
42+
OidoprownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4343

4444
/* 'l' for prefix or 'b' for infix */
4545
charoprkindBKI_DEFAULT(b);

‎src/include/catalog/pg_opfamily.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
3737
NameDataopfname;
3838

3939
/* namespace of this opfamily */
40-
OidopfnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
40+
OidopfnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
4141

4242
/* opfamily owner */
43-
OidopfownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
43+
OidopfownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4444
}FormData_pg_opfamily;
4545

4646
/* ----------------

‎src/include/catalog/pg_proc.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81,Proce
3535
NameDataproname;
3636

3737
/* OID of namespace containing this proc */
38-
OidpronamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
38+
OidpronamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
3939

4040
/* procedure owner */
41-
OidproownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
41+
OidproownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4242

4343
/* OID of pg_language entry */
4444
OidprolangBKI_DEFAULT(internal)BKI_LOOKUP(pg_language);

‎src/include/catalog/pg_tablespace.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ CATALOG(pg_tablespace,1213,TableSpaceRelationId) BKI_SHARED_RELATION
3030
{
3131
Oidoid;/* oid */
3232
NameDataspcname;/* tablespace name */
33-
OidspcownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);/* owner of tablespace */
33+
34+
/* owner of tablespace */
35+
OidspcownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
3436

3537
#ifdefCATALOG_VARLEN/* variable-length fields start here */
3638
aclitemspcacl[1];/* access permissions */

‎src/include/catalog/pg_ts_config.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ CATALOG(pg_ts_config,3602,TSConfigRelationId)
3636
NameDatacfgname;
3737

3838
/* name space */
39-
OidcfgnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
39+
OidcfgnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
4040

4141
/* owner */
42-
OidcfgownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
42+
OidcfgownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4343

4444
/* OID of parser */
4545
OidcfgparserBKI_LOOKUP(pg_ts_parser);

‎src/include/catalog/pg_ts_dict.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
3535
NameDatadictname;
3636

3737
/* name space */
38-
OiddictnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
38+
OiddictnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
3939

4040
/* owner */
41-
OiddictownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
41+
OiddictownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4242

4343
/* dictionary's template */
4444
OiddicttemplateBKI_LOOKUP(pg_ts_template);

‎src/include/catalog/pg_ts_parser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
3434
NameDataprsname;
3535

3636
/* name space */
37-
OidprsnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
37+
OidprsnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
3838

3939
/* init parsing session */
4040
regprocprsstartBKI_LOOKUP(pg_proc);

‎src/include/catalog/pg_ts_template.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ CATALOG(pg_ts_template,3764,TSTemplateRelationId)
3434
NameDatatmplname;
3535

3636
/* name space */
37-
OidtmplnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
37+
OidtmplnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
3838

3939
/* initialization method of dict (may be 0) */
4040
regproctmplinitBKI_LOOKUP_OPT(pg_proc);

‎src/include/catalog/pg_type.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71,TypeRelati
4141
NameDatatypname;
4242

4343
/* OID of namespace containing this type */
44-
OidtypnamespaceBKI_DEFAULT(PGNSP)BKI_LOOKUP(pg_namespace);
44+
OidtypnamespaceBKI_DEFAULT(pg_catalog)BKI_LOOKUP(pg_namespace);
4545

4646
/* type owner */
47-
OidtypownerBKI_DEFAULT(PGUID)BKI_LOOKUP(pg_authid);
47+
OidtypownerBKI_DEFAULT(POSTGRES)BKI_LOOKUP(pg_authid);
4848

4949
/*
5050
* For a fixed-size type, typlen is the number of bytes we use to

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp