Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Cosmetic improvement: use BKI_DEFAULT and BKI_LOOKUP in pg_language.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 29 Apr 2018 17:26:26 +0000 (13:26 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 29 Apr 2018 17:26:26 +0000 (13:26 -0400)
The point of this is not really to remove redundancy in pg_language.dat;
with only three entries, it's hardly worth it.  Rather, it is to get
to a point where there are exactly zero hard-coded numeric pg_proc OID
references in the catalog .dat files.  The lanvalidator column was the
only remaining location of such references, and it seems like a good
thing for future-proofing reasons to make it not be a special case.

There are still a few places in the .dat files with numeric OID references
to other catalogs, but after review I don't see any that seem worth
changing at present.  In each case there are just too few entries to make
it worth the trouble to create lookup infrastructure.

This doesn't change the emitted postgres.bki file, so no catversion bump.

src/include/catalog/pg_language.dat
src/include/catalog/pg_language.h

index c79d566d8a0c09e193ee5d464de84f7790256a2a..a835b7ee319525c81d61ea07f14177ddceac6c85 100644 (file)
 
 { oid => '12', oid_symbol => 'INTERNALlanguageId',
   descr => 'built-in functions',
-  lanname => 'internal', lanowner => 'PGUID', lanispl => 'f',
-  lanpltrusted => 'f', lanplcallfoid => '0', laninline => '0',
-  lanvalidator => '2246', lanacl => '_null_' },
+  lanname => 'internal', lanvalidator => 'fmgr_internal_validator' },
 { oid => '13', oid_symbol => 'ClanguageId',
   descr => 'dynamically-loaded C functions',
-  lanname => 'c', lanowner => 'PGUID', lanispl => 'f', lanpltrusted => 'f',
-  lanplcallfoid => '0', laninline => '0', lanvalidator => '2247',
-  lanacl => '_null_' },
+  lanname => 'c', lanvalidator => 'fmgr_c_validator' },
 { oid => '14', oid_symbol => 'SQLlanguageId',
   descr => 'SQL-language functions',
-  lanname => 'sql', lanowner => 'PGUID', lanispl => 'f', lanpltrusted => 't',
-  lanplcallfoid => '0', laninline => '0', lanvalidator => '2248',
-  lanacl => '_null_' },
+  lanname => 'sql', lanpltrusted => 't', lanvalidator => 'fmgr_sql_validator' },
 
 ]
index 83a7aa3e6a4d3609a3d07a64ed0dc9e70462143c..359701b4522b57521592954cf6b4164371c9b121 100644 (file)
  */
 CATALOG(pg_language,2612,LanguageRelationId)
 {
-   NameData    lanname;        /* Language name */
-   Oid         lanowner;       /* Language's owner */
-   bool        lanispl;        /* Is a procedural language */
-   bool        lanpltrusted;   /* PL is trusted */
-   Oid         lanplcallfoid;  /* Call handler for PL */
-   Oid         laninline;      /* Optional anonymous-block handler function */
-   Oid         lanvalidator;   /* Optional validation function */
+   /* Language name */
+   NameData    lanname;
+
+   /* Language's owner */
+   Oid         lanowner BKI_DEFAULT(PGUID);
+
+   /* Is a procedural language */
+   bool        lanispl BKI_DEFAULT(f);
+
+   /* PL is trusted */
+   bool        lanpltrusted BKI_DEFAULT(f);
+
+   /* Call handler, if it's a PL */
+   Oid         lanplcallfoid BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
+
+   /* Optional anonymous-block handler function */
+   Oid         laninline BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
+
+   /* Optional validation function */
+   Oid         lanvalidator BKI_DEFAULT(0) BKI_LOOKUP(pg_proc);
 
 #ifdef CATALOG_VARLEN          /* variable-length fields start here */
-   aclitem     lanacl[1];      /* Access privileges */
+   /* Access privileges */
+   aclitem     lanacl[1] BKI_DEFAULT(_null_);
 #endif
 } FormData_pg_language;