 src/include/catalog/pg_amop.dat      | 72 ++++++++++++++++++++++++++++++++++++
 src/include/catalog/pg_amproc.dat    | 23 ++++++++++++
 src/include/catalog/pg_authid.dat    | 12 +++---
 src/include/catalog/pg_cast.dat      |  6 +++
 src/include/catalog/pg_class.dat     | 10 +----
 src/include/catalog/pg_database.dat  |  5 ++-
 src/include/catalog/pg_namespace.dat |  2 -
 src/include/catalog/pg_opclass.dat   |  9 +++++
 src/include/catalog/pg_operator.dat  |  3 +-
 src/include/catalog/pg_proc.dat      | 45 ++++++----------------
 src/include/catalog/pg_range.dat     |  2 -
 src/include/catalog/pg_type.dat      | 44 +++++-----------------
 12 files changed, 146 insertions(+), 87 deletions(-)

diff --git a/src/include/catalog/pg_amop.dat b/src/include/catalog/pg_amop.dat
new file mode 100644
index acfd255..7975af3
*** a/src/include/catalog/pg_amop.dat
--- b/src/include/catalog/pg_amop.dat
***************
*** 9,56 ****
--- 9,64 ----
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '21', amopstrategy => '3', amoppurpose => 's', amopopr => '94', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '21', amopstrategy => '4', amoppurpose => 's', amopopr => '524', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '21', amopstrategy => '5', amoppurpose => 's', amopopr => '520', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int24
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '23', amopstrategy => '1', amoppurpose => 's', amopopr => '534', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '23', amopstrategy => '2', amoppurpose => 's', amopopr => '540', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '23', amopstrategy => '3', amoppurpose => 's', amopopr => '532', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '23', amopstrategy => '4', amoppurpose => 's', amopopr => '542', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '23', amopstrategy => '5', amoppurpose => 's', amopopr => '536', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int28
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '20', amopstrategy => '1', amoppurpose => 's', amopopr => '1864', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '20', amopstrategy => '2', amoppurpose => 's', amopopr => '1866', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '20', amopstrategy => '3', amoppurpose => 's', amopopr => '1862', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '20', amopstrategy => '4', amoppurpose => 's', amopopr => '1867', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '21', amoprighttype => '20', amopstrategy => '5', amoppurpose => 's', amopopr => '1865', amopmethod => '403', amopsortfamily => '0' },
+ 
  # default operators int4
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '23', amopstrategy => '1', amoppurpose => 's', amopopr => '97', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '23', amopstrategy => '2', amoppurpose => 's', amopopr => '523', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '23', amopstrategy => '3', amoppurpose => 's', amopopr => '96', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '23', amopstrategy => '4', amoppurpose => 's', amopopr => '525', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '23', amopstrategy => '5', amoppurpose => 's', amopopr => '521', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int42
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '21', amopstrategy => '1', amoppurpose => 's', amopopr => '535', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '21', amopstrategy => '2', amoppurpose => 's', amopopr => '541', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '21', amopstrategy => '3', amoppurpose => 's', amopopr => '533', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '21', amopstrategy => '4', amoppurpose => 's', amopopr => '543', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '21', amopstrategy => '5', amoppurpose => 's', amopopr => '537', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int48
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '20', amopstrategy => '1', amoppurpose => 's', amopopr => '37', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '20', amopstrategy => '2', amoppurpose => 's', amopopr => '80', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '20', amopstrategy => '3', amoppurpose => 's', amopopr => '15', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '20', amopstrategy => '4', amoppurpose => 's', amopopr => '82', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '23', amoprighttype => '20', amopstrategy => '5', amoppurpose => 's', amopopr => '76', amopmethod => '403', amopsortfamily => '0' },
+ 
  # default operators int8
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '20', amopstrategy => '1', amoppurpose => 's', amopopr => '412', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '20', amopstrategy => '2', amoppurpose => 's', amopopr => '414', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '20', amopstrategy => '3', amoppurpose => 's', amopopr => '410', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '20', amopstrategy => '4', amoppurpose => 's', amopopr => '415', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '20', amopstrategy => '5', amoppurpose => 's', amopopr => '413', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int82
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '21', amopstrategy => '1', amoppurpose => 's', amopopr => '1870', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '21', amopstrategy => '2', amoppurpose => 's', amopopr => '1872', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '21', amopstrategy => '3', amoppurpose => 's', amopopr => '1868', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '21', amopstrategy => '4', amoppurpose => 's', amopopr => '1873', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '21', amopstrategy => '5', amoppurpose => 's', amopopr => '1871', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators int84
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '23', amopstrategy => '1', amoppurpose => 's', amopopr => '418', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1976', amoplefttype => '20', amoprighttype => '23', amopstrategy => '2', amoppurpose => 's', amopopr => '420', amopmethod => '403', amopsortfamily => '0' },
***************
*** 90,107 ****
--- 98,118 ----
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '700', amopstrategy => '3', amoppurpose => 's', amopopr => '620', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '700', amopstrategy => '4', amoppurpose => 's', amopopr => '625', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '700', amopstrategy => '5', amoppurpose => 's', amopopr => '623', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators float48
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '701', amopstrategy => '1', amoppurpose => 's', amopopr => '1122', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '701', amopstrategy => '2', amoppurpose => 's', amopopr => '1124', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '701', amopstrategy => '3', amoppurpose => 's', amopopr => '1120', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '701', amopstrategy => '4', amoppurpose => 's', amopopr => '1125', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '700', amoprighttype => '701', amopstrategy => '5', amoppurpose => 's', amopopr => '1123', amopmethod => '403', amopsortfamily => '0' },
+ 
  # default operators float8
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '701', amopstrategy => '1', amoppurpose => 's', amopopr => '672', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '701', amopstrategy => '2', amoppurpose => 's', amopopr => '673', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '701', amopstrategy => '3', amoppurpose => 's', amopopr => '670', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '701', amopstrategy => '4', amoppurpose => 's', amopopr => '675', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '701', amopstrategy => '5', amoppurpose => 's', amopopr => '674', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators float84
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '700', amopstrategy => '1', amoppurpose => 's', amopopr => '1132', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '1970', amoplefttype => '701', amoprighttype => '700', amopstrategy => '2', amoppurpose => 's', amopopr => '1134', amopmethod => '403', amopsortfamily => '0' },
***************
*** 165,212 ****
--- 176,231 ----
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1082', amopstrategy => '3', amoppurpose => 's', amopopr => '1093', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1082', amopstrategy => '4', amoppurpose => 's', amopopr => '1098', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1082', amopstrategy => '5', amoppurpose => 's', amopopr => '1097', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs timestamp
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1114', amopstrategy => '1', amoppurpose => 's', amopopr => '2345', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1114', amopstrategy => '2', amoppurpose => 's', amopopr => '2346', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1114', amopstrategy => '3', amoppurpose => 's', amopopr => '2347', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1114', amopstrategy => '4', amoppurpose => 's', amopopr => '2348', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1114', amopstrategy => '5', amoppurpose => 's', amopopr => '2349', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs timestamptz
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1184', amopstrategy => '1', amoppurpose => 's', amopopr => '2358', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1184', amopstrategy => '2', amoppurpose => 's', amopopr => '2359', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1184', amopstrategy => '3', amoppurpose => 's', amopopr => '2360', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1184', amopstrategy => '4', amoppurpose => 's', amopopr => '2361', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1082', amoprighttype => '1184', amopstrategy => '5', amoppurpose => 's', amopopr => '2362', amopmethod => '403', amopsortfamily => '0' },
+ 
  # default operators timestamp
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '1', amoppurpose => 's', amopopr => '2062', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '2', amoppurpose => 's', amopopr => '2063', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '3', amoppurpose => 's', amopopr => '2060', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '4', amoppurpose => 's', amopopr => '2065', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '5', amoppurpose => 's', amopopr => '2064', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs date
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1082', amopstrategy => '1', amoppurpose => 's', amopopr => '2371', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1082', amopstrategy => '2', amoppurpose => 's', amopopr => '2372', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1082', amopstrategy => '3', amoppurpose => 's', amopopr => '2373', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1082', amopstrategy => '4', amoppurpose => 's', amopopr => '2374', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1082', amopstrategy => '5', amoppurpose => 's', amopopr => '2375', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs timestamptz
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1184', amopstrategy => '1', amoppurpose => 's', amopopr => '2534', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1184', amopstrategy => '2', amoppurpose => 's', amopopr => '2535', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1184', amopstrategy => '3', amoppurpose => 's', amopopr => '2536', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1184', amopstrategy => '4', amoppurpose => 's', amopopr => '2537', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1114', amoprighttype => '1184', amopstrategy => '5', amoppurpose => 's', amopopr => '2538', amopmethod => '403', amopsortfamily => '0' },
+ 
  # default operators timestamptz
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '1', amoppurpose => 's', amopopr => '1322', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '2', amoppurpose => 's', amopopr => '1323', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '3', amoppurpose => 's', amopopr => '1320', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '4', amoppurpose => 's', amopopr => '1325', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '5', amoppurpose => 's', amopopr => '1324', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs date
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1082', amopstrategy => '1', amoppurpose => 's', amopopr => '2384', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1082', amopstrategy => '2', amoppurpose => 's', amopopr => '2385', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1082', amopstrategy => '3', amoppurpose => 's', amopopr => '2386', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1082', amopstrategy => '4', amoppurpose => 's', amopopr => '2387', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1082', amopstrategy => '5', amoppurpose => 's', amopopr => '2388', amopmethod => '403', amopsortfamily => '0' },
+ 
  # crosstype operators vs timestamp
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1114', amopstrategy => '1', amoppurpose => 's', amopopr => '2540', amopmethod => '403', amopsortfamily => '0' },
  { amopfamily => '434', amoplefttype => '1184', amoprighttype => '1114', amopstrategy => '2', amoppurpose => 's', amopopr => '2541', amopmethod => '403', amopsortfamily => '0' },
***************
*** 378,394 ****
--- 397,418 ----
  
  # bpchar_ops
  { amopfamily => '427', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '1', amoppurpose => 's', amopopr => '1054', amopmethod => '405', amopsortfamily => '0' },
+ 
  # char_ops
  { amopfamily => '431', amoplefttype => '18', amoprighttype => '18', amopstrategy => '1', amoppurpose => 's', amopopr => '92', amopmethod => '405', amopsortfamily => '0' },
+ 
  # date_ops
  { amopfamily => '435', amoplefttype => '1082', amoprighttype => '1082', amopstrategy => '1', amoppurpose => 's', amopopr => '1093', amopmethod => '405', amopsortfamily => '0' },
