Re: [HACKERS] obj_description problems? - Mailing list pgsql-patches

From Christopher Kings-Lynne
Subject Re: [HACKERS] obj_description problems?
Date
Msg-id 3F94C960.9060603@familyhealth.com.au
Whole thread Raw
Responses Re: [HACKERS] obj_description problems?
Re: [HACKERS] obj_description problems?
List pgsql-patches
*sigh* - it's really not my day today.  Attached is patch that actually
compiles and fixes the problem.  We will need to bump CATVERSION, and
maybe should test all the other qualified functions?

Chris


Index: src/include/catalog/pg_proc.h
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/include/catalog/pg_proc.h,v
retrieving revision 1.313
diff -c -r1.313 pg_proc.h
*** src/include/catalog/pg_proc.h    17 Aug 2003 19:58:06 -0000    1.313
--- src/include/catalog/pg_proc.h    21 Oct 2003 05:47:52 -0000
***************
*** 1477,1483 ****
  DESCR("convert abstime to timestamp with time zone");
  DATA(insert OID = 1174 (  timestamptz       PGNSP PGUID 12 f f t f s 1 1184 "1082"  date_timestamptz - _null_ ));
  DESCR("convert date to timestamp with time zone");
! DATA(insert OID = 1176 (  timestamptz       PGNSP PGUID 14 f f t f s 2 1184 "1082 1083"    "select timestamptz($1 +
$2)"- _null_ )); 
  DESCR("convert date and time to timestamp with time zone");
  DATA(insert OID = 1177 (  interval           PGNSP PGUID 12 f f t f i 1 1186 "703"    reltime_interval - _null_ ));
  DESCR("convert reltime to interval");
--- 1477,1483 ----
  DESCR("convert abstime to timestamp with time zone");
  DATA(insert OID = 1174 (  timestamptz       PGNSP PGUID 12 f f t f s 1 1184 "1082"  date_timestamptz - _null_ ));
  DESCR("convert date to timestamp with time zone");
! DATA(insert OID = 1176 (  timestamptz       PGNSP PGUID 14 f f t f s 2 1184 "1082 1083"    "select
pg_catalog.timestamptz($1+ $2)" - _null_ )); 
  DESCR("convert date and time to timestamp with time zone");
  DATA(insert OID = 1177 (  interval           PGNSP PGUID 12 f f t f i 1 1186 "703"    reltime_interval - _null_ ));
  DESCR("convert reltime to interval");
***************
*** 1520,1528 ****
  DATA(insert OID = 1200 (  interval            PGNSP PGUID 12 f f t f i 2 1186 "1186 23"    interval_scale - _null_
));
  DESCR("adjust interval precision");

! DATA(insert OID = 1215 (  obj_description    PGNSP PGUID 14 f f t f s 2    25 "26 19"    "select description from
pg_descriptionwhere objoid = $1 and classoid = (select oid from pg_class where relname = $2 and relnamespace = PGNSP)
andobjsubid = 0" - _null_ )); 
  DESCR("get description for object id and catalog name");
! DATA(insert OID = 1216 (  col_description    PGNSP PGUID 14 f f t f s 2    25 "26 23"    "select description from
pg_descriptionwhere objoid = $1 and classoid = \'pg_catalog.pg_class\'::regclass and objsubid = $2" - _null_ )); 
  DESCR("get description for table column");

  DATA(insert OID = 1217 (  date_trunc       PGNSP PGUID 12 f f t f i 2 1184 "25 1184"    timestamptz_trunc - _null_
));
--- 1520,1528 ----
  DATA(insert OID = 1200 (  interval            PGNSP PGUID 12 f f t f i 2 1186 "1186 23"    interval_scale - _null_
));
  DESCR("adjust interval precision");

! DATA(insert OID = 1215 (  obj_description    PGNSP PGUID 14 f f t f s 2    25 "26 19"    "select description from
pg_catalog.pg_descriptionwhere objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and
relnamespace= PGNSP) and objsubid = 0" - _null_ )); 
  DESCR("get description for object id and catalog name");
! DATA(insert OID = 1216 (  col_description    PGNSP PGUID 14 f f t f s 2    25 "26 23"    "select description from
pg_catalog.pg_descriptionwhere objoid = $1 and classoid = \'pg_catalog.pg_class\'::regclass and objsubid = $2" - _null_
));
  DESCR("get description for table column");

  DATA(insert OID = 1217 (  date_trunc       PGNSP PGUID 12 f f t f i 2 1184 "25 1184"    timestamptz_trunc - _null_
));
***************
*** 1683,1689 ****
   * This form of obj_description is now deprecated, since it will fail if
   * OIDs are not unique across system catalogs.    Use the other forms instead.
   */
! DATA(insert OID = 1348 (  obj_description     PGNSP PGUID 14 f f t f s 1 25 "26"  "select description from
pg_descriptionwhere objoid = $1 and objsubid = 0" - _null_ )); 
  DESCR("get description for object id (deprecated)");
  DATA(insert OID = 1349 (  oidvectortypes     PGNSP PGUID 12 f f t f s 1 25 "30"  oidvectortypes - _null_ ));
  DESCR("print type names of oidvector field");
--- 1683,1689 ----
   * This form of obj_description is now deprecated, since it will fail if
   * OIDs are not unique across system catalogs.    Use the other forms instead.
   */
! DATA(insert OID = 1348 (  obj_description     PGNSP PGUID 14 f f t f s 1 25 "26"  "select description from
pg_catalog.pg_descriptionwhere objoid = $1 and objsubid = 0" - _null_ )); 
  DESCR("get description for object id (deprecated)");
  DATA(insert OID = 1349 (  oidvectortypes     PGNSP PGUID 12 f f t f s 1 25 "30"  oidvectortypes - _null_ ));
  DESCR("print type names of oidvector field");
***************
*** 1740,1754 ****
  DATA(insert OID = 1381 (  char_length       PGNSP PGUID 12 f f t f i 1 23 "25"  textlen - _null_ ));
  DESCR("character length");

! DATA(insert OID = 1382 (  date_part    PGNSP PGUID 14 f f t f s 2  701 "25 702"  "select date_part($1,
timestamptz($2))"- _null_ )); 
  DESCR("extract field from abstime");
! DATA(insert OID = 1383 (  date_part    PGNSP PGUID 14 f f t f s 2  701 "25 703"  "select date_part($1, cast($2 as
interval))"- _null_ )); 
  DESCR("extract field from reltime");
! DATA(insert OID = 1384 (  date_part    PGNSP PGUID 14 f f t f i 2  701 "25 1082"    "select date_part($1, cast($2 as
timestampwithout time zone))" - _null_ )); 
  DESCR("extract field from date");
  DATA(insert OID = 1385 (  date_part    PGNSP PGUID 12 f f t f i 2  701 "25 1083"  time_part - _null_ ));
  DESCR("extract field from time");
! DATA(insert OID = 1386 (  age           PGNSP PGUID 14 f f t f s 1 1186 "1184"  "select age(cast(current_date as
timestampwith time zone), $1)" - _null_ )); 
  DESCR("date difference from today preserving months and years");

  DATA(insert OID = 1388 (  timetz       PGNSP PGUID 12 f f t f s 1 1266 "1184"  timestamptz_timetz - _null_ ));
--- 1740,1754 ----
  DATA(insert OID = 1381 (  char_length       PGNSP PGUID 12 f f t f i 1 23 "25"  textlen - _null_ ));
  DESCR("character length");

! DATA(insert OID = 1382 (  date_part    PGNSP PGUID 14 f f t f s 2  701 "25 702"  "select pg_catalog.date_part($1,
pg_catalog.timestamptz($2))"- _null_ )); 
  DESCR("extract field from abstime");
! DATA(insert OID = 1383 (  date_part    PGNSP PGUID 14 f f t f s 2  701 "25 703"  "select pg_catalog.date_part($1,
cast($2as pg_catalog.interval))" - _null_ )); 
  DESCR("extract field from reltime");
! DATA(insert OID = 1384 (  date_part    PGNSP PGUID 14 f f t f i 2  701 "25 1082"    "select pg_catalog.date_part($1,
cast($2as timestamp without time zone))" - _null_ )); 
  DESCR("extract field from date");
  DATA(insert OID = 1385 (  date_part    PGNSP PGUID 12 f f t f i 2  701 "25 1083"  time_part - _null_ ));
  DESCR("extract field from time");
! DATA(insert OID = 1386 (  age           PGNSP PGUID 14 f f t f s 1 1186 "1184"  "select
pg_catalog.age(cast(current_dateas timestamp with time zone), $1)" - _null_ )); 
  DESCR("date difference from today preserving months and years");

  DATA(insert OID = 1388 (  timetz       PGNSP PGUID 12 f f t f s 1 1266 "1184"  timestamptz_timetz - _null_ ));
***************
*** 1789,1797 ****
  DATA(insert OID = 1403 (  current_schemas    PGNSP PGUID 12 f f t f s 1    1003 "16"    current_schemas - _null_ ));
  DESCR("current schema search list");

! DATA(insert OID = 1404 (  overlay            PGNSP PGUID 14 f f t f i 4 25 "25 25 23 23"  "select substring($1, 1,
($3- 1)) || $2 || substring($1, ($3 + $4))" - _null_ )); 
  DESCR("substitute portion of string");
! DATA(insert OID = 1405 (  overlay            PGNSP PGUID 14 f f t f i 3 25 "25 25 23"  "select substring($1, 1, ($3 -
1))|| $2 || substring($1, ($3 + char_length($2)))" - _null_ )); 
  DESCR("substitute portion of string");

  DATA(insert OID = 1406 (  isvertical        PGNSP PGUID 12 f f t f i 2    16 "600 600"  point_vert - _null_ ));
--- 1789,1797 ----
  DATA(insert OID = 1403 (  current_schemas    PGNSP PGUID 12 f f t f s 1    1003 "16"    current_schemas - _null_ ));
  DESCR("current schema search list");

! DATA(insert OID = 1404 (  overlay            PGNSP PGUID 14 f f t f i 4 25 "25 25 23 23"  "select
pg_catalog.substring($1,1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + $4))" - _null_ )); 
  DESCR("substitute portion of string");
! DATA(insert OID = 1405 (  overlay            PGNSP PGUID 14 f f t f i 3 25 "25 25 23"  "select
pg_catalog.substring($1,1, ($3 - 1)) || $2 || pg_catalog.substring($1, ($3 + char_length($2)))" - _null_ )); 
  DESCR("substitute portion of string");

  DATA(insert OID = 1406 (  isvertical        PGNSP PGUID 12 f f t f i 2    16 "600 600"  point_vert - _null_ ));
***************
*** 1835,1841 ****
  DESCR("multiply box by point (scale)");
  DATA(insert OID = 1425 (  box_div            PGNSP PGUID 12 f f t f i 2 603 "603 600"    box_div - _null_ ));
  DESCR("divide box by point (scale)");
! DATA(insert OID = 1426 (  path_contain_pt    PGNSP PGUID 14 f f t f i 2    16 "602 600"  "select on_ppath($2, $1)" -
_null_)); 
  DESCR("path contains point?");
  DATA(insert OID = 1428 (  poly_contain_pt    PGNSP PGUID 12 f f t f i 2    16 "604 600"  poly_contain_pt - _null_ ));
  DESCR("polygon contains point?");
--- 1835,1841 ----
  DESCR("multiply box by point (scale)");
  DATA(insert OID = 1425 (  box_div            PGNSP PGUID 12 f f t f i 2 603 "603 600"    box_div - _null_ ));
  DESCR("divide box by point (scale)");
! DATA(insert OID = 1426 (  path_contain_pt    PGNSP PGUID 14 f f t f i 2    16 "602 600"  "select
pg_catalog.on_ppath($2,$1)" - _null_ )); 
  DESCR("path contains point?");
  DATA(insert OID = 1428 (  poly_contain_pt    PGNSP PGUID 12 f f t f i 2    16 "604 600"  poly_contain_pt - _null_ ));
  DESCR("polygon contains point?");
***************
*** 2015,2021 ****
  DESCR("center of");
  DATA(insert OID = 1543 (  center            PGNSP PGUID 12 f f t f i 1 600 "718"    circle_center - _null_ ));
  DESCR("center of");
! DATA(insert OID = 1544 (  polygon            PGNSP PGUID 14 f f t f i 1 604 "718"    "select polygon(12, $1)" -
_null_)); 
  DESCR("convert circle to 12-vertex polygon");
  DATA(insert OID = 1545 (  npoints            PGNSP PGUID 12 f f t f i 1    23 "602"  path_npoints - _null_ ));
  DESCR("number of points in path");
--- 2015,2021 ----
  DESCR("center of");
  DATA(insert OID = 1543 (  center            PGNSP PGUID 12 f f t f i 1 600 "718"    circle_center - _null_ ));
  DESCR("center of");
! DATA(insert OID = 1544 (  polygon            PGNSP PGUID 14 f f t f i 1 604 "718"    "select pg_catalog.polygon(12,
$1)"- _null_ )); 
  DESCR("convert circle to 12-vertex polygon");
  DATA(insert OID = 1545 (  npoints            PGNSP PGUID 12 f f t f i 1    23 "602"  path_npoints - _null_ ));
  DESCR("number of points in path");
***************
*** 2165,2173 ****
  DESCR("return portion of string");
  DATA(insert OID =  878 (  translate    PGNSP PGUID 12 f f t f i 3 25 "25 25 25"  translate - _null_ ));
  DESCR("map a set of character appearing in string");
! DATA(insert OID =  879 (  lpad           PGNSP PGUID 14 f f t f i 2 25 "25 23"    "select lpad($1, $2, \' \')" -
_null_)); 
  DESCR("left-pad string to length");
! DATA(insert OID =  880 (  rpad           PGNSP PGUID 14 f f t f i 2 25 "25 23"    "select rpad($1, $2, \' \')" -
_null_)); 
  DESCR("right-pad string to length");
  DATA(insert OID =  881 (  ltrim           PGNSP PGUID 12 f f t f i 1 25 "25"  ltrim1 - _null_ ));
  DESCR("trim spaces from left end of string");
--- 2165,2173 ----
  DESCR("return portion of string");
  DATA(insert OID =  878 (  translate    PGNSP PGUID 12 f f t f i 3 25 "25 25 25"  translate - _null_ ));
  DESCR("map a set of character appearing in string");
! DATA(insert OID =  879 (  lpad           PGNSP PGUID 14 f f t f i 2 25 "25 23"    "select pg_catalog.lpad($1, $2, \'
\')"- _null_ )); 
  DESCR("left-pad string to length");
! DATA(insert OID =  880 (  rpad           PGNSP PGUID 14 f f t f i 2 25 "25 23"    "select pg_catalog.rpad($1, $2, \'
\')"- _null_ )); 
  DESCR("right-pad string to length");
  DATA(insert OID =  881 (  ltrim           PGNSP PGUID 12 f f t f i 1 25 "25"  ltrim1 - _null_ ));
  DESCR("trim spaces from left end of string");
***************
*** 2315,2321 ****

  DATA(insert OID = 1698 (  position           PGNSP PGUID 12 f f t f i 2 23 "1560 1560" bitposition - _null_ ));
  DESCR("return position of sub-bitstring");
! DATA(insert OID = 1699 (  substring            PGNSP PGUID 14 f f t f i 2 1560 "1560 23"  "select substring($1, $2,
-1)"- _null_ )); 
  DESCR("return portion of bitstring");


--- 2315,2321 ----

  DATA(insert OID = 1698 (  position           PGNSP PGUID 12 f f t f i 2 23 "1560 1560" bitposition - _null_ ));
  DESCR("return position of sub-bitstring");
! DATA(insert OID = 1699 (  substring            PGNSP PGUID 14 f f t f i 2 1560 "1560 23"  "select
pg_catalog.substring($1,$2, -1)" - _null_ )); 
  DESCR("return portion of bitstring");


***************
*** 2445,2455 ****
  DESCR("sign of value");
  DATA(insert OID = 1707 ( round                    PGNSP PGUID 12 f f t f i 2 1700 "1700 23"  numeric_round - _null_
));
  DESCR("value rounded to 'scale'");
! DATA(insert OID = 1708 ( round                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select round($1,0)" -
_null_)); 
  DESCR("value rounded to 'scale' of zero");
  DATA(insert OID = 1709 ( trunc                    PGNSP PGUID 12 f f t f i 2 1700 "1700 23"  numeric_trunc - _null_
));
  DESCR("value truncated to 'scale'");
! DATA(insert OID = 1710 ( trunc                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select trunc($1,0)" -
_null_)); 
  DESCR("value truncated to 'scale' of zero");
  DATA(insert OID = 1711 ( ceil                    PGNSP PGUID 12 f f t f i 1 1700 "1700"    numeric_ceil - _null_ ));
  DESCR("smallest integer >= value");
--- 2445,2455 ----
  DESCR("sign of value");
  DATA(insert OID = 1707 ( round                    PGNSP PGUID 12 f f t f i 2 1700 "1700 23"  numeric_round - _null_
));
  DESCR("value rounded to 'scale'");
! DATA(insert OID = 1708 ( round                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select
pg_catalog.round($1,0)"- _null_ )); 
  DESCR("value rounded to 'scale' of zero");
  DATA(insert OID = 1709 ( trunc                    PGNSP PGUID 12 f f t f i 2 1700 "1700 23"  numeric_trunc - _null_
));
  DESCR("value truncated to 'scale'");
! DATA(insert OID = 1710 ( trunc                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select
pg_catalog.trunc($1,0)"- _null_ )); 
  DESCR("value truncated to 'scale' of zero");
  DATA(insert OID = 1711 ( ceil                    PGNSP PGUID 12 f f t f i 1 1700 "1700"    numeric_ceil - _null_ ));
  DESCR("smallest integer >= value");
***************
*** 2501,2507 ****
  DESCR("m raised to the power of n");
  DATA(insert OID = 1740 ( numeric                PGNSP PGUID 12 f f t f i 1 1700 "23"    int4_numeric - _null_ ));
  DESCR("(internal)");
! DATA(insert OID = 1741 ( log                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select log(10, $1)" -
_null_)); 
  DESCR("logarithm base 10 of n");
  DATA(insert OID = 1742 ( numeric                PGNSP PGUID 12 f f t f i 1 1700 "700"  float4_numeric - _null_ ));
  DESCR("(internal)");
--- 2501,2507 ----
  DESCR("m raised to the power of n");
  DATA(insert OID = 1740 ( numeric                PGNSP PGUID 12 f f t f i 1 1700 "23"    int4_numeric - _null_ ));
  DESCR("(internal)");
! DATA(insert OID = 1741 ( log                    PGNSP PGUID 14 f f t f i 1 1700 "1700"    "select pg_catalog.log(10,
$1)"- _null_ )); 
  DESCR("logarithm base 10 of n");
  DATA(insert OID = 1742 ( numeric                PGNSP PGUID 12 f f t f i 1 1700 "700"  float4_numeric - _null_ ));
  DESCR("(internal)");
***************
*** 2575,2585 ****
  DESCR("I/O");


! DATA(insert OID = 1810 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "17" "select octet_length($1) * 8" - _null_
));
  DESCR("length in bits");
! DATA(insert OID = 1811 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "25" "select octet_length($1) * 8" - _null_
));
  DESCR("length in bits");
! DATA(insert OID = 1812 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "1560" "select length($1)" - _null_ ));
  DESCR("length in bits");

  /* Selectivity estimators for LIKE and related operators */
--- 2575,2585 ----
  DESCR("I/O");


! DATA(insert OID = 1810 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "17" "select pg_catalog.octet_length($1) *
8"- _null_ )); 
  DESCR("length in bits");
! DATA(insert OID = 1811 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "25" "select pg_catalog.octet_length($1) *
8"- _null_ )); 
  DESCR("length in bits");
! DATA(insert OID = 1812 (  bit_length       PGNSP PGUID 14 f f t f i 1 23 "1560" "select pg_catalog.length($1)" -
_null_)); 
  DESCR("length in bits");

  /* Selectivity estimators for LIKE and related operators */
***************
*** 2936,2942 ****
  DESCR("greater-than");
  DATA(insert OID = 2058 (  age                PGNSP PGUID 12 f f t f i 2 1186 "1114 1114"  timestamp_age - _null_ ));
  DESCR("date difference preserving months and years");
! DATA(insert OID = 2059 (  age                PGNSP PGUID 14 f f t f s 1 1186 "1114"    "select age(cast(current_date
astimestamp without time zone), $1)" - _null_ )); 
  DESCR("date difference from today preserving months and years");

  DATA(insert OID = 2069 (  timezone            PGNSP PGUID 12 f f t f s 2 1184 "25 1114"  timestamp_zone - _null_ ));
--- 2936,2942 ----
  DESCR("greater-than");
  DATA(insert OID = 2058 (  age                PGNSP PGUID 12 f f t f i 2 1186 "1114 1114"  timestamp_age - _null_ ));
  DESCR("date difference preserving months and years");
! DATA(insert OID = 2059 (  age                PGNSP PGUID 14 f f t f s 1 1186 "1114"    "select
pg_catalog.age(cast(current_dateas timestamp without time zone), $1)" - _null_ )); 
  DESCR("date difference from today preserving months and years");

  DATA(insert OID = 2069 (  timezone            PGNSP PGUID 12 f f t f s 2 1184 "25 1114"  timestamp_zone - _null_ ));
***************
*** 2950,2956 ****

  DATA(insert OID = 2073 (  substring            PGNSP PGUID 12 f f t f i 2 25 "25 25"    textregexsubstr - _null_ ));
  DESCR("extracts text matching regular expression");
! DATA(insert OID = 2074 (  substring            PGNSP PGUID 14 f f t f i 3 25 "25 25 25"    "select substring($1,
similar_escape($2,$3))" - _null_ )); 
  DESCR("extracts text matching SQL99 regular expression");

  DATA(insert OID = 2075 (  bit                PGNSP PGUID 12 f f t f i 1 1560 "20"    bitfromint8 - _null_ ));
--- 2950,2956 ----

  DATA(insert OID = 2073 (  substring            PGNSP PGUID 12 f f t f i 2 25 "25 25"    textregexsubstr - _null_ ));
  DESCR("extracts text matching regular expression");
! DATA(insert OID = 2074 (  substring            PGNSP PGUID 14 f f t f i 3 25 "25 25 25"    "select
pg_catalog.substring($1,pg_catalog.similar_escape($2, $3))" - _null_ )); 
  DESCR("extracts text matching SQL99 regular expression");

  DATA(insert OID = 2075 (  bit                PGNSP PGUID 12 f f t f i 1 1560 "20"    bitfromint8 - _null_ ));

pgsql-patches by date:

Previous
From: Christopher Kings-Lynne
Date:
Subject: [Fwd: Re: [HACKERS] obj_description problems?]
Next
From: "Zeugswetter Andreas SB SD"
Date:
Subject: Re: AIX port current