+ 
  # float_ops
  { amopfamily => '1971', amoplefttype => '700', amoprighttype => '700', amopstrategy => '1', amoppurpose => 's', amopopr => '620', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1971', amoplefttype => '701', amoprighttype => '701', amopstrategy => '1', amoppurpose => 's', amopopr => '670', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1971', amoplefttype => '700', amoprighttype => '701', amopstrategy => '1', amoppurpose => 's', amopopr => '1120', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1971', amoplefttype => '701', amoprighttype => '700', amopstrategy => '1', amoppurpose => 's', amopopr => '1130', amopmethod => '405', amopsortfamily => '0' },
+ 
  # network_ops
  { amopfamily => '1975', amoplefttype => '869', amoprighttype => '869', amopstrategy => '1', amoppurpose => 's', amopopr => '1201', amopmethod => '405', amopsortfamily => '0' },
+ 
  # integer_ops
  { amopfamily => '1977', amoplefttype => '21', amoprighttype => '21', amopstrategy => '1', amoppurpose => 's', amopopr => '94', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1977', amoplefttype => '23', amoprighttype => '23', amopstrategy => '1', amoppurpose => 's', amopopr => '96', amopmethod => '405', amopsortfamily => '0' },
***************
*** 399,450 ****
--- 423,498 ----
  { amopfamily => '1977', amoplefttype => '23', amoprighttype => '20', amopstrategy => '1', amoppurpose => 's', amopopr => '15', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1977', amoplefttype => '20', amoprighttype => '21', amopstrategy => '1', amoppurpose => 's', amopopr => '1868', amopmethod => '405', amopsortfamily => '0' },
  { amopfamily => '1977', amoplefttype => '20', amoprighttype => '23', amopstrategy => '1', amoppurpose => 's', amopopr => '416', amopmethod => '405', amopsortfamily => '0' },
+ 
  # interval_ops
  { amopfamily => '1983', amoplefttype => '1186', amoprighttype => '1186', amopstrategy => '1', amoppurpose => 's', amopopr => '1330', amopmethod => '405', amopsortfamily => '0' },
+ 
  # macaddr_ops
  { amopfamily => '1985', amoplefttype => '829', amoprighttype => '829', amopstrategy => '1', amoppurpose => 's', amopopr => '1220', amopmethod => '405', amopsortfamily => '0' },
+ 
  # macaddr8_ops
  { amopfamily => '3372', amoplefttype => '774', amoprighttype => '774', amopstrategy => '1', amoppurpose => 's', amopopr => '3362', amopmethod => '405', amopsortfamily => '0' },
+ 
  # name_ops
  { amopfamily => '1987', amoplefttype => '19', amoprighttype => '19', amopstrategy => '1', amoppurpose => 's', amopopr => '93', amopmethod => '405', amopsortfamily => '0' },
+ 
  # oid_ops
  { amopfamily => '1990', amoplefttype => '26', amoprighttype => '26', amopstrategy => '1', amoppurpose => 's', amopopr => '607', amopmethod => '405', amopsortfamily => '0' },
+ 
  # oidvector_ops
  { amopfamily => '1992', amoplefttype => '30', amoprighttype => '30', amopstrategy => '1', amoppurpose => 's', amopopr => '649', amopmethod => '405', amopsortfamily => '0' },
+ 
  # text_ops
  { amopfamily => '1995', amoplefttype => '25', amoprighttype => '25', amopstrategy => '1', amoppurpose => 's', amopopr => '98', amopmethod => '405', amopsortfamily => '0' },
+ 
  # time_ops
  { amopfamily => '1997', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '1', amoppurpose => 's', amopopr => '1108', amopmethod => '405', amopsortfamily => '0' },
+ 
  # timestamptz_ops
  { amopfamily => '1999', amoplefttype => '1184', amoprighttype => '1184', amopstrategy => '1', amoppurpose => 's', amopopr => '1320', amopmethod => '405', amopsortfamily => '0' },
+ 
  # timetz_ops
  { amopfamily => '2001', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '1', amoppurpose => 's', amopopr => '1550', amopmethod => '405', amopsortfamily => '0' },
+ 
  # timestamp_ops
  { amopfamily => '2040', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '1', amoppurpose => 's', amopopr => '2060', amopmethod => '405', amopsortfamily => '0' },
+ 
  # bool_ops
  { amopfamily => '2222', amoplefttype => '16', amoprighttype => '16', amopstrategy => '1', amoppurpose => 's', amopopr => '91', amopmethod => '405', amopsortfamily => '0' },
+ 
  # bytea_ops
  { amopfamily => '2223', amoplefttype => '17', amoprighttype => '17', amopstrategy => '1', amoppurpose => 's', amopopr => '1955', amopmethod => '405', amopsortfamily => '0' },
+ 
  # xid_ops
  { amopfamily => '2225', amoplefttype => '28', amoprighttype => '28', amopstrategy => '1', amoppurpose => 's', amopopr => '352', amopmethod => '405', amopsortfamily => '0' },
+ 
  # cid_ops
  { amopfamily => '2226', amoplefttype => '29', amoprighttype => '29', amopstrategy => '1', amoppurpose => 's', amopopr => '385', amopmethod => '405', amopsortfamily => '0' },
+ 
  # abstime_ops
  { amopfamily => '2227', amoplefttype => '702', amoprighttype => '702', amopstrategy => '1', amoppurpose => 's', amopopr => '560', amopmethod => '405', amopsortfamily => '0' },
+ 
  # reltime_ops
  { amopfamily => '2228', amoplefttype => '703', amoprighttype => '703', amopstrategy => '1', amoppurpose => 's', amopopr => '566', amopmethod => '405', amopsortfamily => '0' },
+ 
  # text_pattern_ops
  { amopfamily => '2229', amoplefttype => '25', amoprighttype => '25', amopstrategy => '1', amoppurpose => 's', amopopr => '98', amopmethod => '405', amopsortfamily => '0' },
+ 
  # bpchar_pattern_ops
  { amopfamily => '2231', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '1', amoppurpose => 's', amopopr => '1054', amopmethod => '405', amopsortfamily => '0' },
+ 
  # aclitem_ops
  { amopfamily => '2235', amoplefttype => '1033', amoprighttype => '1033', amopstrategy => '1', amoppurpose => 's', amopopr => '974', amopmethod => '405', amopsortfamily => '0' },
+ 
  # uuid_ops
  { amopfamily => '2969', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '1', amoppurpose => 's', amopopr => '2972', amopmethod => '405', amopsortfamily => '0' },
+ 
  # pg_lsn_ops
  { amopfamily => '3254', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '1', amoppurpose => 's', amopopr => '3222', amopmethod => '405', amopsortfamily => '0' },
+ 
  # numeric_ops
  { amopfamily => '1998', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '1', amoppurpose => 's', amopopr => '1752', amopmethod => '405', amopsortfamily => '0' },
+ 
  # array_ops
  { amopfamily => '627', amoplefttype => '2277', amoprighttype => '2277', amopstrategy => '1', amoppurpose => 's', amopopr => '1070', amopmethod => '405', amopsortfamily => '0' },
  
***************
*** 674,697 ****
--- 722,749 ----
  { amopfamily => '3794', amoplefttype => '869', amoprighttype => '869', amopstrategy => '27', amoppurpose => 's', amopopr => '934', amopmethod => '4000', amopsortfamily => '0' },
  
  # BRIN opclasses
+ 
  # minmax bytea
  { amopfamily => '4064', amoplefttype => '17', amoprighttype => '17', amopstrategy => '1', amoppurpose => 's', amopopr => '1957', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4064', amoplefttype => '17', amoprighttype => '17', amopstrategy => '2', amoppurpose => 's', amopopr => '1958', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4064', amoplefttype => '17', amoprighttype => '17', amopstrategy => '3', amoppurpose => 's', amopopr => '1955', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4064', amoplefttype => '17', amoprighttype => '17', amopstrategy => '4', amoppurpose => 's', amopopr => '1960', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4064', amoplefttype => '17', amoprighttype => '17', amopstrategy => '5', amoppurpose => 's', amopopr => '1959', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax "char"
  { amopfamily => '4062', amoplefttype => '18', amoprighttype => '18', amopstrategy => '1', amoppurpose => 's', amopopr => '631', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4062', amoplefttype => '18', amoprighttype => '18', amopstrategy => '2', amoppurpose => 's', amopopr => '632', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4062', amoplefttype => '18', amoprighttype => '18', amopstrategy => '3', amoppurpose => 's', amopopr => '92', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4062', amoplefttype => '18', amoprighttype => '18', amopstrategy => '4', amoppurpose => 's', amopopr => '634', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4062', amoplefttype => '18', amoprighttype => '18', amopstrategy => '5', amoppurpose => 's', amopopr => '633', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax name
  { amopfamily => '4065', amoplefttype => '19', amoprighttype => '19', amopstrategy => '1', amoppurpose => 's', amopopr => '660', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4065', amoplefttype => '19', amoprighttype => '19', amopstrategy => '2', amoppurpose => 's', amopopr => '661', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4065', amoplefttype => '19', amoprighttype => '19', amopstrategy => '3', amoppurpose => 's', amopopr => '93', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4065', amoplefttype => '19', amoprighttype => '19', amopstrategy => '4', amoppurpose => 's', amopopr => '663', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4065', amoplefttype => '19', amoprighttype => '19', amopstrategy => '5', amoppurpose => 's', amopopr => '662', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax integer
  { amopfamily => '4054', amoplefttype => '20', amoprighttype => '20', amopstrategy => '1', amoppurpose => 's', amopopr => '412', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4054', amoplefttype => '20', amoprighttype => '20', amopstrategy => '2', amoppurpose => 's', amopopr => '414', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 745,762 ****
--- 797,817 ----
  { amopfamily => '4056', amoplefttype => '25', amoprighttype => '25', amopstrategy => '3', amoppurpose => 's', amopopr => '98', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4056', amoplefttype => '25', amoprighttype => '25', amopstrategy => '4', amoppurpose => 's', amopopr => '667', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4056', amoplefttype => '25', amoprighttype => '25', amopstrategy => '5', amoppurpose => 's', amopopr => '666', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax oid
  { amopfamily => '4068', amoplefttype => '26', amoprighttype => '26', amopstrategy => '1', amoppurpose => 's', amopopr => '609', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4068', amoplefttype => '26', amoprighttype => '26', amopstrategy => '2', amoppurpose => 's', amopopr => '611', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4068', amoplefttype => '26', amoprighttype => '26', amopstrategy => '3', amoppurpose => 's', amopopr => '607', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4068', amoplefttype => '26', amoprighttype => '26', amopstrategy => '4', amoppurpose => 's', amopopr => '612', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4068', amoplefttype => '26', amoprighttype => '26', amopstrategy => '5', amoppurpose => 's', amopopr => '610', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax tid
  { amopfamily => '4069', amoplefttype => '27', amoprighttype => '27', amopstrategy => '1', amoppurpose => 's', amopopr => '2799', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4069', amoplefttype => '27', amoprighttype => '27', amopstrategy => '2', amoppurpose => 's', amopopr => '2801', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4069', amoplefttype => '27', amoprighttype => '27', amopstrategy => '3', amoppurpose => 's', amopopr => '387', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4069', amoplefttype => '27', amoprighttype => '27', amopstrategy => '4', amoppurpose => 's', amopopr => '2802', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4069', amoplefttype => '27', amoprighttype => '27', amopstrategy => '5', amoppurpose => 's', amopopr => '2800', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax float (float4, float8)
  { amopfamily => '4070', amoplefttype => '700', amoprighttype => '700', amopstrategy => '1', amoppurpose => 's', amopopr => '622', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4070', amoplefttype => '700', amoprighttype => '700', amopstrategy => '2', amoppurpose => 's', amopopr => '624', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 785,814 ****
--- 840,874 ----
  { amopfamily => '4072', amoplefttype => '702', amoprighttype => '702', amopstrategy => '3', amoppurpose => 's', amopopr => '560', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4072', amoplefttype => '702', amoprighttype => '702', amopstrategy => '4', amoppurpose => 's', amopopr => '565', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4072', amoplefttype => '702', amoprighttype => '702', amopstrategy => '5', amoppurpose => 's', amopopr => '563', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax reltime
  { amopfamily => '4073', amoplefttype => '703', amoprighttype => '703', amopstrategy => '1', amoppurpose => 's', amopopr => '568', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4073', amoplefttype => '703', amoprighttype => '703', amopstrategy => '2', amoppurpose => 's', amopopr => '570', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4073', amoplefttype => '703', amoprighttype => '703', amopstrategy => '3', amoppurpose => 's', amopopr => '566', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4073', amoplefttype => '703', amoprighttype => '703', amopstrategy => '4', amoppurpose => 's', amopopr => '571', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4073', amoplefttype => '703', amoprighttype => '703', amopstrategy => '5', amoppurpose => 's', amopopr => '569', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax macaddr
  { amopfamily => '4074', amoplefttype => '829', amoprighttype => '829', amopstrategy => '1', amoppurpose => 's', amopopr => '1222', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4074', amoplefttype => '829', amoprighttype => '829', amopstrategy => '2', amoppurpose => 's', amopopr => '1223', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4074', amoplefttype => '829', amoprighttype => '829', amopstrategy => '3', amoppurpose => 's', amopopr => '1220', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4074', amoplefttype => '829', amoprighttype => '829', amopstrategy => '4', amoppurpose => 's', amopopr => '1225', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4074', amoplefttype => '829', amoprighttype => '829', amopstrategy => '5', amoppurpose => 's', amopopr => '1224', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax macaddr8
  { amopfamily => '4109', amoplefttype => '774', amoprighttype => '774', amopstrategy => '1', amoppurpose => 's', amopopr => '3364', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4109', amoplefttype => '774', amoprighttype => '774', amopstrategy => '2', amoppurpose => 's', amopopr => '3365', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4109', amoplefttype => '774', amoprighttype => '774', amopstrategy => '3', amoppurpose => 's', amopopr => '3362', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4109', amoplefttype => '774', amoprighttype => '774', amopstrategy => '4', amoppurpose => 's', amopopr => '3367', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4109', amoplefttype => '774', amoprighttype => '774', amopstrategy => '5', amoppurpose => 's', amopopr => '3366', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax inet
  { amopfamily => '4075', amoplefttype => '869', amoprighttype => '869', amopstrategy => '1', amoppurpose => 's', amopopr => '1203', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4075', amoplefttype => '869', amoprighttype => '869', amopstrategy => '2', amoppurpose => 's', amopopr => '1204', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4075', amoplefttype => '869', amoprighttype => '869', amopstrategy => '3', amoppurpose => 's', amopopr => '1201', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4075', amoplefttype => '869', amoprighttype => '869', amopstrategy => '4', amoppurpose => 's', amopopr => '1206', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4075', amoplefttype => '869', amoprighttype => '869', amopstrategy => '5', amoppurpose => 's', amopopr => '1205', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # inclusion inet
  { amopfamily => '4102', amoplefttype => '869', amoprighttype => '869', amopstrategy => '3', amoppurpose => 's', amopopr => '3552', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4102', amoplefttype => '869', amoprighttype => '869', amopstrategy => '7', amoppurpose => 's', amopopr => '934', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 816,833 ****
--- 876,896 ----
  { amopfamily => '4102', amoplefttype => '869', amoprighttype => '869', amopstrategy => '18', amoppurpose => 's', amopopr => '1201', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4102', amoplefttype => '869', amoprighttype => '869', amopstrategy => '24', amoppurpose => 's', amopopr => '933', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4102', amoplefttype => '869', amoprighttype => '869', amopstrategy => '26', amoppurpose => 's', amopopr => '931', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax character
  { amopfamily => '4076', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '1', amoppurpose => 's', amopopr => '1058', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4076', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '2', amoppurpose => 's', amopopr => '1059', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4076', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '3', amoppurpose => 's', amopopr => '1054', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4076', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '4', amoppurpose => 's', amopopr => '1061', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4076', amoplefttype => '1042', amoprighttype => '1042', amopstrategy => '5', amoppurpose => 's', amopopr => '1060', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax time without time zone
  { amopfamily => '4077', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '1', amoppurpose => 's', amopopr => '1110', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4077', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '2', amoppurpose => 's', amopopr => '1111', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4077', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '3', amoppurpose => 's', amopopr => '1108', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4077', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '4', amoppurpose => 's', amopopr => '1113', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4077', amoplefttype => '1083', amoprighttype => '1083', amopstrategy => '5', amoppurpose => 's', amopopr => '1112', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax datetime (date, timestamp, timestamptz)
  { amopfamily => '4059', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '1', amoppurpose => 's', amopopr => '2062', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4059', amoplefttype => '1114', amoprighttype => '1114', amopstrategy => '2', amoppurpose => 's', amopopr => '2063', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 881,916 ****
--- 944,985 ----
  { amopfamily => '4078', amoplefttype => '1186', amoprighttype => '1186', amopstrategy => '3', amoppurpose => 's', amopopr => '1330', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4078', amoplefttype => '1186', amoprighttype => '1186', amopstrategy => '4', amoppurpose => 's', amopopr => '1335', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4078', amoplefttype => '1186', amoprighttype => '1186', amopstrategy => '5', amoppurpose => 's', amopopr => '1334', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax time with time zone
  { amopfamily => '4058', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '1', amoppurpose => 's', amopopr => '1552', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4058', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '2', amoppurpose => 's', amopopr => '1553', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4058', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '3', amoppurpose => 's', amopopr => '1550', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4058', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '4', amoppurpose => 's', amopopr => '1555', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4058', amoplefttype => '1266', amoprighttype => '1266', amopstrategy => '5', amoppurpose => 's', amopopr => '1554', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax bit
  { amopfamily => '4079', amoplefttype => '1560', amoprighttype => '1560', amopstrategy => '1', amoppurpose => 's', amopopr => '1786', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4079', amoplefttype => '1560', amoprighttype => '1560', amopstrategy => '2', amoppurpose => 's', amopopr => '1788', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4079', amoplefttype => '1560', amoprighttype => '1560', amopstrategy => '3', amoppurpose => 's', amopopr => '1784', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4079', amoplefttype => '1560', amoprighttype => '1560', amopstrategy => '4', amoppurpose => 's', amopopr => '1789', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4079', amoplefttype => '1560', amoprighttype => '1560', amopstrategy => '5', amoppurpose => 's', amopopr => '1787', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax bit varying
  { amopfamily => '4080', amoplefttype => '1562', amoprighttype => '1562', amopstrategy => '1', amoppurpose => 's', amopopr => '1806', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4080', amoplefttype => '1562', amoprighttype => '1562', amopstrategy => '2', amoppurpose => 's', amopopr => '1808', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4080', amoplefttype => '1562', amoprighttype => '1562', amopstrategy => '3', amoppurpose => 's', amopopr => '1804', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4080', amoplefttype => '1562', amoprighttype => '1562', amopstrategy => '4', amoppurpose => 's', amopopr => '1809', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4080', amoplefttype => '1562', amoprighttype => '1562', amopstrategy => '5', amoppurpose => 's', amopopr => '1807', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax numeric
  { amopfamily => '4055', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '1', amoppurpose => 's', amopopr => '1754', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4055', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '2', amoppurpose => 's', amopopr => '1755', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4055', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '3', amoppurpose => 's', amopopr => '1752', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4055', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '4', amoppurpose => 's', amopopr => '1757', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4055', amoplefttype => '1700', amoprighttype => '1700', amopstrategy => '5', amoppurpose => 's', amopopr => '1756', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax uuid
  { amopfamily => '4081', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '1', amoppurpose => 's', amopopr => '2974', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4081', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '2', amoppurpose => 's', amopopr => '2976', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4081', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '3', amoppurpose => 's', amopopr => '2972', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4081', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '4', amoppurpose => 's', amopopr => '2977', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4081', amoplefttype => '2950', amoprighttype => '2950', amopstrategy => '5', amoppurpose => 's', amopopr => '2975', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # inclusion range types
  { amopfamily => '4103', amoplefttype => '3831', amoprighttype => '3831', amopstrategy => '1', amoppurpose => 's', amopopr => '3893', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4103', amoplefttype => '3831', amoprighttype => '3831', amopstrategy => '2', amoppurpose => 's', amopopr => '3895', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 926,937 ****
--- 995,1008 ----
  { amopfamily => '4103', amoplefttype => '3831', amoprighttype => '3831', amopstrategy => '21', amoppurpose => 's', amopopr => '3885', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4103', amoplefttype => '3831', amoprighttype => '3831', amopstrategy => '22', amoppurpose => 's', amopopr => '3887', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4103', amoplefttype => '3831', amoprighttype => '3831', amopstrategy => '23', amoppurpose => 's', amopopr => '3886', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # minmax pg_lsn
  { amopfamily => '4082', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '1', amoppurpose => 's', amopopr => '3224', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4082', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '2', amoppurpose => 's', amopopr => '3226', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4082', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '3', amoppurpose => 's', amopopr => '3222', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4082', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '4', amoppurpose => 's', amopopr => '3227', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4082', amoplefttype => '3220', amoprighttype => '3220', amopstrategy => '5', amoppurpose => 's', amopopr => '3225', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # inclusion box
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '603', amopstrategy => '1', amoppurpose => 's', amopopr => '493', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '603', amopstrategy => '2', amoppurpose => 's', amopopr => '494', amopmethod => '3580', amopsortfamily => '0' },
***************
*** 945,950 ****
--- 1016,1022 ----
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '603', amopstrategy => '10', amoppurpose => 's', amopopr => '2570', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '603', amopstrategy => '11', amoppurpose => 's', amopopr => '2573', amopmethod => '3580', amopsortfamily => '0' },
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '603', amopstrategy => '12', amoppurpose => 's', amopopr => '2572', amopmethod => '3580', amopsortfamily => '0' },
+ 
  # we could, but choose not to, supply entries for strategies 13 and 14
  { amopfamily => '4104', amoplefttype => '603', amoprighttype => '600', amopstrategy => '7', amoppurpose => 's', amopopr => '433', amopmethod => '3580', amopsortfamily => '0' },
  
diff --git a/src/include/catalog/pg_amproc.dat b/src/include/catalog/pg_amproc.dat
new file mode 100644
index 884609c..64f3b6c
*** a/src/include/catalog/pg_amproc.dat
--- b/src/include/catalog/pg_amproc.dat
***************
*** 260,280 ****
--- 260,284 ----
  { amprocfamily => '5000', amproclefttype => '603', amprocrighttype => '603', amprocnum => '5', amproc => '5016' },
  
  # BRIN opclasses
+ 
  # minmax bytea
  { amprocfamily => '4064', amproclefttype => '17', amprocrighttype => '17', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4064', amproclefttype => '17', amprocrighttype => '17', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4064', amproclefttype => '17', amprocrighttype => '17', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4064', amproclefttype => '17', amprocrighttype => '17', amprocnum => '4', amproc => '3386' },
+ 
  # minmax "char"
  { amprocfamily => '4062', amproclefttype => '18', amprocrighttype => '18', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4062', amproclefttype => '18', amprocrighttype => '18', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4062', amproclefttype => '18', amprocrighttype => '18', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4062', amproclefttype => '18', amprocrighttype => '18', amprocnum => '4', amproc => '3386' },
+ 
  # minmax name
  { amprocfamily => '4065', amproclefttype => '19', amprocrighttype => '19', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4065', amproclefttype => '19', amprocrighttype => '19', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4065', amproclefttype => '19', amprocrighttype => '19', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4065', amproclefttype => '19', amprocrighttype => '19', amprocnum => '4', amproc => '3386' },
+ 
  # minmax integer: int2, int4, int8
  { amprocfamily => '4054', amproclefttype => '20', amprocrighttype => '20', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4054', amproclefttype => '20', amprocrighttype => '20', amprocnum => '2', amproc => '3384' },
***************
*** 320,335 ****
--- 324,342 ----
  { amprocfamily => '4056', amproclefttype => '25', amprocrighttype => '25', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4056', amproclefttype => '25', amprocrighttype => '25', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4056', amproclefttype => '25', amprocrighttype => '25', amprocnum => '4', amproc => '3386' },
+ 
  # minmax oid
  { amprocfamily => '4068', amproclefttype => '26', amprocrighttype => '26', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4068', amproclefttype => '26', amprocrighttype => '26', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4068', amproclefttype => '26', amprocrighttype => '26', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4068', amproclefttype => '26', amprocrighttype => '26', amprocnum => '4', amproc => '3386' },
+ 
  # minmax tid
  { amprocfamily => '4069', amproclefttype => '27', amprocrighttype => '27', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4069', amproclefttype => '27', amprocrighttype => '27', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4069', amproclefttype => '27', amprocrighttype => '27', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4069', amproclefttype => '27', amprocrighttype => '27', amprocnum => '4', amproc => '3386' },
+ 
  # minmax float
  { amprocfamily => '4070', amproclefttype => '700', amprocrighttype => '700', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4070', amproclefttype => '700', amprocrighttype => '700', amprocnum => '2', amproc => '3384' },
***************
*** 356,381 ****
--- 363,393 ----
  { amprocfamily => '4072', amproclefttype => '702', amprocrighttype => '702', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4072', amproclefttype => '702', amprocrighttype => '702', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4072', amproclefttype => '702', amprocrighttype => '702', amprocnum => '4', amproc => '3386' },
+ 
  # minmax reltime
  { amprocfamily => '4073', amproclefttype => '703', amprocrighttype => '703', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4073', amproclefttype => '703', amprocrighttype => '703', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4073', amproclefttype => '703', amprocrighttype => '703', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4073', amproclefttype => '703', amprocrighttype => '703', amprocnum => '4', amproc => '3386' },
+ 
  # minmax macaddr
  { amprocfamily => '4074', amproclefttype => '829', amprocrighttype => '829', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4074', amproclefttype => '829', amprocrighttype => '829', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4074', amproclefttype => '829', amprocrighttype => '829', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4074', amproclefttype => '829', amprocrighttype => '829', amprocnum => '4', amproc => '3386' },
+ 
  # minmax macaddr8
  { amprocfamily => '4109', amproclefttype => '774', amprocrighttype => '774', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4109', amproclefttype => '774', amprocrighttype => '774', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4109', amproclefttype => '774', amprocrighttype => '774', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4109', amproclefttype => '774', amprocrighttype => '774', amprocnum => '4', amproc => '3386' },
+ 
  # minmax inet
  { amprocfamily => '4075', amproclefttype => '869', amprocrighttype => '869', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4075', amproclefttype => '869', amprocrighttype => '869', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4075', amproclefttype => '869', amprocrighttype => '869', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4075', amproclefttype => '869', amprocrighttype => '869', amprocnum => '4', amproc => '3386' },
+ 
  # inclusion inet
  { amprocfamily => '4102', amproclefttype => '869', amprocrighttype => '869', amprocnum => '1', amproc => '4105' },
  { amprocfamily => '4102', amproclefttype => '869', amprocrighttype => '869', amprocnum => '2', amproc => '4106' },
***************
*** 384,399 ****
--- 396,414 ----
  { amprocfamily => '4102', amproclefttype => '869', amprocrighttype => '869', amprocnum => '11', amproc => '4063' },
  { amprocfamily => '4102', amproclefttype => '869', amprocrighttype => '869', amprocnum => '12', amproc => '4071' },
  { amprocfamily => '4102', amproclefttype => '869', amprocrighttype => '869', amprocnum => '13', amproc => '930' },
+ 
  # minmax character
  { amprocfamily => '4076', amproclefttype => '1042', amprocrighttype => '1042', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4076', amproclefttype => '1042', amprocrighttype => '1042', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4076', amproclefttype => '1042', amprocrighttype => '1042', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4076', amproclefttype => '1042', amprocrighttype => '1042', amprocnum => '4', amproc => '3386' },
+ 
  # minmax time without time zone
  { amprocfamily => '4077', amproclefttype => '1083', amprocrighttype => '1083', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4077', amproclefttype => '1083', amprocrighttype => '1083', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4077', amproclefttype => '1083', amprocrighttype => '1083', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4077', amproclefttype => '1083', amprocrighttype => '1083', amprocnum => '4', amproc => '3386' },
+ 
  # minmax datetime (date, timestamp, timestamptz)
  { amprocfamily => '4059', amproclefttype => '1114', amprocrighttype => '1114', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4059', amproclefttype => '1114', amprocrighttype => '1114', amprocnum => '2', amproc => '3384' },
***************
*** 439,469 ****
--- 454,490 ----
  { amprocfamily => '4078', amproclefttype => '1186', amprocrighttype => '1186', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4078', amproclefttype => '1186', amprocrighttype => '1186', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4078', amproclefttype => '1186', amprocrighttype => '1186', amprocnum => '4', amproc => '3386' },
+ 
  # minmax time with time zone
  { amprocfamily => '4058', amproclefttype => '1266', amprocrighttype => '1266', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4058', amproclefttype => '1266', amprocrighttype => '1266', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4058', amproclefttype => '1266', amprocrighttype => '1266', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4058', amproclefttype => '1266', amprocrighttype => '1266', amprocnum => '4', amproc => '3386' },
+ 
  # minmax bit
  { amprocfamily => '4079', amproclefttype => '1560', amprocrighttype => '1560', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4079', amproclefttype => '1560', amprocrighttype => '1560', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4079', amproclefttype => '1560', amprocrighttype => '1560', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4079', amproclefttype => '1560', amprocrighttype => '1560', amprocnum => '4', amproc => '3386' },
+ 
  # minmax bit varying
  { amprocfamily => '4080', amproclefttype => '1562', amprocrighttype => '1562', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4080', amproclefttype => '1562', amprocrighttype => '1562', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4080', amproclefttype => '1562', amprocrighttype => '1562', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4080', amproclefttype => '1562', amprocrighttype => '1562', amprocnum => '4', amproc => '3386' },
+ 
  # minmax numeric
  { amprocfamily => '4055', amproclefttype => '1700', amprocrighttype => '1700', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4055', amproclefttype => '1700', amprocrighttype => '1700', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4055', amproclefttype => '1700', amprocrighttype => '1700', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4055', amproclefttype => '1700', amprocrighttype => '1700', amprocnum => '4', amproc => '3386' },
+ 
  # minmax uuid
  { amprocfamily => '4081', amproclefttype => '2950', amprocrighttype => '2950', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4081', amproclefttype => '2950', amprocrighttype => '2950', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4081', amproclefttype => '2950', amprocrighttype => '2950', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4081', amproclefttype => '2950', amprocrighttype => '2950', amprocnum => '4', amproc => '3386' },
+ 
  # inclusion range types
  { amprocfamily => '4103', amproclefttype => '3831', amprocrighttype => '3831', amprocnum => '1', amproc => '4105' },
  { amprocfamily => '4103', amproclefttype => '3831', amprocrighttype => '3831', amprocnum => '2', amproc => '4106' },
***************
*** 472,482 ****
--- 493,505 ----
  { amprocfamily => '4103', amproclefttype => '3831', amprocrighttype => '3831', amprocnum => '11', amproc => '4057' },
  { amprocfamily => '4103', amproclefttype => '3831', amprocrighttype => '3831', amprocnum => '13', amproc => '3859' },
  { amprocfamily => '4103', amproclefttype => '3831', amprocrighttype => '3831', amprocnum => '14', amproc => '3850' },
+ 
  # minmax pg_lsn
  { amprocfamily => '4082', amproclefttype => '3220', amprocrighttype => '3220', amprocnum => '1', amproc => '3383' },
  { amprocfamily => '4082', amproclefttype => '3220', amprocrighttype => '3220', amprocnum => '2', amproc => '3384' },
  { amprocfamily => '4082', amproclefttype => '3220', amprocrighttype => '3220', amprocnum => '3', amproc => '3385' },
  { amprocfamily => '4082', amproclefttype => '3220', amprocrighttype => '3220', amprocnum => '4', amproc => '3386' },
+ 
  # inclusion box
  { amprocfamily => '4104', amproclefttype => '603', amprocrighttype => '603', amprocnum => '1', amproc => '4105' },
  { amprocfamily => '4104', amproclefttype => '603', amprocrighttype => '603', amprocnum => '2', amproc => '4106' },
diff --git a/src/include/catalog/pg_authid.dat b/src/include/catalog/pg_authid.dat
new file mode 100644
index 927128e..315b0d0
*** a/src/include/catalog/pg_authid.dat
--- b/src/include/catalog/pg_authid.dat
***************
*** 1,12 ****
  # pg_authid.dat
  [
  
! # The uppercase quantities will be replaced at initdb time with
! # user choices.
! # The C code typically refers to these roles using the #define symbols,
! # so be sure to keep those in sync with the DATA lines.
  { oid => '10',
!   rolname => 'POSTGRES', rolsuper => 't', rolcreaterole => 't', rolcreatedb => 't', rolcanlogin => 't', rolreplication => 't', rolbypassrls => 't' },
  { oid => '3373',
    rolname => 'pg_monitor' },
  { oid => '3374',
--- 1,14 ----
  # pg_authid.dat
  [
  
! # The C code typically refers to these roles using the #define symbols
! # in pg_authid.h, so be sure to keep those in sync with the data here.
! 
! # The uppercase quantities will be replaced at initdb time with user choices.
! # so we must double-quote them.
  { oid => '10',
!   rolname => '"POSTGRES"', rolsuper => 't', rolcreaterole => 't', rolcreatedb => 't', rolcanlogin => 't', rolreplication => 't', rolbypassrls => 't' },
! 
  { oid => '3373',
    rolname => 'pg_monitor' },
  { oid => '3374',
diff --git a/src/include/catalog/pg_cast.dat b/src/include/catalog/pg_cast.dat
new file mode 100644
index a1fe83d..add77ad
*** a/src/include/catalog/pg_cast.dat
--- b/src/include/catalog/pg_cast.dat
***************
*** 54,59 ****
--- 54,60 ----
  # between alias types must pass through OID.)	Lastly, there are implicit
  # casts from text and varchar to regclass, which exist mainly to support
  # legacy forms of nextval() and related functions.
+ 
  { castsource => '20', casttarget => '26', castfunc => '1287', castcontext => 'i', castmethod => 'f' },
  { castsource => '21', casttarget => '26', castfunc => '313', castcontext => 'i', castmethod => 'f' },
  { castsource => '23', casttarget => '26', castfunc => '0', castcontext => 'i', castmethod => 'b' },
***************
*** 193,198 ****
--- 194,200 ----
  { castsource => '1186', casttarget => '703', castfunc => '1194', castcontext => 'a', castmethod => 'f' },
  { castsource => '1186', casttarget => '1083', castfunc => '1419', castcontext => 'a', castmethod => 'f' },
  { castsource => '1266', casttarget => '1083', castfunc => '2046', castcontext => 'a', castmethod => 'f' },
+ 
  # Cross-category casts between int4 and abstime, reltime
  { castsource => '23', casttarget => '702', castfunc => '0', castcontext => 'e', castmethod => 'b' },
  { castsource => '702', casttarget => '23', castfunc => '0', castcontext => 'e', castmethod => 'b' },
***************
*** 227,232 ****
--- 229,235 ----
  # BitString category
  { castsource => '1560', casttarget => '1562', castfunc => '0', castcontext => 'i', castmethod => 'b' },
  { castsource => '1562', casttarget => '1560', castfunc => '0', castcontext => 'i', castmethod => 'b' },
+ 
  # Cross-category casts between bit and int4, int8
  { castsource => '20', casttarget => '1560', castfunc => '2075', castcontext => 'e', castmethod => 'f' },
  { castsource => '23', casttarget => '1560', castfunc => '1683', castcontext => 'e', castmethod => 'f' },
***************
*** 241,246 ****
--- 244,250 ----
  # parse_coerce.c's automatic casts ('a' to text, 'e' from text) else odd
  # behavior will ensue when the automatic cast is applied instead of the
  # pg_cast entry!
+ 
  { castsource => '650', casttarget => '25', castfunc => '730', castcontext => 'a', castmethod => 'f' },
  { castsource => '869', casttarget => '25', castfunc => '730', castcontext => 'a', castmethod => 'f' },
  { castsource => '16', casttarget => '25', castfunc => '2971', castcontext => 'a', castmethod => 'f' },
***************
*** 248,253 ****
--- 252,258 ----
  { castsource => '25', casttarget => '142', castfunc => '2896', castcontext => 'e', castmethod => 'f' },
  
  # Cross-category casts to and from VARCHAR
+ 
  # We support all the same casts as for TEXT.
  { castsource => '650', casttarget => '1043', castfunc => '730', castcontext => 'a', castmethod => 'f' },
  { castsource => '869', casttarget => '1043', castfunc => '730', castcontext => 'a', castmethod => 'f' },
***************
*** 256,261 ****
--- 261,267 ----
  { castsource => '1043', casttarget => '142', castfunc => '2896', castcontext => 'e', castmethod => 'f' },
  
  # Cross-category casts to and from BPCHAR
+ 
  # We support all the same casts as for TEXT.
  { castsource => '650', casttarget => '1042', castfunc => '730', castcontext => 'a', castmethod => 'f' },
  { castsource => '869', casttarget => '1042', castfunc => '730', castcontext => 'a', castmethod => 'f' },
diff --git a/src/include/catalog/pg_class.dat b/src/include/catalog/pg_class.dat
new file mode 100644
index 3b9b15c..afd2c55
*** a/src/include/catalog/pg_class.dat
--- b/src/include/catalog/pg_class.dat
***************
*** 1,12 ****
  # pg_class.dat
  [
  
! # NOTE: only "bootstrapped" relations need to be declared here.  Be sure that
  # the OIDs listed here match those given in their CATALOG macros, and that
  # the relnatts values are correct.
  
  # Note: "3" in the relfrozenxid column stands for FirstNormalTransactionId;
  # similarly, "1" in relminmxid stands for FirstMultiXactId
  { oid => '1247',
    relname => 'pg_type', reltype => '71', relnatts => '30', relhasoids => 't', relfrozenxid => '3', relminmxid => '1' },
  { oid => '1249',
--- 1,13 ----
  # pg_class.dat
  [
  
! # Note: only "bootstrapped" relations need to be declared here.  Be sure that
  # the OIDs listed here match those given in their CATALOG macros, and that
  # the relnatts values are correct.
  
  # Note: "3" in the relfrozenxid column stands for FirstNormalTransactionId;
  # similarly, "1" in relminmxid stands for FirstMultiXactId
+ 
  { oid => '1247',
    relname => 'pg_type', reltype => '71', relnatts => '30', relhasoids => 't', relfrozenxid => '3', relminmxid => '1' },
  { oid => '1249',
***************
*** 16,26 ****
  { oid => '1259',
    relname => 'pg_class', reltype => '83', relnatts => '33', relhasoids => 't', relfrozenxid => '3', relminmxid => '1' },
  
- # default selection for replica identity (primary key or nothing)
- # no replica identity is logged for this relation
- # all columns are logged as replica identity
- # an explicitly chosen candidate key's columns are used as replica identity.
- # Note this will still be set if the index has been dropped; in that case it
- # has the same meaning as 'd'.
- 
  ]
--- 17,20 ----
diff --git a/src/include/catalog/pg_database.dat b/src/include/catalog/pg_database.dat
new file mode 100644
index bc4d41f..dfa1553
*** a/src/include/catalog/pg_database.dat
--- b/src/include/catalog/pg_database.dat
***************
*** 1,7 ****
  # pg_database.dat
  [
  
  { oid => '1', shdescr => 'default template for new databases',
!   datname => 'template1', datdba => 'PGUID', encoding => 'ENCODING', datcollate => 'LC_COLLATE', datctype => 'LC_CTYPE', datistemplate => 't', datallowconn => 't', datconnlimit => '-1', datlastsysoid => '0', datfrozenxid => '0', datminmxid => '1', dattablespace => '1663', datacl => '_null_' },
  
  ]
--- 1,10 ----
  # pg_database.dat
  [
  
+ # LC_COLLATE and LC_CTYPE will be replaced at initdb time with user choices
+ # that might contain non-word characters, so we must double-quote them.
+ 
  { oid => '1', shdescr => 'default template for new databases',
!   datname => 'template1', datdba => 'PGUID', encoding => 'ENCODING', datcollate => '"LC_COLLATE"', datctype => '"LC_CTYPE"', datistemplate => 't', datallowconn => 't', datconnlimit => '-1', datlastsysoid => '0', datfrozenxid => '0', datminmxid => '1', dattablespace => '1663', datacl => '_null_' },
  
  ]
diff --git a/src/include/catalog/pg_namespace.dat b/src/include/catalog/pg_namespace.dat
new file mode 100644
index 646fd30..3281eea
*** a/src/include/catalog/pg_namespace.dat
--- b/src/include/catalog/pg_namespace.dat
***************
*** 8,13 ****
  { oid => '2200', descr => 'standard public schema',
    nspname => 'public', nspowner => 'PGUID', nspacl => '_null_' },
  
- # prototypes for functions in pg_namespace.c
- 
  ]
--- 8,11 ----
diff --git a/src/include/catalog/pg_opclass.dat b/src/include/catalog/pg_opclass.dat
new file mode 100644
index b0f2e8c..8e4569e
*** a/src/include/catalog/pg_opclass.dat
--- b/src/include/catalog/pg_opclass.dat
***************
*** 44,55 ****
--- 44,57 ----
  { opcmethod => '405', opcname => 'macaddr_ops', opcfamily => '1985', opcintype => '829' },
  { opcmethod => '403', opcname => 'macaddr8_ops', opcfamily => '3371', opcintype => '774' },
  { opcmethod => '405', opcname => 'macaddr8_ops', opcfamily => '3372', opcintype => '774' },
+ 
  # Here's an ugly little hack to save space in the system catalog indexes.
  # btree doesn't ordinarily allow a storage type different from input type;
  # but cstring and name are the same thing except for trailing padding,
  # and we can safely omit that within an index entry.  So we declare the
  # btree opclass for name as using cstring storage type.
  { opcmethod => '403', opcname => 'name_ops', opcfamily => '1986', opcintype => '19', opckeytype => '2275' },
+ 
  { opcmethod => '405', opcname => 'name_ops', opcfamily => '1987', opcintype => '19' },
  { oid => '3125',
    opcmethod => '403', opcname => 'numeric_ops', opcfamily => '1988', opcintype => '1700' },
***************
*** 124,130 ****
--- 126,134 ----
  { opcmethod => '2742', opcname => 'jsonb_path_ops', opcfamily => '4037', opcintype => '3802', opcdefault => 'f', opckeytype => '23' },
  
  # BRIN operator classes
+ 
  # no brin opclass for bool
+ 
  { opcmethod => '3580', opcname => 'bytea_minmax_ops', opcfamily => '4064', opcintype => '17', opckeytype => '17' },
  { opcmethod => '3580', opcname => 'char_minmax_ops', opcfamily => '4062', opcintype => '18', opckeytype => '18' },
  { opcmethod => '3580', opcname => 'name_minmax_ops', opcfamily => '4065', opcintype => '19', opckeytype => '19' },
***************
*** 152,163 ****
--- 156,172 ----
  { opcmethod => '3580', opcname => 'bit_minmax_ops', opcfamily => '4079', opcintype => '1560', opckeytype => '1560' },
  { opcmethod => '3580', opcname => 'varbit_minmax_ops', opcfamily => '4080', opcintype => '1562', opckeytype => '1562' },
  { opcmethod => '3580', opcname => 'numeric_minmax_ops', opcfamily => '4055', opcintype => '1700', opckeytype => '1700' },
+ 
  # no brin opclass for record, anyarray
+ 
  { opcmethod => '3580', opcname => 'uuid_minmax_ops', opcfamily => '4081', opcintype => '2950', opckeytype => '2950' },
  { opcmethod => '3580', opcname => 'range_inclusion_ops', opcfamily => '4103', opcintype => '3831', opckeytype => '3831' },
  { opcmethod => '3580', opcname => 'pg_lsn_minmax_ops', opcfamily => '4082', opcintype => '3220', opckeytype => '3220' },
+ 
  # no brin opclass for enum, tsvector, tsquery, jsonb
+ 
  { opcmethod => '3580', opcname => 'box_inclusion_ops', opcfamily => '4104', opcintype => '603', opckeytype => '603' },
+ 
  # no brin opclass for the geometric types except box
  
  ]
diff --git a/src/include/catalog/pg_operator.dat b/src/include/catalog/pg_operator.dat
new file mode 100644
index 1437225..898e2ae
*** a/src/include/catalog/pg_operator.dat
--- b/src/include/catalog/pg_operator.dat
***************
*** 1,7 ****
  # pg_operator.dat
  [
  
! # Note: every entry in pg_operator.h is expected to have a DESCR() comment.
  # If the operator is a deprecated equivalent of some other entry, be sure
  # to comment it as such so that initdb doesn't think it's a preferred name
  # for the underlying function.
--- 1,7 ----
  # pg_operator.dat
  [
  
! # Note: every entry in pg_operator.h is expected to have a 'descr' comment.
  # If the operator is a deprecated equivalent of some other entry, be sure
  # to comment it as such so that initdb doesn't think it's a preferred name
  # for the underlying function.
***************
*** 1581,1586 ****
--- 1581,1587 ----
    oprname => '&&', oprleft => '3615', oprright => '3615', oprresult => '3615', oprcode => 'tsquery_and' },
  { oid => '3681', descr => 'OR-concatenate',
    oprname => '||', oprleft => '3615', oprright => '3615', oprresult => '3615', oprcode => 'tsquery_or' },
+ 
  # <-> operation calls tsquery_phrase, but function is polymorphic. So, point to OID of the tsquery_phrase
  { oid => '5005', descr => 'phrase-concatenate',
    oprname => '<->', oprleft => '3615', oprright => '3615', oprresult => '3615', oprcode => '5003' },
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
new file mode 100644
index e72aabd..b48773c
*** a/src/include/catalog/pg_proc.dat
--- b/src/include/catalog/pg_proc.dat
***************
*** 1,14 ****
  # pg_proc.dat
  [
  
! # Note: every entry in pg_proc.h is expected to have a DESCR() comment,
! # except for functions that implement pg_operator.h operators and don't
  # have a good reason to be called directly rather than via the operator.
  # (If you do expect such a function to be used directly, you should
  # duplicate the operator's comment.)  initdb will supply suitable default
  # comments for functions referenced by pg_operator.
  # Try to follow the style of existing functions' comments.
  # Some recommended conventions:
  # "I/O" for typinput, typoutput, typreceive, typsend functions
  # "I/O typmod" for typmodin, typmodout functions
  # "aggregate transition function" for aggtransfn functions, unless
--- 1,16 ----
  # pg_proc.dat
  [
  
! # Note: every entry in pg_proc.dat is expected to have a 'descr' comment,
! # except for functions that implement pg_operator.dat operators and don't
  # have a good reason to be called directly rather than via the operator.
  # (If you do expect such a function to be used directly, you should
  # duplicate the operator's comment.)  initdb will supply suitable default
  # comments for functions referenced by pg_operator.
+ 
  # Try to follow the style of existing functions' comments.
  # Some recommended conventions:
+ 
  # "I/O" for typinput, typoutput, typreceive, typsend functions
  # "I/O typmod" for typmodin, typmodout functions
  # "aggregate transition function" for aggtransfn functions, unless
***************
*** 17,23 ****
  # "convert srctypename to desttypename" for cast functions
  # "less-equal-greater" for B-tree comparison functions
  
! # keep the following ordered by OID so that later changes can be made easier
  
  # OIDS 1 - 99
  
--- 19,25 ----
  # "convert srctypename to desttypename" for cast functions
  # "less-equal-greater" for B-tree comparison functions
  
! # Keep the following ordered by OID so that later changes can be made easier
  
  # OIDS 1 - 99
  
***************
*** 1774,1779 ****
--- 1776,1782 ----
  # OIDs are not unique across system catalogs.  Use the other form instead.
  { oid => '1348', descr => 'deprecated, use two-argument form instead',
    proname => 'obj_description', prolang => '14', procost => '100', provolatile => 's', proparallel => 's', pronargs => '1', prorettype => '25', proargtypes => '26', prosrc => 'select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0' },
+ 
  { oid => '1349', descr => 'print type names of oidvector field',
    proname => 'oidvectortypes', provolatile => 's', proparallel => 's', pronargs => '1', prorettype => '25', proargtypes => '30', prosrc => 'oidvectortypes' },
  
***************
*** 1934,1944 ****
  
  # pclose and popen might better be named close and open, but that crashes initdb.
  # - thomas 97/04/20
- 
  { oid => '1433', descr => 'close path',
    proname => 'pclose', proparallel => 's', pronargs => '1', prorettype => '602', proargtypes => '602', prosrc => 'path_close' },
  { oid => '1434', descr => 'open path',
    proname => 'popen', proparallel => 's', pronargs => '1', prorettype => '602', proargtypes => '602', prosrc => 'path_open' },
  { oid => '1435',
    proname => 'path_add', proparallel => 's', pronargs => '2', prorettype => '602', proargtypes => '602 602', prosrc => 'path_add' },
  { oid => '1436',
--- 1937,1947 ----
  
  # pclose and popen might better be named close and open, but that crashes initdb.
  # - thomas 97/04/20
  { oid => '1433', descr => 'close path',
    proname => 'pclose', proparallel => 's', pronargs => '1', prorettype => '602', proargtypes => '602', prosrc => 'path_close' },
  { oid => '1434', descr => 'open path',
    proname => 'popen', proparallel => 's', pronargs => '1', prorettype => '602', proargtypes => '602', prosrc => 'path_open' },
+ 
  { oid => '1435',
    proname => 'path_add', proparallel => 's', pronargs => '2', prorettype => '602', proargtypes => '602 602', prosrc => 'path_add' },
  { oid => '1436',
***************
*** 2730,2735 ****
--- 2733,2739 ----
    proname => 'interval_hash_extended', proparallel => 's', pronargs => '2', prorettype => '20', proargtypes => '1186 20', prosrc => 'interval_hash_extended' },
  
  # OID's 1700 - 1799 NUMERIC data type
+ 
  { oid => '1701', descr => 'I/O',
    proname => 'numeric_in', proparallel => 's', pronargs => '3', prorettype => '1700', proargtypes => '2275 26 23', prosrc => 'numeric_in' },
  { oid => '1702', descr => 'I/O',
***************
*** 4753,4758 ****
--- 4757,4763 ----
    proname => 'bool_anytrue', proparallel => 's', pronargs => '1', prorettype => '16', proargtypes => '2281', prosrc => 'bool_anytrue' },
  { oid => '2517', descr => 'boolean-and aggregate',
    proname => 'bool_and', proisagg => 't', proisstrict => 'f', proparallel => 's', pronargs => '1', prorettype => '16', proargtypes => '16', prosrc => 'aggregate_dummy' },
+ 
  # ANY, SOME? These names conflict with subquery operators. See doc.
  { oid => '2518', descr => 'boolean-or aggregate',
    proname => 'bool_or', proisagg => 't', proisstrict => 'f', proparallel => 's', pronargs => '1', prorettype => '16', proargtypes => '16', prosrc => 'aggregate_dummy' },
***************
*** 4802,4807 ****
--- 4807,4813 ----
  # start time function
  { oid => '2560', descr => 'postmaster start time',
    proname => 'pg_postmaster_start_time', provolatile => 's', proparallel => 's', pronargs => '0', prorettype => '1184', proargtypes => '', prosrc => 'pg_postmaster_start_time' },
+ 
  # config reload time function
  { oid => '2034', descr => 'configuration load time',
    proname => 'pg_conf_load_time', provolatile => 's', proparallel => 'r', pronargs => '0', prorettype => '1184', proargtypes => '', prosrc => 'pg_conf_load_time' },
***************
*** 5658,5663 ****
--- 5664,5670 ----
    proname => 'jsonb_pretty', proparallel => 's', pronargs => '1', prorettype => '25', proargtypes => '3802', prosrc => 'jsonb_pretty' },
  { oid => '3579', descr => 'Insert value into a jsonb',
    proname => 'jsonb_insert', proparallel => 's', pronargs => '4', prorettype => '3802', proargtypes => '3802 1009 3802 16', prosrc => 'jsonb_insert' },
+ 
  # txid
  { oid => '2939', descr => 'I/O',
    proname => 'txid_snapshot_in', proparallel => 's', pronargs => '1', prorettype => '2970', proargtypes => '2275', prosrc => 'txid_snapshot_in' },
***************
*** 6069,6105 ****
  # replication/origin.h
  { oid => '6003', descr => 'create a replication origin',
    proname => 'pg_replication_origin_create', provolatile => 'v', pronargs => '1', prorettype => '26', proargtypes => '25', prosrc => 'pg_replication_origin_create' },
- 
  { oid => '6004', descr => 'drop replication origin identified by its name',
    proname => 'pg_replication_origin_drop', provolatile => 'v', pronargs => '1', prorettype => '2278', proargtypes => '25', prosrc => 'pg_replication_origin_drop' },
- 
  { oid => '6005', descr => 'translate the replication origin\'s name to its id',
    proname => 'pg_replication_origin_oid', provolatile => 's', proparallel => 's', pronargs => '1', prorettype => '26', proargtypes => '25', prosrc => 'pg_replication_origin_oid' },
- 
  { oid => '6006', descr => 'configure session to maintain replication progress tracking for the passed in origin',
    proname => 'pg_replication_origin_session_setup', provolatile => 'v', pronargs => '1', prorettype => '2278', proargtypes => '25', prosrc => 'pg_replication_origin_session_setup' },
- 
  { oid => '6007', descr => 'teardown configured replication progress tracking',
    proname => 'pg_replication_origin_session_reset', provolatile => 'v', pronargs => '0', prorettype => '2278', proargtypes => '', prosrc => 'pg_replication_origin_session_reset' },
- 
  { oid => '6008', descr => 'is a replication origin configured in this session',
    proname => 'pg_replication_origin_session_is_setup', provolatile => 'v', proparallel => 'r', pronargs => '0', prorettype => '16', proargtypes => '', prosrc => 'pg_replication_origin_session_is_setup' },
- 
  { oid => '6009', descr => 'get the replication progress of the current session',
    proname => 'pg_replication_origin_session_progress', provolatile => 'v', pronargs => '1', prorettype => '3220', proargtypes => '16', prosrc => 'pg_replication_origin_session_progress' },
- 
  { oid => '6010', descr => 'setup the transaction\'s origin lsn and timestamp',
    proname => 'pg_replication_origin_xact_setup', provolatile => 'v', proparallel => 'r', pronargs => '2', prorettype => '2278', proargtypes => '3220 1184', prosrc => 'pg_replication_origin_xact_setup' },
- 
  { oid => '6011', descr => 'reset the transaction\'s origin lsn and timestamp',
    proname => 'pg_replication_origin_xact_reset', provolatile => 'v', proparallel => 'r', pronargs => '0', prorettype => '2278', proargtypes => '', prosrc => 'pg_replication_origin_xact_reset' },
- 
  { oid => '6012', descr => 'advance replication identifier to specific location',
    proname => 'pg_replication_origin_advance', provolatile => 'v', pronargs => '2', prorettype => '2278', proargtypes => '25 3220', prosrc => 'pg_replication_origin_advance' },
- 
  { oid => '6013', descr => 'get an individual replication origin\'s replication progress',
    proname => 'pg_replication_origin_progress', provolatile => 'v', pronargs => '2', prorettype => '3220', proargtypes => '25 16', prosrc => 'pg_replication_origin_progress' },
- 
  { oid => '6014', descr => 'get progress for all replication origins',
    proname => 'pg_show_replication_origin_status', prorows => '100', proisstrict => 'f', proretset => 't', provolatile => 'v', proparallel => 'r', pronargs => '0', prorettype => '2249', proargtypes => '', proallargtypes => '{26,25,3220,3220}', proargmodes => '{o,o,o,o}', proargnames => '{local_id, external_id, remote_lsn, local_lsn}', prosrc => 'pg_show_replication_origin_status' },
  
--- 6076,6101 ----
***************
*** 6122,6141 ****
  # pg_controldata related functions
  { oid => '3441', descr => 'pg_controldata general state information as a function',
    proname => 'pg_control_system', provolatile => 'v', proparallel => 's', pronargs => '0', prorettype => '2249', proargtypes => '', proallargtypes => '{23,23,20,1184}', proargmodes => '{o,o,o,o}', proargnames => '{pg_control_version,catalog_version_no,system_identifier,pg_control_last_modified}', prosrc => 'pg_control_system' },
- 
  { oid => '3442', descr => 'pg_controldata checkpoint state information as a function',
    proname => 'pg_control_checkpoint', provolatile => 'v', proparallel => 's', pronargs => '0', prorettype => '2249', proargtypes => '', proallargtypes => '{3220,3220,25,23,23,16,25,26,28,28,28,26,28,28,26,28,28,1184}', proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', proargnames => '{checkpoint_lsn,redo_lsn,redo_wal_file,timeline_id,prev_timeline_id,full_page_writes,next_xid,next_oid,next_multixact_id,next_multi_offset,oldest_xid,oldest_xid_dbid,oldest_active_xid,oldest_multi_xid,oldest_multi_dbid,oldest_commit_ts_xid,newest_commit_ts_xid,checkpoint_time}', prosrc => 'pg_control_checkpoint' },
- 
  { oid => '3443', descr => 'pg_controldata recovery state information as a function',
    proname => 'pg_control_recovery', provolatile => 'v', proparallel => 's', pronargs => '0', prorettype => '2249', proargtypes => '', proallargtypes => '{3220,23,3220,3220,16}', proargmodes => '{o,o,o,o,o}', proargnames => '{min_recovery_end_lsn,min_recovery_end_timeline,backup_start_lsn,backup_end_lsn,end_of_backup_record_required}', prosrc => 'pg_control_recovery' },
- 
  { oid => '3444', descr => 'pg_controldata init state information as a function',
    proname => 'pg_control_init', provolatile => 'v', proparallel => 's', pronargs => '0', prorettype => '2249', proargtypes => '', proallargtypes => '{23,23,23,23,23,23,23,23,23,16,16,23}', proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o}', proargnames => '{max_data_alignment,database_block_size,blocks_per_segment,wal_block_size,bytes_per_wal_segment,max_identifier_length,max_index_columns,max_toast_chunk_size,large_object_chunk_size,float4_pass_by_value,float8_pass_by_value,data_page_checksum_version}', prosrc => 'pg_control_init' },
  
  # collation management functions
  { oid => '3445', descr => 'import collations from operating system',
    proname => 'pg_import_system_collations', procost => '100', provolatile => 'v', proparallel => 'r', pronargs => '1', prorettype => '23', proargtypes => '4089', prosrc => 'pg_import_system_collations' },
- 
  { oid => '3448', descr => 'get actual version of collation from operating system',
    proname => 'pg_collation_actual_version', procost => '100', provolatile => 'v', proparallel => 's', pronargs => '1', prorettype => '25', proargtypes => '26', prosrc => 'pg_collation_actual_version' },
  
--- 6118,6133 ----
***************
*** 6149,6167 ****
  { oid => '5028', descr => 'hash partition CHECK constraint',
    proname => 'satisfies_hash_partition', provariadic => '2276', proisstrict => 'f', proparallel => 's', pronargs => '4', prorettype => '16', proargtypes => '26 23 23 2276', proargmodes => '{i,i,i,v}', prosrc => 'satisfies_hash_partition' },
  
- # Symbolic values for provolatile column: these indicate whether the result
- # of a function is dependent *only* on the values of its explicit arguments,
- # or can change due to outside factors (such as parameter variables or
- # table contents).  NOTE: functions having side-effects, such as setval(),
- # must be labeled volatile to ensure they will not get optimized away,
- # even if the actual return value is not changeable.
- 
- # Symbolic values for proparallel column: these indicate whether a function
- # can be safely be run in a parallel backend, during parallelism but
- # necessarily in the master, or only in non-parallel mode.
- 
- # Symbolic values for proargmodes column.  Note that these must agree with
- # the FunctionParameterMode enum in parsenodes.h; we declare them here to
- # be accessible from either header.
- 
  ]
--- 6141,6144 ----
diff --git a/src/include/catalog/pg_range.dat b/src/include/catalog/pg_range.dat
new file mode 100644
index 063b975..cd9a78b
*** a/src/include/catalog/pg_range.dat
--- b/src/include/catalog/pg_range.dat
***************
*** 8,13 ****
  { rngtypid => '3912', rngsubtype => '1082', rngcollation => '0', rngsubopc => '3122', rngcanonical => 'daterange_canonical', rngsubdiff => 'daterange_subdiff' },
  { rngtypid => '3926', rngsubtype => '20', rngcollation => '0', rngsubopc => '3124', rngcanonical => 'int8range_canonical', rngsubdiff => 'int8range_subdiff' },
  
- # prototypes for functions in pg_range.c
- 
  ]
--- 8,11 ----
diff --git a/src/include/catalog/pg_type.dat b/src/include/catalog/pg_type.dat
new file mode 100644
index 65a60bd..a94010d
*** a/src/include/catalog/pg_type.dat
--- b/src/include/catalog/pg_type.dat
***************
*** 7,54 ****
  # TypInfo[] in bootstrap.c.
  
  # OIDS 1 - 99
  { oid => '16', descr => 'boolean, \'true\'/\'false\'',
    typname => 'bool', typlen => '1', typbyval => 't', typcategory => 'B', typispreferred => 't', typarray => '1000', typinput => 'boolin', typoutput => 'boolout', typreceive => 'boolrecv', typsend => 'boolsend', typalign => 'c' },
- 
  { oid => '17', descr => 'variable-length string, binary values escaped',
    typname => 'bytea', typlen => '-1', typbyval => 'f', typcategory => 'U', typarray => '1001', typinput => 'byteain', typoutput => 'byteaout', typreceive => 'bytearecv', typsend => 'byteasend', typalign => 'i', typstorage => 'x' },
- 
  { oid => '18', descr => 'single character',
    typname => 'char', typlen => '1', typbyval => 't', typcategory => 'S', typarray => '1002', typinput => 'charin', typoutput => 'charout', typreceive => 'charrecv', typsend => 'charsend', typalign => 'c' },
- 
  { oid => '19', descr => '63-byte type for storing system identifiers',
    typname => 'name', typlen => 'NAMEDATALEN', typbyval => 'f', typcategory => 'S', typelem => '18', typarray => '1003', typinput => 'namein', typoutput => 'nameout', typreceive => 'namerecv', typsend => 'namesend', typalign => 'c' },
- 
  { oid => '20', descr => '~18 digit integer, 8-byte storage',
    typname => 'int8', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', typcategory => 'N', typarray => '1016', typinput => 'int8in', typoutput => 'int8out', typreceive => 'int8recv', typsend => 'int8send', typalign => 'd' },
- 
  { oid => '21', descr => '-32 thousand to 32 thousand, 2-byte storage',
    typname => 'int2', typlen => '2', typbyval => 't', typcategory => 'N', typarray => '1005', typinput => 'int2in', typoutput => 'int2out', typreceive => 'int2recv', typsend => 'int2send', typalign => 's' },
- 
  { oid => '22', descr => 'array of int2, used in system tables',
    typname => 'int2vector', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '21', typarray => '1006', typinput => 'int2vectorin', typoutput => 'int2vectorout', typreceive => 'int2vectorrecv', typsend => 'int2vectorsend', typalign => 'i' },
- 
  { oid => '23', descr => '-2 billion to 2 billion integer, 4-byte storage',
    typname => 'int4', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '1007', typinput => 'int4in', typoutput => 'int4out', typreceive => 'int4recv', typsend => 'int4send', typalign => 'i' },
- 
  { oid => '24', descr => 'registered procedure',
    typname => 'regproc', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '1008', typinput => 'regprocin', typoutput => 'regprocout', typreceive => 'regprocrecv', typsend => 'regprocsend', typalign => 'i' },
- 
  { oid => '25', descr => 'variable-length string, no limit specified',
    typname => 'text', typlen => '-1', typbyval => 'f', typcategory => 'S', typispreferred => 't', typarray => '1009', typinput => 'textin', typoutput => 'textout', typreceive => 'textrecv', typsend => 'textsend', typalign => 'i', typstorage => 'x', typcollation => '100' },
- 
  { oid => '26', descr => 'object identifier(oid), maximum 4 billion',
    typname => 'oid', typlen => '4', typbyval => 't', typcategory => 'N', typispreferred => 't', typarray => '1028', typinput => 'oidin', typoutput => 'oidout', typreceive => 'oidrecv', typsend => 'oidsend', typalign => 'i' },
- 
  { oid => '27', descr => '(block, offset), physical location of tuple',
    typname => 'tid', typlen => '6', typbyval => 'f', typcategory => 'U', typarray => '1010', typinput => 'tidin', typoutput => 'tidout', typreceive => 'tidrecv', typsend => 'tidsend', typalign => 's' },
- 
  { oid => '28', descr => 'transaction id',
    typname => 'xid', typlen => '4', typbyval => 't', typcategory => 'U', typarray => '1011', typinput => 'xidin', typoutput => 'xidout', typreceive => 'xidrecv', typsend => 'xidsend', typalign => 'i' },
- 
  { oid => '29', descr => 'command identifier type, sequence in transaction id',
    typname => 'cid', typlen => '4', typbyval => 't', typcategory => 'U', typarray => '1012', typinput => 'cidin', typoutput => 'cidout', typreceive => 'cidrecv', typsend => 'cidsend', typalign => 'i' },
- 
  { oid => '30', descr => 'array of oids, used in system tables',
    typname => 'oidvector', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '26', typarray => '1013', typinput => 'oidvectorin', typoutput => 'oidvectorout', typreceive => 'oidvectorrecv', typsend => 'oidvectorsend', typalign => 'i' },
  
--- 7,41 ----
  # TypInfo[] in bootstrap.c.
  
  # OIDS 1 - 99
+ 
  { oid => '16', descr => 'boolean, \'true\'/\'false\'',
    typname => 'bool', typlen => '1', typbyval => 't', typcategory => 'B', typispreferred => 't', typarray => '1000', typinput => 'boolin', typoutput => 'boolout', typreceive => 'boolrecv', typsend => 'boolsend', typalign => 'c' },
  { oid => '17', descr => 'variable-length string, binary values escaped',
    typname => 'bytea', typlen => '-1', typbyval => 'f', typcategory => 'U', typarray => '1001', typinput => 'byteain', typoutput => 'byteaout', typreceive => 'bytearecv', typsend => 'byteasend', typalign => 'i', typstorage => 'x' },
  { oid => '18', descr => 'single character',
    typname => 'char', typlen => '1', typbyval => 't', typcategory => 'S', typarray => '1002', typinput => 'charin', typoutput => 'charout', typreceive => 'charrecv', typsend => 'charsend', typalign => 'c' },
  { oid => '19', descr => '63-byte type for storing system identifiers',
    typname => 'name', typlen => 'NAMEDATALEN', typbyval => 'f', typcategory => 'S', typelem => '18', typarray => '1003', typinput => 'namein', typoutput => 'nameout', typreceive => 'namerecv', typsend => 'namesend', typalign => 'c' },
  { oid => '20', descr => '~18 digit integer, 8-byte storage',
    typname => 'int8', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', typcategory => 'N', typarray => '1016', typinput => 'int8in', typoutput => 'int8out', typreceive => 'int8recv', typsend => 'int8send', typalign => 'd' },
  { oid => '21', descr => '-32 thousand to 32 thousand, 2-byte storage',
    typname => 'int2', typlen => '2', typbyval => 't', typcategory => 'N', typarray => '1005', typinput => 'int2in', typoutput => 'int2out', typreceive => 'int2recv', typsend => 'int2send', typalign => 's' },
  { oid => '22', descr => 'array of int2, used in system tables',
    typname => 'int2vector', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '21', typarray => '1006', typinput => 'int2vectorin', typoutput => 'int2vectorout', typreceive => 'int2vectorrecv', typsend => 'int2vectorsend', typalign => 'i' },
  { oid => '23', descr => '-2 billion to 2 billion integer, 4-byte storage',
    typname => 'int4', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '1007', typinput => 'int4in', typoutput => 'int4out', typreceive => 'int4recv', typsend => 'int4send', typalign => 'i' },
  { oid => '24', descr => 'registered procedure',
    typname => 'regproc', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '1008', typinput => 'regprocin', typoutput => 'regprocout', typreceive => 'regprocrecv', typsend => 'regprocsend', typalign => 'i' },
  { oid => '25', descr => 'variable-length string, no limit specified',
    typname => 'text', typlen => '-1', typbyval => 'f', typcategory => 'S', typispreferred => 't', typarray => '1009', typinput => 'textin', typoutput => 'textout', typreceive => 'textrecv', typsend => 'textsend', typalign => 'i', typstorage => 'x', typcollation => '100' },
  { oid => '26', descr => 'object identifier(oid), maximum 4 billion',
    typname => 'oid', typlen => '4', typbyval => 't', typcategory => 'N', typispreferred => 't', typarray => '1028', typinput => 'oidin', typoutput => 'oidout', typreceive => 'oidrecv', typsend => 'oidsend', typalign => 'i' },
  { oid => '27', descr => '(block, offset), physical location of tuple',
    typname => 'tid', typlen => '6', typbyval => 'f', typcategory => 'U', typarray => '1010', typinput => 'tidin', typoutput => 'tidout', typreceive => 'tidrecv', typsend => 'tidsend', typalign => 's' },
  { oid => '28', descr => 'transaction id',
    typname => 'xid', typlen => '4', typbyval => 't', typcategory => 'U', typarray => '1011', typinput => 'xidin', typoutput => 'xidout', typreceive => 'xidrecv', typsend => 'xidsend', typalign => 'i' },
  { oid => '29', descr => 'command identifier type, sequence in transaction id',
    typname => 'cid', typlen => '4', typbyval => 't', typcategory => 'U', typarray => '1012', typinput => 'cidin', typoutput => 'cidout', typreceive => 'cidrecv', typsend => 'cidsend', typalign => 'i' },
  { oid => '30', descr => 'array of oids, used in system tables',
    typname => 'oidvector', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '26', typarray => '1013', typinput => 'oidvectorin', typoutput => 'oidvectorout', typreceive => 'oidvectorrecv', typsend => 'oidvectorsend', typalign => 'i' },
  
***************
*** 65,70 ****
--- 52,58 ----
    typname => 'pg_class', typlen => '-1', typbyval => 'f', typtype => 'c', typcategory => 'C', typrelid => '1259', typarray => '0', typinput => 'record_in', typoutput => 'record_out', typreceive => 'record_recv', typsend => 'record_send', typalign => 'd', typstorage => 'x' },
  
  # OIDS 100 - 199
+ 
  { oid => '114',
    typname => 'json', typlen => '-1', typbyval => 'f', typcategory => 'U', typarray => '199', typinput => 'json_in', typoutput => 'json_out', typreceive => 'json_recv', typsend => 'json_send', typalign => 'i', typstorage => 'x' },
  { oid => '142', descr => 'XML content',
***************
*** 73,88 ****
    typname => '_xml', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '142', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '199',
    typname => '_json', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '114', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
- 
  { oid => '194', descr => 'string representing an internal node tree',
    typname => 'pg_node_tree', typlen => '-1', typbyval => 'f', typcategory => 'S', typarray => '0', typinput => 'pg_node_tree_in', typoutput => 'pg_node_tree_out', typreceive => 'pg_node_tree_recv', typsend => 'pg_node_tree_send', typalign => 'i', typstorage => 'x', typcollation => '100' },
- 
  { oid => '3361', descr => 'multivariate ndistinct coefficients',
    typname => 'pg_ndistinct', typlen => '-1', typbyval => 'f', typcategory => 'S', typarray => '0', typinput => 'pg_ndistinct_in', typoutput => 'pg_ndistinct_out', typreceive => 'pg_ndistinct_recv', typsend => 'pg_ndistinct_send', typalign => 'i', typstorage => 'x', typcollation => '100' },
- 
  { oid => '3402', descr => 'multivariate dependencies',
    typname => 'pg_dependencies', typlen => '-1', typbyval => 'f', typcategory => 'S', typarray => '0', typinput => 'pg_dependencies_in', typoutput => 'pg_dependencies_out', typreceive => 'pg_dependencies_recv', typsend => 'pg_dependencies_send', typalign => 'i', typstorage => 'x', typcollation => '100' },
- 
  { oid => '32', descr => 'internal type for passing CollectedCommand',
    typname => 'pg_ddl_command', typlen => 'SIZEOF_POINTER', typbyval => 't', typtype => 'p', typcategory => 'P', typarray => '0', typinput => 'pg_ddl_command_in', typoutput => 'pg_ddl_command_out', typreceive => 'pg_ddl_command_recv', typsend => 'pg_ddl_command_send', typalign => 'ALIGNOF_POINTER' },
  
--- 61,72 ----
***************
*** 98,103 ****
--- 82,88 ----
  # OIDS 500 - 599
  
  # OIDS 600 - 699
+ 
  { oid => '600', descr => 'geometric point \'(x, y)\'',
    typname => 'point', typlen => '16', typbyval => 'f', typcategory => 'G', typelem => '701', typarray => '1017', typinput => 'point_in', typoutput => 'point_out', typreceive => 'point_recv', typsend => 'point_send', typalign => 'd' },
  { oid => '601', descr => 'geometric line segment \'(pt1,pt2)\'',
***************
*** 108,114 ****
    typname => 'box', typlen => '32', typbyval => 'f', typcategory => 'G', typdelim => '\073', typelem => '600', typarray => '1020', typinput => 'box_in', typoutput => 'box_out', typreceive => 'box_recv', typsend => 'box_send', typalign => 'd' },
  { oid => '604', descr => 'geometric polygon \'(pt1,...)\'',
    typname => 'polygon', typlen => '-1', typbyval => 'f', typcategory => 'G', typarray => '1027', typinput => 'poly_in', typoutput => 'poly_out', typreceive => 'poly_recv', typsend => 'poly_send', typalign => 'd', typstorage => 'x' },
- 
  { oid => '628', descr => 'geometric line',
    typname => 'line', typlen => '24', typbyval => 'f', typcategory => 'G', typelem => '701', typarray => '629', typinput => 'line_in', typoutput => 'line_out', typreceive => 'line_recv', typsend => 'line_send', typalign => 'd' },
  { oid => '629',
--- 93,98 ----
***************
*** 128,134 ****
    typname => 'tinterval', typlen => '12', typbyval => 'f', typcategory => 'T', typarray => '1025', typinput => 'tintervalin', typoutput => 'tintervalout', typreceive => 'tintervalrecv', typsend => 'tintervalsend', typalign => 'i' },
  { oid => '705',
    typname => 'unknown', typlen => '-2', typbyval => 'f', typtype => 'p', typcategory => 'X', typarray => '0', typinput => 'unknownin', typoutput => 'unknownout', typreceive => 'unknownrecv', typsend => 'unknownsend', typalign => 'c' },
- 
  { oid => '718', descr => 'geometric circle \'(center,radius)\'',
    typname => 'circle', typlen => '24', typbyval => 'f', typcategory => 'G', typarray => '719', typinput => 'circle_in', typoutput => 'circle_out', typreceive => 'circle_recv', typsend => 'circle_send', typalign => 'd' },
  { oid => '719',
--- 112,117 ----
***************
*** 151,156 ****
--- 134,140 ----
  # OIDS 900 - 999
  
  # OIDS 1000 - 1099
+ 
  { oid => '1000',
    typname => '_bool', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '16', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '1001',
***************
*** 231,236 ****
--- 215,221 ----
    typname => 'time', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', typcategory => 'D', typarray => '1183', typinput => 'time_in', typoutput => 'time_out', typreceive => 'time_recv', typsend => 'time_send', typmodin => 'timetypmodin', typmodout => 'timetypmodout', typalign => 'd' },
  
  # OIDS 1100 - 1199
+ 
  { oid => '1114', descr => 'date and time',
    typname => 'timestamp', typlen => '8', typbyval => 'FLOAT8PASSBYVAL', typcategory => 'D', typarray => '1115', typinput => 'timestamp_in', typoutput => 'timestamp_out', typreceive => 'timestamp_recv', typsend => 'timestamp_send', typmodin => 'timestamptypmodin', typmodout => 'timestamptypmodout', typalign => 'd' },
  { oid => '1115',
***************
*** 249,254 ****
--- 234,240 ----
    typname => '_interval', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '1186', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typmodin => 'intervaltypmodin', typmodout => 'intervaltypmodout', typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' },
  
  # OIDS 1200 - 1299
+ 
  { oid => '1231',
    typname => '_numeric', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '1700', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typmodin => 'numerictypmodin', typmodout => 'numerictypmodout', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '1266', descr => 'time of day with time zone',
***************
*** 257,262 ****
--- 243,249 ----
    typname => '_timetz', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '1266', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typmodin => 'timetztypmodin', typmodout => 'timetztypmodout', typanalyze => 'array_typanalyze', typalign => 'd', typstorage => 'x' },
  
  # OIDS 1500 - 1599
+ 
  { oid => '1560', descr => 'fixed-length bit string',
    typname => 'bit', typlen => '-1', typbyval => 'f', typcategory => 'V', typarray => '1561', typinput => 'bit_in', typoutput => 'bit_out', typreceive => 'bit_recv', typsend => 'bit_send', typmodin => 'bittypmodin', typmodout => 'bittypmodout', typalign => 'i', typstorage => 'x' },
  { oid => '1561',
***************
*** 269,305 ****
  # OIDS 1600 - 1699
  
  # OIDS 1700 - 1799
  { oid => '1700', descr => 'numeric(precision, decimal), arbitrary precision number',
    typname => 'numeric', typlen => '-1', typbyval => 'f', typcategory => 'N', typarray => '1231', typinput => 'numeric_in', typoutput => 'numeric_out', typreceive => 'numeric_recv', typsend => 'numeric_send', typmodin => 'numerictypmodin', typmodout => 'numerictypmodout', typalign => 'i', typstorage => 'm' },
- 
  { oid => '1790', descr => 'reference to cursor (portal name)',
    typname => 'refcursor', typlen => '-1', typbyval => 'f', typcategory => 'U', typarray => '2201', typinput => 'textin', typoutput => 'textout', typreceive => 'textrecv', typsend => 'textsend', typalign => 'i', typstorage => 'x' },
  
  # OIDS 2200 - 2299
  { oid => '2201',
    typname => '_refcursor', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '1790', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
- 
  { oid => '2202', descr => 'registered procedure (with args)',
    typname => 'regprocedure', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2207', typinput => 'regprocedurein', typoutput => 'regprocedureout', typreceive => 'regprocedurerecv', typsend => 'regproceduresend', typalign => 'i' },
- 
  { oid => '2203', descr => 'registered operator',
    typname => 'regoper', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2208', typinput => 'regoperin', typoutput => 'regoperout', typreceive => 'regoperrecv', typsend => 'regopersend', typalign => 'i' },
- 
  { oid => '2204', descr => 'registered operator (with args)',
    typname => 'regoperator', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2209', typinput => 'regoperatorin', typoutput => 'regoperatorout', typreceive => 'regoperatorrecv', typsend => 'regoperatorsend', typalign => 'i' },
- 
  { oid => '2205', descr => 'registered class',
    typname => 'regclass', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2210', typinput => 'regclassin', typoutput => 'regclassout', typreceive => 'regclassrecv', typsend => 'regclasssend', typalign => 'i' },
- 
  { oid => '2206', descr => 'registered type',
    typname => 'regtype', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2211', typinput => 'regtypein', typoutput => 'regtypeout', typreceive => 'regtyperecv', typsend => 'regtypesend', typalign => 'i' },
- 
  { oid => '4096', descr => 'registered role',
    typname => 'regrole', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '4097', typinput => 'regrolein', typoutput => 'regroleout', typreceive => 'regrolerecv', typsend => 'regrolesend', typalign => 'i' },
- 
  { oid => '4089', descr => 'registered namespace',
    typname => 'regnamespace', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '4090', typinput => 'regnamespacein', typoutput => 'regnamespaceout', typreceive => 'regnamespacerecv', typsend => 'regnamespacesend', typalign => 'i' },
- 
  { oid => '2207',
    typname => '_regprocedure', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '2202', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '2208',
--- 256,285 ----
  # OIDS 1600 - 1699
  
  # OIDS 1700 - 1799
+ 
  { oid => '1700', descr => 'numeric(precision, decimal), arbitrary precision number',
    typname => 'numeric', typlen => '-1', typbyval => 'f', typcategory => 'N', typarray => '1231', typinput => 'numeric_in', typoutput => 'numeric_out', typreceive => 'numeric_recv', typsend => 'numeric_send', typmodin => 'numerictypmodin', typmodout => 'numerictypmodout', typalign => 'i', typstorage => 'm' },
  { oid => '1790', descr => 'reference to cursor (portal name)',
    typname => 'refcursor', typlen => '-1', typbyval => 'f', typcategory => 'U', typarray => '2201', typinput => 'textin', typoutput => 'textout', typreceive => 'textrecv', typsend => 'textsend', typalign => 'i', typstorage => 'x' },
  
  # OIDS 2200 - 2299
+ 
  { oid => '2201',
    typname => '_refcursor', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '1790', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '2202', descr => 'registered procedure (with args)',
    typname => 'regprocedure', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2207', typinput => 'regprocedurein', typoutput => 'regprocedureout', typreceive => 'regprocedurerecv', typsend => 'regproceduresend', typalign => 'i' },
  { oid => '2203', descr => 'registered operator',
    typname => 'regoper', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2208', typinput => 'regoperin', typoutput => 'regoperout', typreceive => 'regoperrecv', typsend => 'regopersend', typalign => 'i' },
  { oid => '2204', descr => 'registered operator (with args)',
    typname => 'regoperator', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2209', typinput => 'regoperatorin', typoutput => 'regoperatorout', typreceive => 'regoperatorrecv', typsend => 'regoperatorsend', typalign => 'i' },
  { oid => '2205', descr => 'registered class',
    typname => 'regclass', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2210', typinput => 'regclassin', typoutput => 'regclassout', typreceive => 'regclassrecv', typsend => 'regclasssend', typalign => 'i' },
  { oid => '2206', descr => 'registered type',
    typname => 'regtype', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '2211', typinput => 'regtypein', typoutput => 'regtypeout', typreceive => 'regtyperecv', typsend => 'regtypesend', typalign => 'i' },
  { oid => '4096', descr => 'registered role',
    typname => 'regrole', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '4097', typinput => 'regrolein', typoutput => 'regroleout', typreceive => 'regrolerecv', typsend => 'regrolesend', typalign => 'i' },
  { oid => '4089', descr => 'registered namespace',
    typname => 'regnamespace', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '4090', typinput => 'regnamespacein', typoutput => 'regnamespaceout', typreceive => 'regnamespacerecv', typsend => 'regnamespacesend', typalign => 'i' },
  { oid => '2207',
    typname => '_regprocedure', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '2202', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '2208',
***************
*** 338,344 ****
    typname => 'regconfig', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '3735', typinput => 'regconfigin', typoutput => 'regconfigout', typreceive => 'regconfigrecv', typsend => 'regconfigsend', typalign => 'i' },
  { oid => '3769', descr => 'registered text search dictionary',
    typname => 'regdictionary', typlen => '4', typbyval => 't', typcategory => 'N', typarray => '3770', typinput => 'regdictionaryin', typoutput => 'regdictionaryout', typreceive => 'regdictionaryrecv', typsend => 'regdictionarysend', typalign => 'i' },
- 
  { oid => '3643',
    typname => '_tsvector', typlen => '-1', typbyval => 'f', typcategory => 'A', typelem => '3614', typarray => '0', typinput => 'array_in', typoutput => 'array_out', typreceive => 'array_recv', typsend => 'array_send', typanalyze => 'array_typanalyze', typalign => 'i', typstorage => 'x' },
  { oid => '3644',
--- 318,323 ----
***************
*** 395,400 ****
--- 374,380 ----
  # Note: cstring is a borderline case; it is still considered a pseudo-type,
  # but there is now support for it in records and arrays.  Perhaps we should
  # just treat it as a regular base type?
+ 
  { oid => '2249',
    typname => 'record', typlen => '-1', typbyval => 'f', typtype => 'p', typcategory => 'P', typarray => '2287', typinput => 'record_in', typoutput => 'record_out', typreceive => 'record_recv', typsend => 'record_send', typalign => 'd', typstorage => 'x' },
  { oid => '2287',
***************
*** 432,439 ****
  { oid => '3831',
    typname => 'anyrange', typlen => '-1', typbyval => 'f', typtype => 'p', typcategory => 'P', typarray => '0', typinput => 'anyrange_in', typoutput => 'anyrange_out', typreceive => '-', typsend => '-', typalign => 'd', typstorage => 'x' },
  
- # macros
- 
- # Is a type OID a polymorphic pseudotype?	(Beware of multiple evaluation)
- 
  ]
--- 412,415 ----
